În lumea internetului, fiecare interacțiune dintre un client (de exemplu, un browser) și un server este marcată de un schimb subtil de mesaje. Printre aceste mesaje, codurile de răspuns ale serverului joacă un rol esențial. Aceste coduri, cunoscute sub numele de coduri de stare HTTP, sunt un mijloc prin care serverul comunică clientului starea solicitării făcute. Ele sunt parte integrantă a protocolului HTTP (HyperText Transfer Protocol) și servesc ca un limbaj universal prin care serverul informează clientul despre succesul sau eșecul unei cereri.
Codurile de răspuns sunt trimise de server în antetul unui răspuns HTTP și pot fi controlate și analizate folosind diverse instrumente și servicii online. Un exemplu de astfel de instrument este oferit de codex.md, care permite verificarea răspunsurilor serverului la adresa https://codex.md/verificarea-raspunsului-serverului/. Aceste coduri nu sunt doar simple numere; ele oferă informații cruciale despre starea resurselor solicitate, despre eventualele erori și despre acțiunile pe care clientul trebuie să le întreprindă pentru a obține rezultatul dorit.
Lista codurilor de răspuns ale serverului
Codurile de răspuns HTTP sunt împărțite în cinci clase principale, fiecare având un scop specific. Iată o prezentare detaliată a fiecărui cod și a semnificației sale:
1. Coduri 2xx — Succes
Aceste coduri indică faptul că cererea clientului a fost recepționată, înțeleasă și procesată cu succes.
- 200 — OK: Cererea a fost procesată cu succes, iar datele solicitate sunt returnate clientului.
- 201 — Created: Cererea a fost îndeplinită și a dus la crearea unui nou resurs pe server.
- 202 — Accepted: Cererea a fost acceptată pentru procesare, dar procesarea nu a fost finalizată. Clientul nu trebuie să aștepte finalizarea.
- 203 — Non-Authoritative Information: Similar cu 200, dar informația returnată nu provine direct de la sursa originală.
2. Coduri 3xx — Redirecționare
Aceste coduri indică faptul că clientul trebuie să efectueze o acțiune suplimentară pentru a finaliza cererea, de obicei o redirecționare către o altă adresă.
- 300 — Multiple Choices: Există mai multe opțiuni disponibile pentru resursa solicitată.
- 301 — Moved Permanently: Resursa solicitată a fost mutată permanent la o altă adresă.
- 302 — Found: Resursa solicitată este temporar disponibilă la o altă adresă.
- 303 — See Other: Răspunsul la cerere poate fi găsit la o altă adresă.
- 304 — Not Modified: Resursa nu a fost modificată de la ultima solicitare, iar clientul poate folosi versiunea stocată în cache.
- 305 — Use Proxy: Resursa solicitată este disponibilă doar prin intermediul unui proxy.
- 307 — Temporary Redirect: Resursa solicitată este temporar disponibilă la o altă adresă.
3. Coduri 4xx — Erori de client
Aceste coduri indică faptul că cererea clientului conține erori sau nu poate fi procesată din cauza unor probleme din partea clientului.
- 400 — Bad Request: Cererea nu poate fi înțeleasă de server din cauza unei erori de sintaxă.
- 401 — Unauthorized: Cererea necesită autentificarea clientului.
- 403 — Forbidden: Serverul a înțeles cererea, dar refuză să o execute din motive de securitate sau alte restricții.
- 404 — Not Found: Resursa solicitată nu a fost găsită pe server.
- 405 — Method Not Allowed: Metoda folosită în cerere nu este permisă pentru resursa respectivă.
- 406 — Not Acceptable: Resursa nu poate genera un răspuns conform parametrilor specificați în cerere.
- 407 — Proxy Authentication Required: Similar cu 401, dar autentificarea este necesară la nivelul proxy-ului.
- 408 — Request Timeout: Serverul a așteptat prea mult timp un răspuns de la client.
- 409 — Conflict: Cererea nu a putut fi procesată din cauza unui conflict cu starea curentă a resursei.
- 410 — Gone: Resursa solicitată nu mai este disponibilă pe server și nu există o adresă de redirecționare.
- 411 — Length Required: Serverul necesită ca cererea să conțină un câmp de lungime specificat.
- 412 — Precondition Failed: Una sau mai multe condiții specificate în cerere nu au fost îndeplinite.
- 413 — Request Entity Too Large: Cererea este prea mare pentru a fi procesată de server.
- 414 — Request-URI Too Long: Adresa URL specificată în cerere este prea lungă.
- 415 — Unsupported Media Type: Formatul datelor din cerere nu este acceptat de server.
4. Coduri 5xx — Erori de server
Aceste coduri indică faptul că serverul a întâmpinat o problemă în timpul procesării cererii.
- 500 — Internal Server Error: Serverul a întâmpinat o eroare internă și nu a putut procesa cererea.
- 501 — Not Implemented: Serverul nu suportă funcționalitatea necesară pentru a procesa cererea.
- 502 — Bad Gateway: Serverul, acționând ca un gateway sau proxy, a primit un răspuns invalid de la un server superior.
- 503 — Service Unavailable: Serverul este temporar indisponibil, de obicei din cauza întreținerii sau a unei suprasolicitări.
- 504 — Gateway Timeout: Serverul, acționând ca un gateway sau proxy, nu a primit un răspuns la timp de la un server superior.
- 505 — HTTP Version Not Supported: Serverul nu suportă versiunea protocolului HTTP folosită în cerere.
- 506 — Variant Also Negotiates: Serverul a detectat o buclă infinită în timpul negocierii resurselor.
- 507 — Insufficient Storage: Serverul nu are suficient spațiu de stocare pentru a procesa cererea.
- 508 — Loop Detected: Serverul a detectat o buclă infinită în timpul procesării cererii.
- 509 — Bandwidth Limit Exceeded: Limita de lățime de bandă a fost depășită.
- 510 — Not Extended: Cererea necesită extensii suplimentare care nu sunt suportate de server.
- 511 — Network Authentication Required: Este necesară autentificarea în rețea pentru a accesa resursa.
- 520 — Unknown Error: Serverul a întâmpinat o eroare necunoscută.
- 521 — Web Server Is Down: Serverul web nu funcționează.
- 522 — Connection Timed Out: Conexiunea la server a expirat.
- 523 — Origin Is Unreachable: Serverul de origine este inaccesibil.
- 524 — A Timeout Occurred: Timpul de așteptare pentru o conexiune a expirat.
- 525 — SSL Handshake Failed: Negocierea SSL între client și server a eșuat.
- 526 — Invalid SSL Certificate: Certificatul SSL folosit de server este invalid.
Concluzie
Codurile de răspuns ale serverului sunt un element fundamental în comunicarea dintre client și server. Ele nu doar că oferă informații despre starea cererilor, dar servesc și ca un mijloc de diagnosticare și rezolvare a problemelor care pot apărea în timpul navigării pe internet. Înțelegerea acestor coduri este esențială pentru dezvoltatorii web, administratorii de sistem și chiar pentru utilizatorii obișnuiți care doresc să înțeleagă mai bine cum funcționează internetul. Prin folosirea unor instrumente precum cele oferite de codex.md, putem analiza și interpreta aceste coduri pentru a ne asigura că interacțiunile noastre online sunt cât mai fluide și eficiente posibil.
Mulțumesc pentru articol! A fost foarte util să văd o listă completă a codurilor HTTP. Am observat că unele coduri, cum ar fi 402 (Payment Required), sunt marcate ca „nefolosite”. De ce sunt aceste coduri încă păstrate în standardul HTTP dacă nu sunt utilizate?
Bună Ana,
Mulțumesc pentru comentariul și întrebarea adresată! Codurile HTTP precum 402 sunt păstrate în standard pentru flexibilitate. Chiar dacă nu sunt folosite acum, ele pot fi utile în viitor. Standardele sunt făcute să acopere cazuri diverse, chiar dacă unele sunt rare.