Lista codurilor de stare HTTP

Codul de stare HTTP face parte din prima linie a răspunsului serverului pentru solicitările HTTP .  Este un număr zecimal din trei cifre. Prima cifră indică clasa de stare . Codul de răspuns este de obicei urmat de o frază explicativă, separată de spațiu, în limba engleză, care explică persoanei motivul unui astfel de răspuns. Exemple:

Clientul învață din codul de răspuns despre rezultatele solicitării sale și stabilește ce acțiuni să întreprindă în continuare. Setul de coduri de stare este un standard și sunt descrise în documentele RFC relevante . Introducerea noilor coduri ar trebui făcută numai după consultarea cu IETF . Cu toate acestea, există două coduri cunoscute în uz care nu sunt menționate în RFC: 449 Retry With. De asemenea, este menționată sintagma explicativă „Reply With” [1] în specificația pentru WebDAV în Microsoft Developer Network introdusă de Microsoft și 509 Bandwidth Limit Exceededintrodusă în cPanel .

Este posibil ca clientul să nu cunoască toate codurile de stare, dar trebuie să răspundă în funcție de clasa de cod. În prezent, există cinci clase de coduri de stare.

Serverul web Internet Information Services în fișierele sale jurnal, pe lângă codurile de stare standard, utilizează subcoduri, scriindu-le cu un punct după cel principal. În același timp, acest subcod nu este plasat în răspunsurile de la server - este nevoie de administratorul serverului pentru a putea determina mai precis sursele problemelor.

Lista de recenzii

Mai jos este o listă generală a tuturor codurilor de răspuns descrise în acest articol:

Descrierea codurilor

Informațional

Această clasă conține coduri care informează despre procesul de transmitere. Când lucrați cu versiunea de protocol 1.0, mesajele cu astfel de coduri ar trebui ignorate. În versiunea 1.1, clientul trebuie să fie pregătit să accepte această clasă de mesaje ca răspuns normal, dar serverul nu trebuie să trimită nimic. Mesajele de la server în sine conțin doar linia de început a răspunsului și, dacă este necesar, câteva câmpuri de antet specifice răspunsului. Serverele proxy ar trebui să trimită astfel de mesaje mai departe de la server către client.

Succes

Mesajele acestei clase informează despre cazurile de acceptare și procesare cu succes a unei cereri de client. În funcție de stare, serverul poate trimite, de asemenea, anteturi și un corp de mesaj.

Redirecționare

Codurile din această clasă îi spun clientului că trebuie făcută o altă solicitare pentru ca operația să reușească, de obicei la un URI diferit . Din această clasă, cinci coduri 301, 302, 303, 305și 307se referă direct la redirecționări. Adresa la care clientul ar trebui să facă o cerere este indicată de server în fișierul Location. Acest lucru permite utilizarea fragmentelor în URI-ul țintă.

Conform celor mai recente standarde, clientul poate redirecționa doar fără a întreba utilizatorul dacă a doua resursă este solicitată folosind metoda GETsau HEAD[7] . Specificațiile anterioare spuneau că pentru a evita călătoriile dus-întors, utilizatorul ar trebui să fie întrebat după a 5-a redirecționare consecutivă [16] . Pentru toate redirecționările, dacă metoda de solicitare nu a fost HEAD, atunci în corpul răspunsului ar trebui inclus un scurt mesaj hipertext cu adresa de destinație, astfel încât în ​​cazul unei erori, utilizatorul să poată naviga singur.

Dezvoltatorii HTTP notează că mulți clienți, atunci când redirecționează cu coduri 301și 302aplică în mod eronat metoda GETla a doua resursă, în ciuda faptului că prima solicitare a fost cu o metodă diferită (cel mai adesea PUT) [17] . Pentru a evita neînțelegerile, HTTP/1.1 a introdus coduri 303și 307și se recomandă să fie folosite în loc de 302. Trebuie să schimbați metoda doar dacă serverul a răspuns 303. În alte cazuri, următoarea cerere se face cu metoda inițială.

Comportamentul clienților pentru diferite redirecționări este descris în tabel:

Starea răspunsului stocarea în cache Dacă metoda nu este GET sau HEAD
301 Moved Permanently Poți, ca de obicei. Cereți utilizatorului confirmarea și solicitați o altă resursă folosind metoda originală.
307 Temporary Redirect Este posibil doar dacă un titlu Cache-Controlsau Expires.
302 Found(HTTP/1.1)
302 Moved Temporarily(HTTP/1.0)
303 See Other Este interzis. Mergeți automat, dar folosind GET.

Eroare client

Clasa de coduri 4xxeste menită să indice erorile din partea clientului. Când utilizați toate metodele, cu excepția HEAD, serverul trebuie să returneze o explicație hipertext pentru utilizator în corpul mesajului.

Eroare server

Codurile 5xxsunt dedicate cazurilor de excepții netratate atunci când se efectuează operațiuni pe partea serverului. Pentru toate situațiile, altele decât utilizarea metodei HEAD, serverul TREBUIE să includă o explicație în corpul mesajului pe care clientul o va afișa utilizatorului.

Vezi și

Note

  1. 1 2 2.2.6 449 „Reîncercați cu codul de stare” // Protocol Web Distributed Authoring and Versioning (WebDAV): Extensii client. Arhivat pe 5 octombrie 2009 la Wayback Machine pe MSDN
  2. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 35 16 33 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 35 16 33 16 33 16 34 33 16 34 33 16 34 34 33 16 34 34 34 34 34 34 34 36 7, 2018 la Wayback Machine » în RFC 2068
  3. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 RFC . Data accesului: 29 iulie 2009. Arhivat din original pe 7 martie 2011.
  4. 1 2 3 IETF Proiect WebDAV Advanced Collections Protocol  - S.4.2.5 . Data accesului: 18 mai 2012. Arhivat din original pe 9 iulie 2012.
  5. IETF Draft WebDAV Advanced Collections Protocol  - S.10 . Data accesului: 18 mai 2012. Arhivat din original pe 9 iulie 2012.
  6. rfc5842 . Consultat la 12 septembrie 2017. Arhivat din original la 10 octombrie 2017.
  7. 1 2 3 4 5 6 7 8 9 10 RFC 2616 „10.3 Redirecționare 3xx” (p. 61) . Data accesului: 29 iulie 2009. Arhivat din original pe 7 martie 2011.
  8. rfc7538 . Consultat la 12 septembrie 2017. Arhivat din original la 16 aprilie 2015.
  9. IETF Draft WebDAV Advanced Collections Protocol  - S.4.3.1.1 . Data accesului: 18 mai 2012. Arhivat din original pe 9 iulie 2012.
  10. rfc7540 . Consultat la 12 septembrie 2017. Arhivat din original la 23 iunie 2015.
  11. 1 2 3 4 RFC 6585
  12. 1 2 IETF elaborează un nou cod de stare HTTP pentru a raporta obstacolele legale . Preluat la 6 martie 2013. Arhivat din original la 22 mai 2013.
  13. RFC 2295 Negociere de conținut transparent în HTTP  - S.8.1 . Data accesului: 18 mai 2012. Arhivat din original pe 8 iunie 2012.
  14. IETF Draft WebDAV Advanced Collections Protocol  - S.7.1 . Data accesului: 18 mai 2012. Arhivat din original pe 9 iulie 2012.
  15. 1 2 3 4 5 6 7 Pagini de eroare - Suport CloudFlare . Consultat la 18 aprilie 2016. Arhivat din original pe 4 martie 2016.
  16. RFC 2068 „10.3 Redirection 3xx” (p. 56) Arhivat la 7 iunie 2018 la Wayback Machine .
  17. RFC 2616 , secțiunea „10.3.3 302 Found”, pagina 63 Arhivat la 7 martie 2011 la Wayback Machine .
  18. Josh Cohen HTTP/1.1 Codurile de răspuns 305 și 306 Arhivate la 8 septembrie 2014 la Wayback Machine  // Netscape Communications Corp., 25 decembrie 1996
  19. Ce înseamnă 403 Interzis? Arhivat pe 21 februarie 2014 la Wayback Machine .
  20. Cauze of a 404 Not Found Error Arhivat 21 februarie 2014 la Wayback Machine .
  21. RFC 2324 - Protocolul de control al cafelei hipertext (HTCPCP/1.0) .
  22. draft-ietf-httpbis-legally-restricted-status-04 . datatracker.ietf.org. Preluat la 22 decembrie 2015. Arhivat din original la 23 decembrie 2015.
  23. Descrierea 500 de erori interne ale serverului Arhivat 21 februarie 2014 la Wayback Machine .
  24. Limita de resurse atinsă . www.cloudlinux.com _ Preluat la 21 iunie 2022. Arhivat din original la 15 mai 2021.

Link -uri

Documente de bază HTTP (descrescătoare după data publicării) Documente privind extensiile și actualizările protocolului HTTP (descrescătoare după data publicării) Materiale suplimentare