Back-end
Redirect와 Forward
songu1
2023. 1. 31. 14:10
1. Redirect
클라이언트가 URL을 요청했을때 서버가 클라이언트에게 다른 URL로 재접속하라는 명령을 보내는 것
- 클라이언트는 해당 URL로 다시 요청
- URL주소가 바뀌면서 다시 접속됨
* 예시
예시1
@Controller
public class TestController {
@GetMapping("/test1")
public String test1() {
//sub1이라는 요청을 return
return "redirect:/sub1";
}
@GetMapping("/sub1")
public String test1() {
//sub1.jsp를 찾아 그 결과를 브라우저에 응답
return "sub1";
}
}
- 결과
- 주소창과 페이지가 바뀜
예시2
@RequestMapping("join.do")
public String join(String id){
return "redirect:loginForm.do";
}
- 결과
- join.do 입력받음
- redirect : loginForm 해줌
- join.do 입력받음
2. Forward
서버 내부에서 일어나는 호출
- 다음으로 이동할 URL로 요청정보를 그대로 전달
- 클라이언트의 URL에 대한 요청이 들어오면 해당 URL이 다른 URL로 포워딩 된 것이 확인되었을 경우 서버에서 포워딩된 URL의 리소스를 확인하여 클라이언트에 응답함
- 포워딩 발생 시 클라이언트 단에서는 아무런 동작을 하지 않음. 웹브라우저에는 최초에 호출한 URL이 표시됨
결론
- URL의 변화 : redirect - 객체의 재사용 : forward