내가 읽은 일부 기사는 점프 (한 URI에서 다른 URI로)를 의미한다고 말했지만 실제로 점프가 전혀없는 경우에도 "302"를 감지했습니다!
내가 읽은 일부 기사는 점프 (한 URI에서 다른 URI로)를 의미한다고 말했지만 실제로 점프가 전혀없는 경우에도 "302"를 감지했습니다!
답변:
302 리디렉션은 페이지가 일시적으로 이동되었음을 의미하고 301은 페이지가 영구적으로 이동되었음을 의미합니다.
301은 SEO 값에 적합하지만 302는 클라이언트에게 원래 URL의 값을 잊도록 지시하기 때문이 아닙니다. 각각은 동일한 콘텐츠를 생성합니다 (검색 엔진은 두 개의 이름을 가진 단일 리소스가 아닌 별개의 중복으로 간주합니다).
이 질문은 오래 전에 RFC 2616이 여전히 남아있는 동안에 제기되었습니다. 이 질문에 대한 일부 답변은 오늘날 더 이상 관련이없는 문서를 기반으로합니다. 작성 당시 IETF HTTP 및 QUIC 워킹 그룹의 공동 의장을 맡고있는 Mark Nottingham 을 인용합니다 .
RFC2616을 사용하지 마십시오 . 하드 드라이브, 북마크에서 삭제하고 인쇄 된 사본을 구울 (또는 책임감있게 재활용)하십시오.
이전 RFC 2616은 함께 HTTP / 1.1 프로토콜을 정의하는 다음 문서로 대체되었습니다.
따라서 HTTP / 1.1 상태 코드에 대한 현재 참조 인 RFC 7231 을 기반으로 답변을 제공하는 것을 목표로합니다 .
302
상태 코드응답 302
은 URL 리디렉션을 수행하는 일반적인 방법입니다. 302
상태 코드 와 함께 응답에는 Location
URI가 다른 헤더 가 포함되어야 합니다. 이러한 헤더는 사용자 에이전트에서 구문 분석 한 다음 리디렉션을 수행합니다.
웹 브라우저는 후속 요청에서 에서 POST
로 변경 될 수 있습니다 GET
. 이 동작이 바람직하지 않은 경우 307
(임시 리디렉션) 상태 코드를 대신 사용할 수 있습니다.
이것은 어떻게 302
상태 코드는에 정의되어 7231 RFC :
302
(실측치) 상태 코드 대상 자원이 일시적으로 다른 URI에있는 것을 나타낸다. 리디렉션이 가끔 변경 될 수 있으므로 클라이언트는 향후 요청에 대해 유효한 요청 URI를 계속 사용해야합니다.서버는
Location
다른 URI에 대한 URI 참조를 포함하는 응답에 헤더 필드를 생성해야합니다 (SHOULD) . 사용자 에이전트Location
는 자동 리디렉션을 위해 필드 값을 사용할 수 있습니다 . 서버의 응답 페이로드에는 일반적으로 다른 URI에 대한 하이퍼 링크가있는 짧은 하이퍼 텍스트 메모가 포함됩니다.참고 : 기록적인 이유로 사용자 에이전트 는 후속 요청
POST
에GET
대해 요청 방법을에서 로 변경할 수 있습니다 . 이 동작이 바람직하지 않은 경우307
(임시 리디렉션) 상태 코드를 대신 사용할 수 있습니다.
Mozilla의 MDN 웹 문서 에 따르면 일반적인 사용 사례 302
는 다음과 같습니다.
웹 페이지는 예상치 못한 이유로 일시적으로 사용할 수 없습니다. 이렇게하면 검색 엔진이 링크를 업데이트하지 않습니다.
RFC 7231 를 정의 재 지정을위한 다음과 같은 상태 코드 :
RFC 7238는 리디렉션 다른 상태 코드를 정의하기 위해 만들어졌습니다 :
308
(영구 리디렉션)자세한 내용은이 답변 을 참조하십시오 .
Location
헤더가 나를 도왔습니다). 내가 서비스를 부르고 http
있었고 그들은으로 옮겼습니다 https
. 내가 응답 한 것은이었습니다 302
. Location
여기서 헤더를 읽 자마자 http/https
차이를 보았습니다 . 감사합니다!
HTTP 301과 302 리디렉션을 비교하는 간단한 방법은 다음과 같습니다.
" http://sample.com/sample "에 대한 책갈피가 있다고 가정 하십시오 . 거기에 가기 위해 브라우저를 사용합니다.
이 시점에서 다른 URL 로의 302 리디렉션은 북마크를 " http://sample.com/sample " 로 유지해야 함을 의미합니다 . 이는 도착 URL이 향후 변경 될 수 있기 때문입니다.
다른 URL 로의 301 리디렉션은 영구 리디렉션이므로 북마크가 새 URL을 가리 키도록 변경되어야 함을 의미합니다.
에서 RFC 2616 (하이퍼 텍스트 전송 프로토콜 규격) :
10.3.3 302 찾음 요청 된 리소스는 일시적으로 다른 URI에 있습니다. 리디렉션이 가끔 변경 될 수 있으므로 클라이언트는 향후 요청에 Request-URI를 계속 사용하십시오. 이 응답 Cache-Control 또는 Expires 헤더로 표시되는 경우에만 캐시 할 수 있습니다. 들. 임시 URI는 위치 필드에서 제공해야합니다. 응답. 요청 방법이 HEAD가 아니면 응답에 하이퍼 링크가있는 짧은 하이퍼 텍스트 메모를 포함해야합니다 (SHOULD). 새로운 URI.
출처:
당으로 HTTP 상태 코드 정의 302는 (일시적으로) 리디렉션을 나타냅니다. "요청 된 리소스가 일시적으로 다른 URI에 있습니다."
HTTP 코드 302는 리디렉션을위한 것입니다 ( http://en.wikipedia.org/wiki/HTTP_302 참조) .
다른 페이지로 이동하고 다른 페이지를로드하도록 페이지를 읽는 탐색에 지시합니다. 그 사용법은 매우 일반적입니다.
RFC 1945 / Hypertext Transfer Protocol-HTTP / 1.0 에 따르면 :
302 Moved Temporarily
The requested resource resides temporarily under a different URL.
Since the redirection may be altered on occasion, the client should
continue to use the Request-URI for future requests.
The URL must be given by the Location field in the response. Unless
it was a HEAD request, the Entity-Body of the response should
contain a short note with a hyperlink to the new URI(s).
If the 302 status code is received in response to a request using
the POST method, the user agent must not automatically redirect the
request unless it can be confirmed by the user, since this might
change the conditions under which the request was issued.
Note: When automatically redirecting a POST request after
receiving a 302 status code, some existing user agents will
erroneously change it into a GET request.
예 : -302 리디렉션이 필요한 경우는 흔하지는 않지만이 옵션은 경우에 따라 매우 유용 할 수 있습니다. 다음은 가장 빈번한 경우입니다.
리디렉션 (302)은 특정 URL의 방문자에게 페이지가 일시적으로 이동되었음을 알리고 새 위치로 직접 안내하는 코드입니다.
즉, 리디렉션 302는 Google 로봇 또는 기타 검색 엔진이 특정 페이지를로드하도록 요청할 때 활성화됩니다. 이때이 리디렉션 덕분에 서버는 새 URL을 나타내는 자동 응답을 반환합니다.
이러한 방식으로 검색 엔진과 사용자 모두에게 오류와 성가심을 방지하여 원활한 탐색을 보장합니다.
자세한 내용은이 문서를 참조하십시오 .
302 상태 코드는 요청 된 리소스가 일시적으로 다른 URI로 이동되었음을 나타내는 HTTP 응답 상태 코드입니다. 위치 또는 현재 리디렉션 지시문이 나중에 변경 될 수 있으므로 302 Found 응답 코드를 수신하는 클라이언트는 향후 요청에 대해 원래 URI를 계속 사용해야합니다.
이 상태 코드가있는 HTTP 응답은 헤더 필드 위치에 URL을 추가로 제공합니다. 이것은 사용자 에이전트 (예 : 웹 브라우저)에게 두 번째 또는 동일하지 않은 경우 위치 필드에 지정된 새 URL로 요청하는 초대입니다. 최종 결과는 새 URL로 리디렉션됩니다.
이름 지정에 대해 궁금한 사람이 있으면 사용자가 수신하려는 주요 리소스 (예 : 개인 웹 페이지)를 그 순간에 사용할 수 없기 때문에 아마도 "찾음"이라고 부를 것입니다 (예 : 사용자는 아직 자신의 신원을 증명하지 않았으므로 서버는 사용자가받을 수있는 새 리소스를 찾았 습니다 (가장 일반적인 사용 사례의 로그인 페이지).
또한 숨바꼭질 방식으로 "잃어 버리고 발견하는 것"입니다. 즉, 302 상태에서 잃어버린 자원은 일시적으로 만 손실 되고 영원히 손실되지 않아야합니다 (플레이어가 나쁜 의도를 가지고 있지 않는 한).