웹 개발을 공부하면서 간단하면서도 이해가 안가는 부분이였던 Redirect 에 대해서 정리해보려고 합니다.
클라이언트가 서버한테 요청을 보냄 → 서버는 어떤 일들을 처리함 → 클라이언트한테 새로운 요청할 곳을 알려주면서 이걸로 다시 요청함.
이 과정을 쉽게 풀어서 작성하자면...
(제가 이해하려고 말도 안되는 비유를 하면서 설명했습니다...ㅠㅠ)
클라이언트(웹브라우저) : "웹툰 좀 보고싶은데! 어디보자...웹툰목록에서 고수가 재밌을 것 같구만!" 하고 서버한테 요청을 함
*www.naver.com/웹툰목록
→ 서버(톰캣, WAS) : "뭐여? 보고싶음? 근데 뭐 볼거여? 뭐? 고수 보고싶다고? 볼 수 있는지 확인하고 너한테 응답해줌, " 하고 요청을 받음.
그리고 보내주려고 하는데...."잠깐!! 너 근데 302하이패스 카드 있음? " 하고 응답 결과를 브라우저한테 보냄.
*응답코드 : 302, Location 헤더 값: www.naver.com/웹툰고수
→ 클라이언트(웹브라우저) : "마! 내가! 302하이패스 카드도 있고 다! 있어!!, 나 웹툰 고수 요청한거 가능하냐 안하냐?"
*브라우저가 알아서 다시 서버한테 요청을 함.
→ 서버(톰캣, WAS) : "아...쉐키...ㅇㅋ 볼 수 있어! 웹툰 고수 보러 가랏!!"
클라이언트(웹브라우저) : "데헷 고수 드디어 본당!! 서버야 고맙다잉!~"
예시가 좀 그렇죠...? 하하...
아래 참고한 사이트를 보시면 조금 더 상세하게 설명되어 있습니다.
※리다이렉트의 중요한 부분!
클라이언트가 요청을 몇번 보냈는가? 바로 두번 보내게 되는데...
이게 왜 중요하냐?
항상 요청을 들어가면 요청객체와 응답객체가 생기때문인데...
처음 고수목록페이지에 들어와서 생겼던 요청객체와 응답객체랑
다시 웹브라우저한테 들어와서 고수1화 보고싶다는 요청이 들어왔을 때 생기는
요청객체와 응답객체는 다른 객체이다.
그리고 URL 은 www.naver.com/웹툰목록 에서 www.naver.com/고수목록 로 바뀌게 된다.
※응답코드 302 란?
300 번대 응답(response) : 리디렉션(Redirection)
요청된 리소스에는 새로운 URI가 지정되어 있기 때문에, 이후로는 새 URI를 사용해야 한다는 것을 나타냄.
302는 일시적인 URI 이동.
이라고 설명이 되어 있네요.
URL 에서 /웹툰목록 → /고수목록으로 바뀐 것을 크롬개발자도구 (F12)를 통해응답코드로 확인을 할 수 있습니다!
참고사이트
출처 : https://dololak.tistory.com/147
출처 : www.edwith.org
리다이렉트가 필요한 이유?
리다이렉트가 왜 필요할까요? 아주 간단합니다.
기존의 페이지의 주소가 새롭게 변경된 경우. (가장 많은 리디렉션 조치의 이유)
불필요하거나 잘못된 서브주소를 하나로 이동시키는 경우.
예를 들어서 19금 웹툰을 예로 들어봅니다.
웹툰목록에서 '헬퍼' 라는 웹툰을 보고싶어서 '헬퍼1화' 를 클릭했더니? 성인이 아니라고 다시 웹툰목록 페이지로 돌아갑니다.
이처럼 권한이 없다면 어떠한 페이지에 대한 내용을 서버측에서는 응답을 하면 안됩니다.
그렇기때문에 웹툰목록으로 리다이렉트가 되는 것이고 필요한 것이지요!
응답 코드에 대한 참고사이트
출처 : https://developer.mozilla.org/ko/docs/Web/HTTP/Status
출처 : https://helloitstory.tistory.com/197
출처 : https://ooz.co.kr/260