-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
개념 정리Good for newcomersGood for newcomers
Description
컨트롤러에서 반환값이 redirect와 index의 차이점
1. redirect(리다이렉트)
@GetMapping("/")
public String index() {
return "redirect:/index";
}- 동작 방식 : 클라이언트(브라우저)에게 HTTP
302상태 코드 보냄.Location헤더를 통해 지정된 URL(/index)로 다시 요청을 보내도록 지시 - 결과 : 클라이언트는
/경로로 요청한 후 서버로부터 리다이렉트 응답을 받고, 다시/index경로로 재요청. 클라이언트가 두 번의 요청을 수행 - 언제 사용 : 서버 측에서 클라이언트의 요청을 다른 URL로 재지정할 때
2. 뷰 이름 리턴(index)
@GetMapping("/")
public String index() {
return "index";
}- 동작 방식 :
"index"라는 이름의 뷰(JSP, Thymeleaf 템플릿 등)를 렌더링 - 결과 :
/경로로 요청 -> 서버에서 해당 뷰 파일을 렌더링 - 사용 시기 : 특정 요청에 대해 그에 해당하는 HTML 페이지나 템플릿 파일을 바로 응답으로 보낼려고 할 때
3. 차이점 정리 =
| 구분 | redirect |
뷰 이름 반환 (index) |
|---|---|---|
| 동작 방식 | 클라이언트에게 다른 URL로 이동하도록 지시함 (HTTP 302) |
서버에서 해당 뷰를 렌더링하여 바로 응답함 |
| 요청 횟수 | 두 번 (첫 요청 후 리다이렉트 요청) | 한 번 |
| 브라우저 URL | 리다이렉트된 URL로 변경됨 | 기존 URL 유지 |
| HTTP 응답 코드 | 302 Found (리다이렉트) |
200 OK |
| 사용 목적 | 작업 완료 후 다른 URL로 이동시키고자 할 때 | 특정 URL에 대해 페이지를 직접 보여줄 때 |
| 브라우저 동작 | 클라이언트가 새로운 URL로 재요청함 | 클라이언트가 서버로부터 렌더링된 페이지를 받음 |
| URL 변경 여부 | 변경됨 | 변경되지 않음 |
| 예시 | 로그인 후 메인 페이지로 이동 | 메인 페이지 직접 렌더링 |
Metadata
Metadata
Assignees
Labels
개념 정리Good for newcomersGood for newcomers