HTTP 요청 재분배하기-redirection

hee·2023년 8월 26일
0

두 함수(메서드)가 있다고 가정했을 때,
두 함수(메서드)에는 10000줄결과라는 동일한 코드가 있고, 두번째 함수(메서드)에 다른코드 라는 부분이있는 차이가 있다.
이런식으로 Controller 파일 안에 함수(메서드)가 여러 개 있을 때, 동일한 코드를 재사용 하기위해 redirection 을 사용한다. (@RestController에서는 동작하지 않음)

redirection을 사용하면,
클라이언트가 http://localhost:8080/away를 요청했을 때
서버에는 http://localhost:8080/home으로 응답하는 것이 redirection이다.

@Controller
public class HttpRedirectionController {
	
	@GetMapping("/home")
	public String home() {
		//1만줄 가정
		return "home";
	}
	
	@GetMapping("/away")
	public String away() {
		//다른코드
		//1만줄 가정
		return "redirect:/home"; //redirection이 된다.@Controller에서만 발동
	}
}

컨트롤러와 메서드를 만들어주는데, 두번째 메서드에서 redirect:는 키워드(약속된 예약어)이다. 뒤에 주소를 넣으면 away를 호출해도 home으로 응답한다.

views폴더 안에 home.jsp파일을 만들고 body 부분을 아래와 같이 작성해준다.

<body>
<h1>This is home</h1>
</body>
</html>

웹 브라우저를 통해 http://localhost:8080/home을 요청하면

이러한 화면이 뜨는데, 이 때 개발자 도구를 열어 네트워크 > home > 헤더 순서로 누르게되면 상태코드 200이라고 써있는 것을 볼 수 있다.

다음은 http://localhost:8080/away를 요청시 home으로 Redirect됐을 때 모습이다.
away를 누르면 302 코드가 써있는 것을 볼 수 있다.

'HTTP상태코드'를 구글링해보면 302코드의 의미를 알 수 있다.

profile
고군분투 코린이의 코딩일기

0개의 댓글

관련 채용 정보