HTTP 의 303,307 상태 코드

앞서'http 권위 매 뉴 얼'에서 HTTP 의 307 상태 코드 를 봤 는데,당시 실험 할 만 한 사 이 트 를 찾 지 못 해 깊 은 인상 을 받 지 못 했 는데,오늘 한 문 제 를 조사 하 던 중 공교롭게도HTTP/1.1 307 TemporaryRedirect를 만 나 특별히 기록 했다.    고객 의 사이트 url 은:http://www.seechina.com.cn:80내 가 명령curl http://www.seechina.com.cn:80 -vv으로 집행 한 결 과 는 다음 과 같다.
* Rebuilt URL to: http://www.seechina.com.cn:80/
*   Trying 211.144.139.247...
* Connected to www.seechina.com.cn (211.144.139.247) port 80 (#0)
> GET / HTTP/1.1
> Host: www.seechina.com.cn
> User-Agent: curl/7.47.0
> Accept: */*
> 
< HTTP/1.1 307 TemporaryRedirect
< Location: /?yikikata=d3908be2-33736dde0511d0b7f16717dcfedec055
< Set-Cookie: yikikata=002958da2a94eab3-96182107bc098e83663ea13afe4060a7
< Content-Length:0
< Connection: close
< 
* Closing connection 0

    위의 패 배 를 보면 사이트 가307 TemporaryRedirect상태 코드 를 되 돌려 주 고 우리 가 방문 한 url 이 다른 url 로 임시 이동 하 는 것 을 알려 줍 니 다.    이전에 나 는301 Moved Permanently,302 Found두 가지 상태 코드 만 알 아 차 렸 을 뿐 아직307 Temporary Redirect상황 을 만난 적 이 없다.HTTP/1.1 에303 See Other,307 Temporary Redirect이 두 상태 코드 가 추가 되 었 는데 이 두 상태 코드 와 301,302 상태 코드 는 어떤 차이 가 있 습 니까?    이 대답 은 사실 위 키 백과 에 HTTP 상태 코드 에 대한 상세 한 설명 이 있 습 니 다.제 가 요약 하 겠 습 니 다.    1.301,302 의 location 에 포 함 된 리 셋 url 에 대해 서 는 요청 method 가 GET 나 HEAD 가 아니라면 브 라 우 저 는 자동 으로 리 셋 을 금지 합 니 다.사용자 의 확인 을 받 지 않 는 한 POST,PUT 등 요청 이 비 명 등 이기 때 문 입 니 다(즉,재 요청 시 서버 의 자원 이 변 했 을 수 있 습 니 다).    2.rfc 는 상기 규정 을 명 확 히 했 지만 많은 브 라 우 저 들 이 이 규정 을 지 키 지 않 습 니 다.원래 의 요청 방법 이 무엇이든 GET 방법 으로 location 이 지정 한 url 로 자동 으로 재 설정 합 니 다.기 존의 많은 브 라 우 저 는 POST 가 301,302 상태 코드 를 되 돌려 달라 고 요청 할 때 자동 으로 GET 로 location 의 url 을 요청 하 며 사용자 가 확인 하지 않 아 도 된다 는 것 이다.    3.HTTP 1.1 에 303,307 상태 코드 가 추가 되 어 서버 가 클 라 이언 트 가 어떤 반응 을 기대 하 는 지 명 확 히 한다.    4.303 상태 코드 는 바로 위의 301,302 상태 코드 의'비합법적'동작 으로 클 라 이언 트 가 자동 으로 GET 방법 으로 요청 location 의 url 로 방향 을 바 꿀 수 있 도록 지시 하고 사용자 가 확인 할 필요 가 없다.바로 앞의 301,302 상태 코드 의 처리 동작 을 합 법화 한 것 이다.    5.307 상태 코드 는 301,302 원래 지 켜 야 하 는 규정 으로 GET,HEAD 방법 을 제외 하고 다른 요청 방법 은 반드시 고객 이 확인 해 야 이동 할 수 있다.    6.303,307 은 원래 301,302 가'합 법 적 이지 않다'는 처리 동작 을'합 법화'하 는 것 이다.모두 가 잘 지 키 지 않 는 것 을 발 견 했 기 때문에 아예 규정 을 추가 했다.
    내 가 이 설명 을 알 고 있 는 지 모 르 겠 으 면 HTTP 상태 코드 를 직접 보 세 요.

좋은 웹페이지 즐겨찾기