TIL 2021.10.10(일) forward와 redirect 차이점 알기

개발중·2021년 10월 10일
0

Spring

목록 보기
9/11

forward

  • 웹 브라우저에서 Servlet에게 요청을 보내고 해당 Serclet이 요청을 처리하고 결과를 HttpServletRequest에 저장한다.
  • Servlet은 결과가 저장된 HttpServletRequest와 응답을 위한 HttpServletResponse를 같은 웹 어플리케이션에 있는 다른 Servlet이나 JSP로 전송하여 값을 출력해 준다.
  • url이 변경되지 않는다.

redirect

  • 클라이언트가 서버로 요청을 보냈을 때 이를 처리하고 이동할 URL을 설정해 클라이언트를 이동시키는 것이 Redirect이다.
  • redirect로 넘어간 페이지에서는 Request와 Response 객체가 새롭게 생성되기 때문에 이전의 값은 사라진다.
  • url 역시 지정해 준 주소로 이동하며 클라이언트가 보는 주소도 바뀌게 된다.

중요

  • redirect는 url에 변화가 있고 페이지가 이동할 때 Request와 Response 객체가 새로 생성되기 때문에 재사용할 수 없게 된다.

  • forward는 url에 변화가 없고 클라이언트가 넘긴 최초의 값을 저장하고 있기 때문에 재사용이 가능하다.

  • 위의 내용으로 보자면 DB나 시스템 등에 변화가 생기는 요청(로그인, 로그아웃, 회원가입, 글 쓰기, 주문 결제 후)의 경우에는 redirect로 응답해 주어야 한다.

  • 그 외의 시스템에 변화가 생기지 않는 게시판 조회, 리스트 조회, 검색 등은 forward로 응답해 주어야 한다.

참고한 사이트 : https://doublesprogramming.tistory.com/63

profile
공부한 것 정리하는 개발 입문자

0개의 댓글