http code for redirect , URL 리다이렉트용 http code

#해더에서 코드를 넘겨서 페이지를 강제 이동 시킬 깨 사용되는 http code를 알아보자.

#동작
User -> A URL -(redirect)-> B URL

  • 301 Moved Permanently
    • A URL은 영원히 B URL로 바뀌었다.
    • 이후 요청을 B URL로 하라.
  • 302 Found
    • A URL은 일시적으로 B URL로 바뀌었다.
    • Moved Temporarily
    • 일시적인 URL이동에 대한 처리용.
    • 이 코드는 살짝 문제가 있어서 303과 307 이 추가되었다.(HTTP 1.1 부터)
  • 303 See Other (HTTP 1.1)
    • GET으로 B URL로 이동
    • 요청이 들어오면 GET으로 B URL로 이동시킨다.
      • POST,PUT 으로 요청을 하였을 경우 넘겨준 데이터는 서버에서 받았다고 가정하고 B URL로 GET으로 이동한다.
    • 302와 거의 동일한 동작이다.
    • 몇몇 프레임워크들은 302대신 303이 사용한다.
  • 307 Temporary Redirect (HTTP 1.1)
    • A URL 요청 후 307 응답을 받았다면
      B URL로 똑같이 다시 요청하도록 한다.(GET,POST 등의 방식(HTTP method) 변경 불가. 그대로 똑같이 URL만 바꿔서 요청)
    • 302에서 이동시 POST로 할 경우도 GET으로 이동되서 데이터는 못 넘기는 문제를 피하기 위해서 만들어짐.
  • 308 Permanent Redirect (RFC 7538)
    • 301의 302 버전
      즉, 영원한 B URL 이동을 지원한다. 다만 GET,POST 등의 방식은 변경 못하고 그대로 똑같이 URL만 바꿔서 요청해야한다.
--=--
  • 영원히 페이지 이동
    • 301 : HTTP method 를 GET으로 이동
    • 308 : HTTP method 고정하고 데이터도 같이 포함해서 이동
  • 임시 이동
    • 302 , 303 : HTTP method 를 GET으로 이동
    • 307 : HTTP method 고정하고 데이터도 같이 포함해서 이동
--=--
  • 여기서 "이동"은 실질적으로 브라우저에서 해당 URL로 재호출하는 것이다.
    • 서버에서는 HTTP code만 알려준다. 나머지는 브라우저에서 알아서 처리해줘야한다.
  • PHP 5.5.36 에서 header 등에 308 사용시 에러 (수동으로 표기하면 된다.)
    • header("HTTP/1.1 308 Permanent Redirect",false);
    • header ( 'Location: '.$url,true);
  • redirect 시 GET으로 이동될 경우 a URL 의 get값은 사라진다. b URL로 URL자체가 바뀌기 때문.
--=--
테스트하기
댓글
  • No Nickname
    No Comment
  • 권한이 없습니다.
    {{m_row.m_nick}}
    -
목록형 📷 갤러리형
제목
[기본형] HTML (with 부트스트랩5.3 , jquery 3.7, vue.js)
유용한 리눅스(LINUX) 명령어
[공지] 기술 게시판
4.28
4.29
4.30
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.10
5.11
5.12
5.13
5.14
5.15
5.16
5.17
5.18
5.19
5.20
5.21
5.22
5.23
5.24
5.25
5.26
5.27
5.28
5.29
5.30
5.31
6.1