Skip to content

redirect와 index의 차이점 #7

@mic050r

Description

@mic050r

컨트롤러에서 반환값이 redirectindex의 차이점

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

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions