# 리다이렉트 (Redirect)와 포워드 (Forward)의 차이점 ?
리다이렉트 (Redirect):
리다이렉트는 클라이언트(브라우저)에게 다른 URL로 이동하도록 알려주는 것이다.
원래 요청을 받은 서버가 클라이언트에게 "302 Found",
"301 Moved Permanently"와 같은 HTTP 상태 코드를 전송하여 리다이렉트를 수행한다.
클라이언트는 새로운 URL로 새로운 요청을 생성하며, 주소 표시줄도 새로운 URL로 변경된다.
서버 간의 완전히 새로운 요청이 발생하므로, 이전 요청과 응답 객체의 상태가 유지되지 않는다.
주로 리소스가 옮겨진 경우나 외부 사이트로 리다이렉트하는데 사용된다.
포워드 (Forward):
포워드는 서버 내부에서 페이지 이동을 처리하는 방법이다.
서버는 원래 요청을 받은 후, 새로운 페이지로 요청과 응답 객체를 전달하여
새로운 페이지가 그대로 클라이언트에게 보이게 한다.
클라이언트에게는 새로운 URL로 이동한 것처럼 보이지 않는다.
주로 중간 처리나 오류 처리를 위해 사용된다.
이전 요청과 새로운 페이지 사이에서 데이터를 전달하거나 상태를 유지하기 위해 사용된다.
요약하면, 리다이렉트는 클라이언트에게 새로운 URL로 이동하라고 알려주며 완전히 새로운 요청이 발생한다.
반면에 포워드는 서버 내에서 페이지 이동을 처리하며
클라이언트에게는 새로운 URL로 이동한 것처럼 보이지 않는다.
어떤 방식을 선택할지는 상황과 요구사항에 따라 결정되어야 한다.
발생할 수 있는 문제점
포워드를 사용하여 /board/add가 성공했을 경우에 board/list로 보내는 경우,
클라이언트의 주소창에는 여전히 /board/add의 주소가 표시될 수 있다.
포워드는 서버 내부에서의 이동이기 때문에 클라이언트는 새로운 URL로 이동한 것처럼 보이지 않는다.
#발생할 수 있는 문제점
사용자 경험:
사용자는 주소창의 URL로 현재 위치를 파악하는 경우가 많다.
만약 성공적으로 등록된 것으로 보이는데도 주소창에 /board/add가 남아있다면 사용자가 헷갈릴 수 있다.
북마크 및 공유:
사용자는 주소창의 URL을 북마크하거나 다른 사람과 공유할 수 있다.
만약 포워드를 사용하여 /board/add에서 /board/list로 이동했다면,
주소창에는 여전히 /board/add의 주소가 남아있어 이를 공유하거나 북마크하면 잘못된 정보를 전달하게 될 수 있다.
SEO (검색 엔진 최적화):
포워드를 통한 내부 이동은 검색 엔진 크롤러에게 혼동을 줄 수 있습니다.
검색 엔진은 주소창의 URL을 토대로 페이지를 색인하는데,
이상한 주소가 표시되면 페이지의 의미나 관련성을 파악하기 어려울 수 있다.