it-swarm.com.de

Was bedeutet HTTP / 1.1 302 genau?

Einige Artikel, die ich einmal gelesen habe, besagten, dass es bedeutet, zu springen (von einem URI zum anderen), aber ich habe dieses "302" entdeckt, selbst wenn es überhaupt kein Springen gab!

105
omg

Eine 302-Umleitung bedeutet, dass die Seite vorübergehend verschoben wurde, während eine 301-Umleitung bedeutet, dass sie permanent verschoben wurde.

301s sind gut für den SEO-Wert, während 302s nicht, weil 301s Kunden anweisen, den Wert der ursprünglichen URL zu vergessen, während der 302 den Wert der ursprünglichen URL beibehält und somit den Wert möglicherweise reduzieren kann, indem zwei logisch getrennte URLs erstellt werden, die Jeder produziert den gleichen Inhalt (Suchmaschinen betrachten ihn als unterschiedliche Duplikate und nicht als einzelne Ressource mit zwei Namen).

69
CodeMonkey1313

Diese Frage wurde vor langer Zeit gestellt, als der RFC 2616 noch herumhing. Einige Antworten auf diese Frage basieren auf einem solchen Dokument, das heutzutage nicht mehr relevant ist. Zitat Mark Nottingham der zum Zeitpunkt des Schreibens den Vorsitz in den IETF-Arbeitsgruppen HTTP und QUIC innehat:

Verwenden Sie nicht RFC2616 . Löschen Sie es von Ihren Festplatten, Lesezeichen und brennen Sie alle ausgedruckten Kopien (oder recyceln Sie sie verantwortungsbewusst).

Der alte RFC 2616 wurde durch die folgenden Dokumente ersetzt, die zusammen das HTTP/1.1-Protokoll definieren:

Aus diesem Grund möchte ich eine Antwort auf der Grundlage von RFC 7231 bereitstellen. Dies ist die aktuelle Referenz für HTTP/1.1-Statuscodes.

Das 302 Statuscode

Eine Antwort mit 302 ist eine gebräuchliche Methode zur URL-Umleitung. Zusammen mit 302 Statuscode, die Antwort sollte einen Location Header mit einer anderen URI enthalten. Solche Header werden vom Benutzerprogramm analysiert und führen dann die Umleitung durch:


Redirection example


Webbrowser können sich in der nachfolgenden Anforderung von POST zu GET ändern. Wenn dieses Verhalten unerwünscht ist, wird 307 (Temporäre Umleitung) Statuscode kann stattdessen verwendet werden.

So funktioniert das 302 Statuscode ist definiert in RFC 7231 :

6.4.3. 302 Gefunden

Das 302 (Gefunden) Statuscode zeigt an, dass sich die Zielressource vorübergehend unter einem anderen URI befindet. Da die Umleitung gelegentlich geändert werden kann, sollte der Client die effektive Anforderungs-URI für zukünftige Anforderungen weiterhin verwenden.

Der Server SOLLTE ein Location -Headerfeld in der Antwort generieren, das eine URI-Referenz für die verschiedenen URIs enthält. Das Benutzerprogramm KANN den Feldwert Location für die automatische Umleitung verwenden. Die Antwortnutzlast des Servers enthält normalerweise eine kurze Hypertextnotiz mit einem Hyperlink zu den verschiedenen URIs.

Hinweis: Aus historischen Gründen KANN ein Benutzerprogramm die Anforderungsmethode für die nachfolgende Anforderung von POST in GET ändern . Wenn dieses Verhalten unerwünscht ist, wird 307 (Temporary Redirect) -Statuscode kann stattdessen verwendet werden.

Laut MDN-Webdokumente von Mozilla ein typischer Anwendungsfall für 302 ist:

Die Webseite ist vorübergehend aus nicht unvorhergesehenen Gründen nicht verfügbar. Auf diese Weise aktualisieren Suchmaschinen ihre Links nicht.

Andere Statuscodes für die Umleitung

Der RFC 7231 definiert die folgenden Statuscodes für die Umleitung:

  • 301 (dauerhaft verschoben)
  • 302 (Gefunden)
  • 307 (Temporäre Weiterleitung)

Der RFC 7238 wurde erstellt, um einen anderen Statuscode für die Umleitung zu definieren:

  • 308 (Permanente Weiterleitung)

Beziehen Sie sich auf diese Antwort für weitere Details.

47
cassiomolin

Eine einfache Sichtweise auf HTTP 301-Weiterleitungen im Vergleich zu 302-Weiterleitungen lautet:

Angenommen, Sie haben ein Lesezeichen für " http://sample.com/sample ". Sie verwenden einen Browser, um dorthin zu gelangen.

Eine Weiterleitung zu einer anderen URL an dieser Stelle würde bedeuten, dass Sie Ihr Lesezeichen bei " http://sample.com/sample " belassen sollten. Dies liegt daran, dass sich die Ziel-URL in Zukunft möglicherweise ändert.

Eine 301-Weiterleitung zu einer anderen URL würde bedeuten, dass sich Ihr Lesezeichen so ändert, dass es auf die neue URL verweist, da es sich um eine permanente Weiterleitung handelt.

24
Redbeard

From RFC 2616 (die Hypertext Transfer Protocol-Spezifikation) :

 10.3.3 302 Gefunden 
 
 Die angeforderte Ressource befindet sich vorübergehend unter einer anderen URI. 
 Da die Umleitung gelegentlich geändert werden kann, MUSS der Client 
 Verwenden Sie den Request-URI weiterhin für zukünftige Anfragen. Diese Antwort 
 Kann nur zwischengespeichert werden, wenn dies durch ein Cache-Control- oder Expires-Header-Feld 
 Angezeigt wird. 
 
 Der temporäre URI MUSS durch das Location-Feld im 
   Antwort. Sofern die Anforderungsmethode nicht HEAD lautete, MUSS die Entität der Antwort 
 Eine kurze Hypertextnotiz mit einem Hyperlink zu 
 Der neuen URI (s) enthalten. 

Quelle:

http://www.ietf.org/rfc/rfc2616.txt

10
Reginaldo

Gemäß http status code definitions zeigt ein 302 eine (temporäre) Umleitung an. "Die angeforderte Ressource befindet sich vorübergehend unter einem anderen URI"

5

302 ist eine Antwort, die eine Änderung des Ressourcenorts anzeigt - "Gefunden".

Die URL, unter der sich die Ressource jetzt befinden soll, sollte sich in der Kopfzeile der Antwort 'Location' befinden.

Der "Sprung" sollte vom anfordernden Client ausgeführt werden (stellen Sie eine neue Anforderung an die Ressourcen-URL im Feld für den Antwortspeicherort-Header).

5
Demi

In Bezug auf SEO sind 301 und 302 beide gut, es hängt von der Situation ab,

Wenn nur eine Version zurückgegeben werden kann (d. H. Die anderen leiten darauf weiter), ist das großartig! Dieses Verhalten ist vorteilhaft, da doppelte Inhalte reduziert werden. Im speziellen Fall von Weiterleitungen zu URLs mit nachgestellten Schrägstrichen wird in den Suchergebnissen wahrscheinlich die Version der URL mit dem Antwortcode 200 (meistens die URL mit nachgestellten Schrägstrichen) angezeigt - unabhängig davon, ob die Weiterleitung 301 oder 302 lautete.

5
Sunil

Aus Wikipedia :

Der HTTP-Antwortstatuscode 302 Gefunden ist die häufigste Methode zum Ausführen einer Umleitung. Es ist ein Beispiel für eine industrielle Praxis, die der Norm widerspricht.

4
Paul Sonier

Der HTTP-Code 302 dient zur Weiterleitung (siehe http://en.wikipedia.org/wiki/HTTP_302 ).

Es weist das Durchsuchen an, eine Seite zu lesen, um an eine andere Stelle zu gehen und eine andere Seite zu laden. Seine Verwendung ist sehr verbreitet.

2
BeWarned

Gemäß RFC 1945/Hypertext Transfer Protocol - HTTP/1. :

   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.