În lumea dezvoltării web, codurile de eroare HTTP joacă un rol vital în afectarea experienței utilizatorului și a reputației unui site web. În acest articol, vom lua în considerare o listă completă a codurilor de eroare ale serverului, vom analiza semnificațiile acestora și vom învăța cum să interpretăm eficient codurile de răspuns ale serverului pentru a rezolva problemele și a optimiza performanța aplicațiilor web.
Ce este un cod de răspuns HTTP
Codul de răspuns HTTP este limba serverelor web care traduce solicitările browserului în instrucțiuni ușor de înțeles. Este ca un poet care răspunde la întrebări virtuale, dându-le sens și direcție. Codurile de răspuns nu sunt întotdeauna coduri de eroare HTTP. De exemplu, „200 OK” înseamnă că totul este OK, dar eroarea HTTP „404 Not Found” înseamnă că pagina este pierdută în spațiul virtual. Fiecare cod este o expresie unică a stării serverului, a cărei decodare ne permite să înțelegem ce se întâmplă în cealaltă parte a lumii virtuale.
coduri 1xx (informații)
Codurile de stare 1xx din protocolul HTTP sunt un fel de primă legătură în dialogul dintre server și client. În loc să ofere un răspuns complet la o solicitare, ele oferă informații despre starea actuală, făcând schimbul de date mai eficient. Să le aruncăm o privire mai atentă:
100 Continuați. Cod de răspuns HTTP în care serverul dă undă verde utilizatorului, permițându-i acestuia să continue în siguranță să trimită o solicitare mare.
101 Protocoale de comutare. Serverul îi spune clientului că schimbă regulile jocului, de exemplu, trecând de la HTTP la HTTPS mai sigur. În acest caz, antetul „Upgrade” este utilizat pentru modificarea protocolului.
102 Prelucrare. Acest cod este ca un mesaj că serverul a acceptat cererea, dar este încă ocupat cu o operațiune complexă.
103 Sfaturi timpurii. Aici serverul trimite mai multe anteturi indicative către client înainte de răspunsul principal, avertizând despre ceva ce poate fi relevant în viitorul apropiat.
cod 2xx (reușit)
Codurile de eroare HTTP din grupul 2xx indică o solicitare reușită de la server. Ele acționează în esență ca o „undă verde” în domeniul comunicațiilor web, confirmând că totul decurge conform planului și a fost finalizat cu succes.
200 OK. Această stare este utilizată atunci când serverul procesează fără probleme o solicitare prin metoda GET și returnează datele solicitate ca răspuns. Antetul „Content-Type” raportează tipul de conținut din răspuns. Acesta informează doar clientul că cererea a avut succes.
201 Creat. Aici serverul anunță crearea unei noi resurse.
202 Acceptat. Serverul informează utilizatorul că cererea a fost acceptată, dar va dura timp să răspundă.
203 Informații neautoritare. Acest cod oferă clientului date care pot să nu fie oficiale, dar care pot fi folosite pentru comparație.
204 Fără conținut. Serverul a procesat cererea, dar nu returnează niciun conținut suplimentar.
205 Resetare conținut. Aici clientul este instruit să resetați vizualizarea sau datele curente după trimitere.
206 Conținut parțial. Acest caz indică faptul că răspunsul conține doar o parte din conținutul solicitat. Antetul „Interval de conținut” indică intervalul de conținut parțial.
207 Multi-Stare. Serverul a finalizat cu succes o solicitare cu mai multe operații de la client, iar răspunsul conține informații despre starea fiecăreia dintre operațiuni.
226 IM Folosit. Acest cod indică faptul că serverul a folosit metoda de metadate incrementale (IM) și a răspuns prin transmiterea doar părților de resursă modificate către client.
coduri 3xx (redirecționări)
Codurile 3xx din protocolul HTTP sunt ca indicatori care ghidează utilizatorul către o nouă locație a resursei. Aceștia informează clientul că trebuie luate măsuri ulterioare pentru a obține conținutul solicitat sau pentru a fi redirecționat către o altă resursă. Să ne afundăm în detaliile fiecăruia dintre ele:
300 de alegeri multiple. Clientul primește un semnal că există mai multe locații posibile pentru resursă și i se oferă o alegere ca răspuns. În circumstanțele actuale, antetul „Locație” poate indica opțiuni alternative pentru resursă.
301 mutat permanent. Serverul raportează utilizatorului că resursa a fost mutată permanent într-o altă locație.
302 Determinat. Acest cod HTTP este similar cu o redirecționare temporară. Serverul informează consumatorul că resursa este disponibilă temporar la o adresă URL diferită. Antetul „Locație” indică noua adresă URL pentru redirecționarea temporară.
303 Vezi Altele. Clientului i se spune că resursa este disponibilă la o adresă URL diferită și trebuie să facă o solicitare GET la această nouă adresă.
304 nu a fost modificat. Această stare îi spune clientului că resursa a rămas neschimbată de la ultima solicitare și nu trebuie să fie descărcată din nou. La efectuarea unei cereri, antetul „If-Modified-Since” este folosit pentru a verifica dacă resursa a fost modificată.
305 Utilizați proxy. Ca răspuns, serverul raportează că ar trebui să folosească proxy-ul specificat pentru a accesa resursa solicitată.
306 (rezervat) — Codul a fost rezervat, dar de fapt nu este folosit.
307 Redirecție temporară. Acest cod este similar cu 302 Found, dar necesită ca clientul să rămână în metoda de solicitare care a fost folosită în cererea inițială.
308 Redirecționare permanentă. Indică faptul că resursa a făcut o mutare permanentă la un nou URI și clientul ar trebui să folosească noul URI pentru toate solicitările viitoare.
Eroare HTTP 4xx (erori ale clientului)
Codurile de eroare HTTP 4xx indică erori de client. Aceasta înseamnă că problema este de partea utilizatorului, cum ar fi browserul web sau aplicația.
Solicitare eronată 400. Serverul nu poate procesa cererea din cauza erorilor de sintaxă, a datelor nevalide sau a altor erori din partea clientului.
401 Neautorizat. Serverul nu poate procesa cererea din cauza erorilor de sintaxă, a datelor nevalide sau a altor erori din partea clientului.
402 Plata necesară. Codul nu este activ momentan și este rezervat pentru utilizare ulterioară. Poate indica necesitatea de a plăti înainte de a accesa resursa în viitor.
Eroare HTTP 403 Interzisă. Clientul nu are drepturi suficiente pentru a accesa resursa solicitată.
404 Nu a fost gasit. Resursa solicitată nu există pe server. Aceasta este una dintre cele mai frecvente erori ale utilizatorului.
Metoda 405 nu este permisă. Serverul nu acceptă metoda de solicitare specificată în timpul acestei resurse. Antetul „Permite” indică metodele permise pentru resursă. Cu acest cod,
406 Inacceptabil. Serverul nu poate furniza date într-un format care poate fi acceptat de client.
407 Este necesară autentificarea proxy. Este necesară autentificarea pe serverul proxy pentru a accesa resursa solicitată.
408 Termen de întrerupere al solicitării. Serverul aștepta să primească o solicitare de la client, dar a expirat. Antetul „Retry-After” poate indica timpul după care cererea poate fi reîncercată.
409 Conflict. Solicitarea nu poate fi finalizată din cauza unui conflict cu starea curentă a resursei.
410 a dispărut. Resursa solicitată a existat anterior, dar acum a fost ștearsă și nu se așteaptă restaurarea acesteia.
411 Lungime necesară. Serverul cere să specifice lungimea conținutului în cerere; absența acestor informații este considerată o eroare.
412 Precondiție a eșuat. O condiție prealabilă din cerere nu este îndeplinită, care împiedică executarea acesteia.
413 Sarcină utilă prea mare. Dimensiunea datelor solicitate depășește limitele serverului.
414 URI prea lung. Lungimea URI în cerere depășește limitele acceptabile.
415 Tip media neacceptat. Serverul nu poate procesa tipul de date furnizat în cerere.
416 Interval nesatisfăcător. Eroare HTTP în care intervalul solicitat nu se potrivește cu datele serverului curent.
417 Așteptarea eșuată. Condiția așteptată din antetul „Așteptați” nu a fost îndeplinită.
418 Sunt un ceainic. Acest cod este inclus ca o glumă și nu implică nicio acțiune reală pentru utilizator sau server și nu este o eroare cu drepturi depline. Indică faptul că serverul este un ceainic și nu este capabil să facă cafea.
421 Solicitare direcționată greșit. Serverul nu procesează cererea din cauza unei erori în cererea sau configurația serverului.
422 Entitate neprocesabilă. Serverul înțelege cererea, dar nu o procesează din cauza erorilor de date.
423 Blocat. Resursa este blocată și nu poate fi procesată.
424 Dependență eșuată. Solicitarea depinde de o altă solicitare neexecută.
425 Prea devreme. Serverul nu este pregătit să proceseze cererea din cauza venirii sale anticipate.
426 Actualizare necesară. Serverul necesită utilizarea unui protocol mai avansat pentru a procesa cererea.
428 Precondiție necesară. Serverul necesită anumite precondiții să fie specificate în cerere.
429 Prea multe cereri. Clientul a trimis prea multe cereri într-un timp scurt, depășind limitele serverului.
431 Câmpurile antet cererii sunt prea mari. Antetele cererii depășesc dimensiunea maximă permisă.
449 Reîncercați cu. Indică faptul că cererea nu poate fi rulată de serverul curent, dar poate fi procesată cu succes de un alt server, iar clientul ar trebui să încerce din nou cererea cu un nou URI.
451 Indisponibil din motive legale. Resursa este indisponibilă din motive legale.
499 Solicitare client închisă. Serverul a primit cererea, dar conexiunea a fost închisă de către client înainte de finalizarea procesării.
Eroare HTTP 5xx (erori de server)
Codurile de eroare HTTP 5xx indică problemele serverului. Aceste coduri indică probleme care au apărut pe partea serverului, făcând serverul incapabil să proceseze cererea utilizatorului într-un mod corect. Să le aruncăm o privire mai atentă:
Eroare HTTP 500 Eroare interna a serverului. Serverul se confruntă cu circumstanțe neașteptate care îl împiedică să finalizeze cererea. Antetul „Server” poate indica serverul pe care a apărut eroarea.
501 Neimplementat. Serverul nu acceptă funcționalitatea necesară procesării cererii clientului. Antetul „Via” poate indica serverul proxy prin care a apărut eroarea.
502 Bad Gateway. Acest cod înseamnă că serverul care acționează ca proxy a primit un răspuns incorect de la un alt server.
HTTP Eroare 503 Serviciul este indisponibil. Serverul nu poate procesa temporar solicitările.
504 Gateway Timeout. Serverul, care acționează ca proxy, nu a primit un răspuns în timp util de la un alt server.
Versiunea HTTP 505 nu este acceptată. Serverul nu acceptă versiunea protocolului HTTP specificată în cerere. Ca opțiune de rezervă, antetul „Actualizare” poate indica protocoalele acceptate.
506 Varianta De asemenea Negociază. Această stare nu este utilizată în HTTP/1.1; totuși, dacă serverul detectează o configurație internă care are ca rezultat o ambiguitate în negocierea conținutului, poate folosi acest răspuns.
507 Depozitare insuficientă. Serverul nu poate îndeplini cererea din cauza spațiului de stocare insuficient pe server.
508 Bucla detectată. Serverul a detectat o buclă în timpul procesării cererii și refuză să completeze cererea pentru a evita o buclă infinită.
509 Limită lățime de bandă depășită. Eroarea apare atunci când lățimea de bandă a serverului este depășită din cauza volumului mare de solicitări sau trafic.
510 Neextins. Clientul trebuie să transfere extensii suplimentare pentru a continua solicitarea.
511 Este necesară autentificarea în rețea. Clientul trebuie să se autentifice pentru a avea acces la rețea.
Cum se verifică codul de stare a paginii
În această secțiune, vom lua în considerare trei modalități principale de a verifica codul de stare a paginii: prin linia de comandă, folosind un browser web și folosind servicii online independente. Fiecare dintre aceste metode are propriile sale avantaje și poate fi utilă în diferite situații.
Verificarea răspunsului serverului prin linia de comandă
Linia de comandă oferă o modalitate convenabilă de a verifica codul de stare a paginii fără a fi nevoie să utilizați un browser web. Pentru această metodă, trebuie să deschideți linia de comandă și să utilizați comanda:
curl -I http://page-address
Această comandă trimite o solicitare HEAD (solicitare numai antete) la adresa URL specificată și afișează informații, inclusiv codul de stare HTTP:
Exemplul de mai sus arată un cod de răspuns de succes. În cazul unui răspuns care conține un cod de eroare, cum ar fi eroarea HTTP 404 Not Found, rezultatul va arăta similar:
Verificarea răspunsului serverului prin consola browserului
Consola pentru dezvoltatori a browserului web oferă instrumente pentru efectuarea diferitelor operațiuni, inclusiv verificarea codului de stare a paginii. Pentru a vedea codul HTTP în răspunsul serverului, trebuie să deschideți consola pentru dezvoltatori (Ctrl+Shift+K) sau (Ctrl+shift+J), în funcție de browserul utilizat. Apoi, selectați secțiunea „rețea” și încărcați pagina dorită:
Verificarea răspunsului serverului folosind instrumente independente
Există un număr mare de servicii online independente care oferă instrumente pentru a verifica codul de stare a paginii site-ului web. Aceste servicii vă permit de obicei să primiți rapid o imagine de ansamblu asupra disponibilității și performanței resursei dvs. Toate funcționează folosind același principiu. Ca exemplu, vom lua în considerare cea mai populară resursă - httpsstatus.io
În primul rând, trebuie să deschideți serviciul în sine, apoi să introduceți adresa paginii care răspuns trebuie să aflați și să solicitați verificarea:
Rezultatul va fi afișat în partea de jos a paginii:
Concluzie
În concluzie, trebuie subliniat faptul că înțelegerea și capacitatea de a citi codurile de eroare HTTP este o abilitate cheie pentru oricine este implicat în dezvoltarea web și întreținerea serverului. Pe măsură ce descoperim fiecare eroare și explorăm instrumentele pentru a le detecta, vedem motivele pentru care este atât de important să gestionăm eficient aceste aspecte ale serviciilor web.