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 해줌

 

2. Forward

서버 내부에서 일어나는 호출
- 다음으로 이동할 URL로 요청정보를 그대로 전달

  • 클라이언트의 URL에 대한 요청이 들어오면 해당 URL이 다른 URL로 포워딩 된 것이 확인되었을 경우 서버에서 포워딩된 URL의 리소스를 확인하여 클라이언트에 응답함
  • 포워딩 발생 시 클라이언트 단에서는 아무런 동작을 하지 않음. 웹브라우저에는 최초에 호출한 URL이 표시됨

결론

- URL의 변화 : redirect
- 객체의 재사용 : forward