Î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 Continue . Cod de răspuns HTTP în care serverul dă undă verde utilizatorului, permițându-i să continue în siguranță trimiterea unei cereri mari.
101 Comutarea protocoalelor . Serverul îi spune clientului că schimbă regulile jocului, de exemplu, trecând de la HTTP la HTTPS, care este mai sigur. În acest caz, antetul „Upgrade” este utilizat pentru schimbarea protocolului.
102 Procesare . Acest cod este ca un mesaj care anunță că serverul a acceptat cererea, dar este încă ocupat cu o operațiune complexă.
103 Sugestii timpurii . Aici, serverul trimite clientului mai multe anteturi indicative înainte de răspunsul principal, avertizând despre ceva ce ar putea 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ă o cerere prin metoda GET fără probleme și returnează datele solicitate ca răspuns. Antetul „Content-Type” raportează tipul de conținut din răspuns. Acesta informează clientul doar că cererea a avut succes.
201 Creat . Aici serverul anunță crearea unei noi resurse.
202 Acceptat . Serverul anunță utilizatorul că solicitarea a fost acceptată, dar va dura ceva timp până va răspunde.
203 Informații neoficiale . Acest cod oferă clientului date care pot să nu fie oficiale, dar pot fi utilizate pentru comparație.
204 Fără conținut . Serverul a procesat solicitarea, dar nu returnează niciun conținut suplimentar.
205 Resetare conținut . Aici, clientul este instruit să reseteze 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 „Content-Range” indică intervalul de conținut parțial.
207 Stare multiplă. Serverul a finalizat cu succes o solicitare multi-operațiune din partea clientului, iar răspunsul conține informații despre starea fiecăreia dintre operațiuni.
226 IM utilizat . Acest cod indică faptul că serverul a utilizat metoda de metadate incrementale (IM) și a răspuns prin transmiterea către client doar a părților de resurse modificate.
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 opțiuni multiple . Clientul primește un semnal că există mai multe locații posibile pentru resursă și i se oferă o opțiune ca răspuns. În circumstanțele actuale, antetul „Locație” poate indica opțiuni alternative pentru resursă.
301 Mutat definitiv. Serverul raportează utilizatorului că resursa a fost mutată definitiv într-o altă locație.
Cod HTTP 302 găsit . Acest cod HTTP este similar cu o redirecționare temporară. Serverul informează consumatorul că resursa este disponibilă temporar la o altă adresă URL. Antetul „Locație” indică noua adresă URL pentru redirecționarea temporară.
303 Vezi Altele . Clientului i se spune că resursa este disponibilă la o altă adresă URL și trebuie să facă o cerere GET către această nouă adresă.
304 Nemodificat . Această stare îi spune clientului că resursa a rămas neschimbată de la ultima solicitare și nu trebuie descărcată din nou. La efectuarea unei solicitări, antetul „If-Modified-Since” este utilizat pentru a verifica dacă resursa a fost modificată.
305 Utilizare proxy. Ca răspuns, serverul raportează că ar trebui să utilizeze proxy-ul specificat pentru a accesa resursa solicitată.
306 (rezervat) — Codul a fost rezervat, dar de fapt nu este utilizat.
Redirecționare temporară 307. Acest cod este similar cu codul 302 Found, dar impune clientului să rămână în metoda de solicitare utilizată în solicitarea inițială.
Redirecționare permanentă 308. Indică faptul că resursa a fost mutată permanent către un nou URI și că clientul ar trebui să utilizeze 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.
400 Cerere nevalidă . Serverul nu poate procesa cererea din cauza unor erori de sintaxă, a unor date nevalide sau a altor erori din partea clientului.
401 Neautorizat. Serverul nu poate procesa solicitarea din cauza unor erori de sintaxă, a unor date nevalide sau a altor erori din partea clientului.
Plată 402 necesară . Codul nu este activ în acest moment și este rezervat pentru utilizare ulterioară. Acesta poate indica necesitatea plății înainte de a accesa resursa în viitor.
Eroare HTTP 403 Interzisă. Clientul nu are suficiente drepturi pentru a accesa resursa solicitată.
404 Negăsit. Resursa solicitată nu există pe server. Aceasta este una dintre cele mai frecvente erori ale utilizatorilor.
Metodă 405 nepermisă . Serverul nu acceptă metoda de solicitare specificată în timpul acestei resurse. Antetul „Allow” indică metodele permise pentru resursă. Cu acest cod,
406 Neacceptabil. Serverul nu poate furniza date într-un format acceptabil de client.
407 Autentificare proxy necesară . Autentificarea pe serverul proxy este necesară pentru accesarea resursei solicitate.
408 Timeout cerere . Serverul aștepta să primească o cerere de la client, dar a expirat. Antetul „Retry-After” poate indica timpul după care cererea poate fi reluată.
Conflict 409. Cererea nu poate fi finalizată din cauza unui conflict cu starea curentă a resursei.
410 Dispărut . Resursa solicitată exista anterior, dar a fost ștearsă și nu se așteaptă restaurarea acesteia.
411 Lungime necesară . Serverul solicită specificarea lungimii conținutului în cerere; absența acestei informații este considerată o eroare.
412 Precondiție eșuată . O precondiție din cerere nu este îndeplinită, ceea ce împiedică execuția acesteia.
413 Sarcină utilă prea mare . Dimensiunea datelor solicitate depășește limitele serverului.
414 URI prea lung . Lungimea URI-ului din cerere depășește limitele acceptabile.
415 Tip media neacceptat . Serverul nu poate procesa tipul de date furnizat în solicitare.
416 Interval nesatisfăcător . Eroare HTTP în care intervalul solicitat nu corespunde datelor curente ale serverului.
417 Așteptare eșuată . Condiția așteptată din antetul „Expect” nu a fost îndeplinită.
418 Sunt un ceainic . Acest cod este inclus ca o glumă și nu implică nicio acțiune reală din partea utilizatorului sau a serverului și nu este o eroare în toată regula. Indică faptul că serverul este un ceainic și nu este capabil să facă cafea.
421 Cerere direcționată greșit . Serverul nu procesează cererea din cauza unei erori în cerere sau în 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ă . Cererea depinde de o altă cerere neexecutată.
425 Prea devreme. Serverul nu este pregătit să proceseze solicitarea din cauza sosirii sale timpurii.
426 Actualizare necesară . Serverul necesită utilizarea unui protocol mai avansat pentru a procesa solicitarea.
428 Precondiție necesară . Serverul necesită specificarea anumitor precondiții în cerere.
429 Prea multe cereri . Clientul a trimis prea multe cereri într-un timp scurt, depășind limitele serverului.
431 Câmpurile antetului cererii sunt prea mari . Anteturile cererii depășesc dimensiunea maximă permisă.
449 Reîncercare cu. Indică faptul că solicitarea nu poate fi executată de serverul curent, dar poate fi procesată cu succes de un alt server și că clientul ar trebui să reîncerce solicitarea cu un nou URI.
451 Indisponibil din motive legale . Resursa nu este disponibilă din motive legale.
499 Cerere închisă de client . Serverul a primit cererea, dar conexiunea a fost închisă de 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 internă a serverului . Serverul întâmpină circumstanțe neașteptate care îl împiedică să finalizeze solicitarea. Antetul „Server” poate indica serverul pe care a apărut eroarea.
501 Neimplementat . Serverul nu acceptă funcționalitatea necesară pentru procesarea solicitării clientului. Antetul „Via” poate indica serverul proxy prin care a apărut eroarea.
502 Gateway defect . Acest cod înseamnă că serverul care acționează ca proxy a primit un răspuns incorect de la un alt server.
Eroare HTTP 503 Serviciu indisponibil . Serverul nu poate procesa temporar cererile.
504 Gateway Timeout . Serverul, care acționează ca proxy, nu a primit un răspuns prompt de la un alt server.
505 Versiune HTTP neacceptată . Serverul nu acceptă versiunea protocolului HTTP specificată în solicitare. Ca opțiune de rezervă, antetul „Upgrade” poate indica protocoalele acceptate.
Varianta 506 negociază și ea . Această stare nu este utilizată în HTTP/1.1; cu toate acestea, dacă serverul detectează o configurație internă care are ca rezultat o ambiguitate în negocierea conținutului, poate utiliza acest răspuns.
507 Spațiu de stocare insuficient . Serverul nu poate îndeplini solicitarea din cauza spațiului de stocare insuficient pe server.
508 Buclă detectată . Serverul a detectat o buclă în timpul procesării cererii și refuză să finalizeze cererea pentru a evita o buclă infinită.
509 Limită de 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 Autentificare de rețea necesară . Clientul trebuie să se autentifice pentru a obține 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 verificarea codului 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.