Cod de stare HTTP

Cunoscut și ca: cod HTTP, cod de răspuns HTTP, cod de status HTTP, HTTP status code, HTTP response status code, HTTP Status Code
Ce este un cod de stare HTTP?
Pe scurt
Un cod de stare HTTP este un cod numeric transmis într-un răspuns HTTP. Acesta arată dacă o anumită cerere a fost procesată cu succes, necesită redirecționare sau a întâmpinat o eroare. Clientul folosește codul, împreună cu conținutul răspunsului, pentru a decide ce acțiune urmează.
Rolul codului de stare
HTTP este un protocol de tip cerere-răspuns. Clientul trimite o cerere către un server, iar serverul răspunde cu unul sau mai multe mesaje. Conform RFC 9110, codurile de stare descriu răspunsul. Clientul examinează codul și conținutul primit pentru a stabili dacă intenția cererii a fost îndeplinită și ce trebuie să facă în continuare.
Codul trebuie interpretat în contextul metodei HTTP și al celorlalte elemente ale răspunsului. De exemplu, semnificația unui răspuns 200 OK depinde de metoda folosită. Pentru GET, resursa este transmisă în corpul mesajului. Pentru HEAD, răspunsul include antetele reprezentării, fără corpul mesajului.
Clasele de răspunsuri
Codurile de stare sunt grupate în cinci clase:
100–199: răspunsuri informative;200–299: răspunsuri de succes;300–399: mesaje de redirecționare;400–499: erori asociate cererii clientului;500–599: erori de server.
Printre codurile de stare se află 200 OK, 301 Moved Permanently, 302 Found, 304 Not Modified, 404 Not Found și 410 Gone. Codurile 307 Temporary Redirect și 308 Permanent Redirect nu permit schimbarea metodei folosite în cererea redirecționată.
Coduri suplimentare și nestandard
RFC 6585 definește coduri suplimentare pentru situații specifice. De exemplu, 429 Too Many Requests arată că utilizatorul a trimis prea multe cereri într-un anumit interval. Răspunsul poate include antetul Retry-After pentru a indica durata de așteptare înaintea unei noi cereri.
Un cod care nu este definit de standardele HTTP poate fi un răspuns nestandard, personalizat de software-ul serverului. RFC 9110 definește semantica HTTP și codurile de stare principale, iar alte RFC-uri, precum RFC 6585, definesc coduri suplimentare.
De ce contează în SEO?
În SEO, codul de stare arată ce primește un client HTTP atunci când solicită un URL. Un crawler care cere o pagină poate primi conținutul, o redirecționare sau o eroare. Verificarea codurilor HTTP este utilă atunci când sunt mutate pagini, sunt eliminate resurse sau apar probleme de server.
Un răspuns 200 OK indică succesul cererii, în limitele metodei folosite. Un 301 Moved Permanently indică schimbarea permanentă a URL-ului, iar un 302 Found indică o schimbare temporară. 404 Not Found arată că serverul nu găsește resursa solicitată. 410 Gone comunică faptul că resursa a fost eliminată permanent și nu are o adresă de redirecționare. O pagină care afișează vizual o eroare poate transmite totuși un cod de succes, motiv pentru care trebuie verificat răspunsul HTTP efectiv.
Exemplu
Un magazin online din România mută pagina unui produs de la /cafea-boabe-veche la /cafea-boabe.
Serverul poate răspunde pentru adresa veche astfel:
HTTP/1.1 301 Moved Permanently
Location: https://www.exemplu.ro/cafea-boabe
Codul 301 arată că URL-ul resursei s-a schimbat permanent, iar antetul Location indică noua adresă.
Dacă produsul a fost eliminat permanent și nu există o pagină echivalentă, serverul poate folosi:
HTTP/1.1 410 Gone
Dacă serverul nu poate găsi resursa și nu comunică eliminarea ei permanentă, răspunsul poate fi 404 Not Found.
Cum verifici?
- Verifică răspunsul unui URL din linia de comandă, fără a urma automat redirecționările:
curl -s -D - -o /dev/null https://www.exemplu.ro/pagina
-
Citește prima linie a răspunsului și verifică antetul
Locationdacă există o redirecționare. -
Urmează întregul traseu al redirecționărilor:
curl -s -L -D - -o /dev/null https://www.exemplu.ro/pagina
-
În browser, deschide instrumentele pentru dezvoltatori și consultă fila Network pentru codul primit de fiecare resursă.
-
Pentru verificarea mai multor URL-uri, poate fi folosit un instrument care inventariază răspunsurile HTTP și redirecționările. Datele afișate descriu răspunsurile observate de instrument, dar nu definesc semantica HTTP.
Ce trebuie să faci?
- Configurează fiecare URL să transmită codul care descrie corect rezultatul cererii.
- Folosește o redirecționare permanentă atunci când resursa a fost mutată permanent și există o adresă nouă.
- Folosește un răspuns temporar atunci când schimbarea adresei nu este permanentă.
- Returnează
404 Not Foundcând resursa nu este găsită sau410 Gonecând resursa a fost eliminată permanent și nu are o adresă de redirecționare. - Verifică atât codul inițial, cât și destinația finală a unei redirecționări.
- Analizează răspunsurile nestandard și stabilește dacă sunt generate intenționat de software-ul serverului.
Greșeli frecvente
- O pagină afișează un mesaj de eroare, dar serverul răspunde cu `200 OK`.
- O mutare permanentă este comunicată printr-un cod destinat unei schimbări temporare.
- Se verifică doar destinația finală, fără a analiza răspunsurile intermediare.
- Codul este interpretat fără metoda HTTP, antetele și conținutul răspunsului.
- Un cod nestandard este tratat automat ca și cum ar avea o semantică definită de un RFC.
Perspectiva SEO 365
Verificăm răspunsul HTTP înainte de a interpreta vizual pagina. Corectăm nepotrivirile dintre starea reală a resursei și codul transmis și alegem redirecționarea în funcție de caracterul permanent sau temporar al mutării.