Skip to content

redirect와 index의 차이점 #7

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 변경 여부 변경됨 변경되지 않음
예시 로그인 후 메인 페이지로 이동 메인 페이지 직접 렌더링

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions