Ce înseamnă mai exact HTTP/1.1 302? (Programare, Http, Redirecționare, Http Headers, Cod De Stare Http 302)

omg a intrebat.

Un articol pe care l-am citit odată spunea că înseamnă săritură (de la un URI la altul), dar eu am detectat acest „302” chiar și atunci când de fapt nu a existat nicio săritură!

Comentarii

  • S-ar putea să existe informații bune în acest sens aici, în documentația wc3.org. –  > Por Copas.
  • Fiți foarte atenți: example.com example.com și exemplu.com sunt distincte din punct de vedere logic, iar un site care dorește să fie accesat prin intermediul unui singur URL poate redirecționa de la unul la altul pentru a realiza acest lucru. Desigur, redirecționările 302 sunt o alegere proastă pentru acest lucru… dar este foarte posibil să fi văzut variante la fel de subtile. –  > Por Shog9.
  • Trimiteți acest site (hostingpill.com/http-302-error) –  > Por virusarthak.
15 răspunsuri
CodeMonkey1313

O redirecționare 302 înseamnă că pagina a fost mutată temporar, în timp ce o redirecționare 301 înseamnă că a fost mutată permanent.

301-urile sunt bune pentru valoarea SEO, în timp ce 302-urile nu sunt, deoarece 301-urile instruiesc clienții să uite valoarea URL-ului original, în timp ce 302 păstrează valoarea originalului și, prin urmare, poate reduce potențial valoarea prin crearea a două URL-uri distincte din punct de vedere logic care produc fiecare același conținut (motoarele de căutare le văd ca fiind duplicate distincte, mai degrabă decât o singură resursă cu două nume).

cassiomolin

Această întrebare a fost pusă cu mult timp în urmă, pe când RFC 2616 încă mai dădea târcoale. Unele răspunsuri la această întrebare se bazează pe un astfel de document, care nu mai este relevant în zilele noastre. Citez Mark Nottingham care, la momentul scrierii acestui articol, este copreședinte al grupurilor de lucru IETF HTTP și QUIC:

Nu folosiți RFC2616. Ștergeți-l de pe hard disk-uri, din favorite și ardeți (sau reciclați în mod responsabil) orice copie tipărită.

Vechiul RFC 2616 a fost înlocuit de următoarele documente care, împreună, definesc protocolul HTTP/1.1:

Așadar, îmi propun să ofer un răspuns bazat pe RFC 7231 care este referința actuală pentru codurile de stare HTTP/1.1.

Site-ul 302 cod de stare

Un răspuns cu 302 este o modalitate obișnuită de redirecționare a URL-urilor. Împreună cu codul 302 codul de stare, răspunsul trebuie să includă un Location cu un URI diferit. Un astfel de antet va fi analizat de către agentul utilizatorului și apoi va efectua redirecționarea:

Browserele web pot schimba de la POST la GET în cererea ulterioară. În cazul în care acest comportament nu este dorit, se poate utiliza 307 (Redirecționare temporară) poate fi utilizat în locul acestuia.

În acest mod, codul 302 este definit în RFC 7231:

6.4.3. 302 Găsit

Adresa 302 (Found) indică faptul că resursa țintă se află temporar sub un URI diferit. Deoarece redirecționarea ar putea fi modificată ocazional, clientul ar trebui să continue să utilizeze URI-ul de cerere efectiv pentru cererile viitoare.

Serverul TREBUIE să genereze un cod Location în răspuns care să conțină o referință URI pentru URI-ul diferit. Agentul utilizator POATE utiliza câmpul Location valoarea câmpului pentru redirecționarea automată. Încărcătura utilă a răspunsului serverului conține, de obicei, o scurtă notă hipertext cu un hyperlink către URI-ul (URI-urile) diferit(e).

Notă: Din motive istorice, un agent utilizator POATE schimba metoda de solicitare de la POST la GET pentru cererea următoare. În cazul în care acest comportament nu este dorit, trebuie să se utilizeze 307 (Redirecționare temporară) poate fi utilizat în locul acestuia.

În conformitate cu documentația web MDN de la Mozilla, un caz tipic de utilizare pentru 302 este:

Pagina web nu este temporar disponibilă din motive care nu au fost neprevăzute. În acest fel, motoarele de căutare nu își actualizează linkurile.

Alte coduri de stare pentru redirecționare

RFC 7231 definește următoarele coduri de stare pentru redirecționare:

  • 301 (mutat permanent)
  • 302 (Găsit)
  • 307 (Redirecționare temporară)

Adresa RFC 7238 a fost creat pentru a defini un alt cod de stare pentru redirecționare:

  • 308 (Redirecționare permanentă)

Pentru mai multe detalii, consultați acest răspuns.

Comentarii

  • Ei bine, durerea mea de două zile a luat sfârșit, mulțumită vouă (Location antetul a fost lucrul care m-a ajutat). Se pare că am apelat un serviciu cu http și ei s-au mutat la https, tot ce am primit ca răspuns a fost 302, de îndată ce am citit Location header aici, am văzut că http/https diferența. Vă mulțumesc! –  > Por Eugene.
  • Am același motiv la această eroare. Javascript-ul meu a indicat către o locație https greșită și astfel redirecționarea a eșuat. Vă mulțumesc pentru comentariu. –  > Por Max.
Redbeard

Un mod simplu de a analiza redirecționările HTTP 301 vs. 302 este:

Să presupunem că aveți un marcaj către „http://sample.com/sample„. Folosiți un browser pentru a merge acolo.

O redirecționare 302 către un alt URL în acest moment ar însemna că ar trebui să păstrați marcajul către „http://sample.com/sample„. Acest lucru se datorează faptului că URL-ul de destinație se poate schimba în viitor.

O redirecționare 301 către o altă adresă URL ar însemna că marcajul dvs. ar trebui să se schimbe pentru a indica noua adresă URL, deoarece este o redirecționare permanentă.

Reginaldo

De la RFC 2616 (specificația protocolului de transfer hipertext):

10.3.3 302 Found

   The requested resource resides temporarily under a different URI.
   Since the redirection might be altered on occasion, the client SHOULD
   continue to use the Request-URI for future requests.  This response
   is only cacheable if indicated by a Cache-Control or Expires header
   field.

   The temporary URI SHOULD be given by the Location field in the
   response. Unless the request method was HEAD, the entity of the
   response SHOULD contain a short hypertext note with a hyperlink to
   the new URI(s).

Sursă:

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

Paul Sonier

De la Wikipedia:

Codul de stare de răspuns HTTP 302 Found este cel mai comun mod de a efectua o redirecționare. Este un exemplu de practică industrială care contrazice standardul.

Mitchell McKenna

În conformitate cu standardul definițiile codurilor de stare http un 302 indică o redirecționare (temporară): „Resursa solicitată se află temporar sub un URI diferit”.

Demi

302 este un răspuns care indică schimbarea locației resursei – „Found”.

URL-ul în care ar trebui să se afle acum resursa ar trebui să fie în antetul „Location” al răspunsului.

„Saltul” ar trebui să fie făcut de clientul solicitant (face o nouă cerere către url-ul resursei din câmpul de antet „Location” din răspuns).

Sunil

În ceea ce privește SEO, 301 și 302 sunt ambele bune, depinde de situație,

Dacă doar o singură versiune poate fi returnată (adică, cealaltă redirecționează către ea), este minunat! Acest comportament este benefic pentru că reduce conținutul duplicat. În cazul particular al redirecționărilor către URL-uri cu bară oblică, rezultatele căutării noastre vor afișa probabil versiunea URL-ului cu codul de răspuns 200 (cel mai adesea URL-ul cu bară oblică) – indiferent dacă redirecționarea a fost una 301 sau 302.

Fiți atenți la

Codul HTTP 302 este pentru redirecționare, consultați http://en.wikipedia.org/wiki/HTTP_302.

Acesta îi spune navigatorului care citește o pagină să meargă în altă parte și să încarce o altă pagină. Utilizarea sa este foarte frecventă.

Alexandre Neukirchen

Conform 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.

  • Codul 302 indică un redirecționare temporară.
  • Una dintre cele mai notabile caracteristici care o diferențiază de o redirecționare 301 este că, în cazul redirecționărilor 302, puterea SEO nu este transferată la un nou URL.
  • Acest lucru se datorează faptului că această redirecționare a fost concepută pentru a fi utilizată atunci când este nevoie de redirecționarea conținutului către o pagină care nu va fi cea definitivă. Astfel, odată ce redirecționarea este eliminată, pagina originală nu își va fi pierdut poziționarea în motorul de căutare Google.

EXEMPLU: – Deși nu este foarte frecvent să ne aflăm în situația de a avea nevoie de o redirecționare 302, această opțiune poate fi foarte utilă în unele cazuri. Iată care sunt cele mai frecvente cazuri:

  • Atunci când ne dăm seama că există un conținut nepotrivit pe o pagină. În timp ce rezolvăm problema, putem redirecționa utilizatorul către o altă pagină care ar putea fi de interes.
  • În cazul în care un atac asupra site-ului nostru necesită restaurarea oricăreia dintre pagini, această redirecționare ne poate ajuta să minimizămincidența.

O redirecționare 302 este un cod care le spune vizitatorilor unui anumit URL că pagina a fost mutată temporar, îndreptându-i direct către noua locație.

  • Cu alte cuvinte, redirecționarea 302 este activată atunci când roboții Google sau alte motoare de căutare solicită încărcarea unei anumite pagini. În acel moment, datorită acestei redirecționări, serverul returnează un răspuns automat care indică un nou URL.

  • În acest fel sunt evitate erorile și neplăcerile atât pentru motoarele de căutare cât și pentru utilizatori, garantând o navigare fără probleme.

Pentru mai multe detalii, consultați această articol.

Sourabh Bhavsar

Un cod de stare 302 este un cod de stare de răspuns HTTP care indică faptul că resursa solicitată a fost mutată temporar la un alt URI. Deoarece locația sau directiva de redirecționare curentă ar putea fi schimbată în viitor, un client care primește un cod de răspuns 302 Found ar trebui să continue să utilizeze URI-ul original pentru solicitări viitoare.

Un răspuns HTTP cu acest cod de stare va furniza în plus un URL în câmpul de antet Location. Aceasta este o invitație adresată agentului utilizator (de exemplu, un browser web) de a efectua o a doua cerere, de altfel identică, către noul URL specificat în câmpul Location. Rezultatul final este o redirecționare către noul URL.

aderchox

Pentru cei care ar putea fi curioși în legătură cu denumirea, voi adăuga doar că, probabil, se numește „Found” (găsit) deoarece resursa principală (de exemplu, o pagină web privată) pe care utilizatorul intenționează să o primească nu este disponibilă în acel moment (de exemplu, utilizatorul nu și-a dovedit încă identitatea), așa că, în schimb, serverul a găsit o nouă resursă pe care utilizatorul o poate primi (care este o pagină de autentificare în cel mai frecvent caz de utilizare).

De asemenea, este „a se pierde și a se găsi” în maniera „ascunde și caută”, ceea ce înseamnă că o resursă pierdută sub un statut 302 este pierdută doar temporar, nu ar trebui să fie pierdută pentru totdeauna(cu excepția cazului în care un jucător are niște intenții rele;)).

Sandeep Negi

În primul rând, să luăm un scenariu despre cum funcționează 301 și 302

  1. 301 –> mutat permanent

Imaginați-vă că există o resursă de tipul –> http://hashcodehub.com/user , acum, în viitor, vom schimba numele resursei în user- info –> acum url-ul ar trebui să fie http://hashcodehub.com/user-info –> dar utilizatorul încearcă în continuare să acceseze același URL –> http://hashcodehub.com/user –> aici, din backend, putem redirecționa utilizatorul către noul URL și trimite codul de stare 301 –> care este folosit pentru mutarea permanentă.

Mai sus am explicat cum funcționează 301

Haideți să înțelegem cum va fi folosit 302 în viața reală

  1. 302 –> Redirecționare temporară –> aici nu este nevoie să se schimbe întreaga adresă URL, dar din anumite motive redirecționăm către resurse din locații diferite. În acest caz, în câmpul de antet „location header” vom indica valoarea noului URL al resursei, iar browserul va efectua din nou o cerere către url-ul resursei în câmpul de antet „location header” al răspunsului.

  2. 302 poate fi utilizat doar în cazul în care există un conținut necorespunzător pe pagina noastră .În timp ce rezolvăm această problemă, putem redirecționa toate paginile noastre utilizate către o adresă temporară și să rezolvăm problema.

  3. De asemenea, poate fi utilizat în cazul în care există un atașament pe site-ul web și unele pagini necesită restaurare, caz în care putem redirecționa utilizatorul către o resursă diferită.

  4. Redirecționarea 302 servește, de exemplu, pentru a avea mai multe versiuni ale unei pagini de pornire în diferite limbi.Cea principală poate fi în limba engleză; dar dacă vizitatorii provin din alte țări, atunci acest sistem îi redirecționează automat către pagina în limba lor.

omar ahmed

302 : acest cod de stare apare atunci când o resursă sau o pagină pe care încercați să o încărcați a fost temporar mutată temporar într-o altă locație – prin intermediul unei redirecționări 302.