[HTTP] 3XX 리다이렉션?

정은아·2024년 2월 20일
post-thumbnail

3XX : Redirection(리다이렉션)

  • 완전한 처리를 위해서 추가 동작이 필요한 경우입니다.
  • 주로 서버의 주소 또는 요청한 URI의 웹 문서가 이동되었으니 그 주소로 다시 시도하라는 의미.
  • 3xx 상태 코드는 클라이언트가 요청한 리소스의 위치가 변경되었음을 나타냅니다.
  • 이러한 상태 코드는 클라이언트를 다른 위치로 리다이렉션하거나 추가 동작을 취하도록 안내합니다.
  • 가장 많이 사용되는 3xx 상태 코드는 301 (Moved Permanently)와 302 (Found)입니다.
  • 301 상태 코드는 요청한 리소스가 영구적으로 다른 위치로 이동되었음을 나타내며,
    302 상태 코드는 임시적으로 다른 위치로 리다이렉션된 것을 나타냅니다.

예시 1

  • A사이트 검색 → 주소 옮김 → 자동으로 바뀐 주소로 접속
  • 가끔 아예 301 오류를 띄워 놓는 경우도 있음(알아서 찾아가시오~)
  • 언제는 자동 이동, 언제는 오류 → 서버를 동시에 운영하는 경우도 있음
  • 영상의 경우, 재생이 안되고 300이라고 뜨는 경우가 있다.

예시 2

  • 벨로그 로그인
  • 벨로그 접속 → 로그인 버튼 클릭 → 구글 로그인 클릭 → 구글 사이트 이동(리다이렉션) → 로그인 성공 → 벨로그 이동(로그인 완료) 💡 사용자는 벨로그 사이트에서 로그인만 클릭했을 뿐인데, 자동으로 구글로 이동했다가 다시 벨로그로 이동하는 것을 알 수 있다. 이 경우가 성공한 리다이렉션의 예시이다.

300 Multiple Choice

  • 요청에 대해 여러 응답이 가능하며, 사용자 에이전트 또는 사용자는 그 중 하나를 선택해야 한다.
  • 응답을 선택하는 방법에 대한 표준화된 방법은 존재하지 않습니다.

301 Moved Permanently

  • 요청한 리소스의 URI가 영구적으로 변경되었음을 나타냅니다.
  • 응답에서 새로운 URI가 제공될 수 있습니다.

302 Found

  • 요청한 리소스의 URI가 일시적으로 변경되었음을 나타냅니다.
  • 새로운 URI는 나중에 만들어질 수 있습니다. 따라서 클라이언트는 향후 요청도 반드시 동일한 URI를 사용해야 합니다.

303 See Other

  • 클라이언트가 요청한 리소스를 다른 URI에서 GET 요청을 통해 얻어야 할 때,
    서버가 클라이언트로 직접 응답을 보냅니다.

304 Not Modified

  • 이 응답은 캐시를 목적으로 사용됩니다. 클라이언트에게 응답이 수정되지 않았음을 알려주며,
    따라서 클라이언트는 계속해서 캐시된 응답을 사용할 수 있습니다.

305 Use Proxy

  • 이전 버전의 HTTP 사양에서 정의되었으며, 요청한 리소스에 접근하기 위해서는 반드시
    프록시를 사용해야 함을 나타냅니다.
  • 이 코드는 보안상의 이유로 사용이 줄어들고 있습니다.

306 Unused

  • 현재는 사용되지 않으며, 추후 사용을 위해 예약되어 있는 상태 코드입니다.
  • 이 코드는 HTTP 1.1 사양 이전에 사용되었습니다.

307 Temporary Redirect

  • 클라이언트가 요청한 리소스가 다른 URI에 있으며, 이전 요청과 동일한 메소드를 사용하여 요청해야 할 때, 서버가 클라이언트에 직접 응답을 보냅니다.
  • 302 Found HTTP 응답 코드와 동일한 의미를 가지지만, 사용자 에이전트는 반드시 사용된 HTTP 메소드를 변경하지 않아야 합니다.
  • 따라서 첫 번째 요청이 POST로 이루어졌다면, 두 번째 요청도 반드시 POST를 사용해야 합니다.

308 Permanent Redirect

  • 리소스가 영구적으로 다른 URI에 위치하고 있음을 의미합니다.
  • 301 Moved Permanently HTTP 응답 코드와 동일한 의미를 가지지만, 사용자 에이전트는 반드시 HTTP 메소드를 변경하지 않아야 합니다.
  • 따라서 첫 번째 요청이 POST로 이루어졌다면, 두 번째 요청도 반드시 POST를 사용해야 합니다.

출처

[[웹개발] HTTP 상태 코드 총 정리 에러 코드 표]
https://www.tddiary.com/entry/웹개발-HTTP-상태-코드-총-정리

[[웹 프로그래밍] HTTP 상태 코드 표(100 ~ 500) 전체 요약 정리]
https://hongong.hanbit.co.kr/http-상태-코드-표-1xx-5xx-전체-요약-정리/

profile
꾸준함의 가치를 믿는 개발자

0개의 댓글