gabriel webb blog

Ce sunt codurile de eroare HTTP?

Introducere

Când accesați un server web sau o aplicație, la fiecare solicitare HTTP primită de un server se răspunde cu un cod de stare HTTP. Codurile de stare HTTP sunt coduri din trei cifre și sunt grupate în cinci clase diferite. Clasa unui cod de stare poate fi identificată rapid prin prima sa cifră:

1xx: Informativ

2xx: Succes

3xx: Redirecționare

4xx: Eroare client

5xx: Eroare de server

Acest ghid se concentrează pe identificarea și depanarea celor mai des întâlnite coduri de eroare HTTP, adică coduri de stare 4xx și 5xx, din perspectiva administratorului de sistem sau administratorului de site web/cont cPanel. Există multe situații care ar putea determina un server web să răspundă la o solicitare cu un anumit cod de eroare – vom acoperi cauzele și soluțiile potențiale comune.

Prezentare generală a erorilor client și server

Erorile clientului sau codurile de stare HTTP de la 400 la 499 sunt rezultatul solicitărilor HTTP trimise de un client utilizator (adică un browser web sau alt client HTTP). Chiar dacă aceste tipuri de erori sunt legate de client, este adesea util să știți ce cod de eroare întâmpină un utilizator pentru a determina dacă problema potențială poate fi rezolvată prin configurarea serverului.

Erorile de server sau codurile de stare HTTP de la 500 la 599 sunt returnate de un server web atunci când este conștient de faptul că a apărut o eroare sau altfel nu poate procesa solicitarea.

Sfaturi generale de depanare

Când utilizați un browser web pentru a testa un server web, reîmprospătați browserul după ce ați făcut modificări de server
Verificați jurnalele(logurile) serverului pentru mai multe detalii despre modul în care serverul gestionează solicitările. De exemplu, serverele web precum Apache sau Nginx produc două fișiere numite access.log și error.log care pot fi scanate pentru informații relevante
Rețineți că definițiile codului de stare HTTP fac parte dintr-un standard care este implementat de aplicația care furnizează cereri. Acest lucru înseamnă că codul de stare real care este returnat depinde de modul în care serverul gestionează o anumită eroare – acest ghid ar trebui să vă indice în general în direcția corectă.

Acum, că aveți o înțelegere la nivel înalt a codurilor de stare HTTP, vom analiza erorile întâlnite frecvent.

400 Cerere greșită

Codul de stare 400 sau eroare de solicitare greșită înseamnă că solicitarea HTTP care a fost trimisă la server are o sintaxă nevalidă.

Iată câteva exemple de moment în care ar putea apărea o eroare de 400 de solicitări greșite:

Cookie-ul utilizatorului asociat site-ului este corupt. Ștergerea memoriei cache și a cookie-urilor browserului ar putea rezolva această problemă
Solicitare greșită din cauza unui browser defect
Solicitare incorectă din cauza unei erori umane la formarea manuală a cererilor HTTP (de exemplu, folosirea incorectă a curlului).

401 Neautorizat

Codul de stare 401 sau o eroare neautorizată înseamnă că utilizatorul care încearcă să acceseze resursa nu a fost autentificat. Aceasta înseamnă că utilizatorul trebuie să furnizeze acreditări pentru a putea vizualiza resursa protejată.

Un exemplu de scenariu în care ar fi returnată o eroare neautorizată 401 este dacă un utilizator încearcă să acceseze o resursă protejată prin autentificare HTTP. În acest caz, utilizatorul va primi un cod de răspuns 401 până când furnizează un nume de utilizator și o parolă valide (una care există în fișierul .htpasswd) către serverul web.

403 Interzis

Codul de stare 403, sau o eroare interzisă, înseamnă că utilizatorul a făcut o cerere validă, dar serverul refuză să furnizeze cererea, din cauza lipsei permisiunii de a accesa resursa solicitată. Dacă întâmpinați o eroare 403 în mod neașteptat, există câteva cauze tipice care sunt explicate aici.

Permisiuni de fișiere

Erorile 403 apar de obicei atunci când utilizatorul care rulează procesul de server web nu are permisiuni suficiente pentru a citi fișierul care este accesat.

Pentru a da un exemplu de depanare a unei erori 403, presupuneți următoarea situație:

Utilizatorul încearcă să acceseze fișierul index al serverului web, de la http://exemplu.ro/index.html
Directorul de lucru al serverului web nu este deținut de utilizatorul corect
Pe server, fișierul index se află la /home/clientuser/public_html/index.html

Dacă utilizatorul primește o eroare interzisă 403, asigurați-vă că utilizatorul are suficiente permisiuni pentru a citi fișierul. De obicei, aceasta înseamnă că celelalte permisiuni ale fișierului ar trebui să fie setate pentru citire. Există mai multe modalități de a asigura acest lucru, folosind un client FTP sau managerul de fișiere cPanel.

.htaccess

O altă cauză potențială a erorilor 403, adesea intenționată, este utilizarea unui fișier .htaccess. Fișierul .htaccess poate fi utilizat pentru a refuza accesul anumitor resurse la anumite adrese IP sau intervale, de exemplu.

Dacă utilizatorul primește în mod neașteptat o eroare interzisă 403, asigurați-vă că nu este cauzată de setările dvs. .htaccess.

Fișierul index nu există

Dacă utilizatorul încearcă să acceseze un director care nu are un fișier index implicit și listările de directoare nu sunt activate, serverul web va returna o eroare 403 Interzis. De exemplu, dacă utilizatorul încearcă să acceseze http://exemplu.ro/directorgol/ și nu există un fișier index în directorul directorgol de pe server, poate fi returnată o stare 403.

Dacă doriți ca listele de directoare să fie activate, puteți face acest lucru în configurația serverului dvs. web.

404 Nu a fost gasit

Codul de stare 404, sau o eroare Not Found, înseamnă că utilizatorul poate comunica cu serverul, dar nu poate localiza fișierul sau resursa solicitată.

Erorile 404 pot apărea într-o mare varietate de situații. Dacă utilizatorul primește în mod neașteptat o eroare 404 Not Found, iată câteva întrebări de pus în timp ce depanați:

Link-ul care a direcționat utilizatorul către resursa serverului dvs. are o eroare tipografică?
A introdus utilizatorul o adresă URL greșită?
Fișierul există în locația corectă de pe server? Resursa a fost mutată sau ștearsă pe server?
Configurația serverului/siteului are locația corectă a rădăcinii documentului?
Utilizatorul care deține procesul de lucru al serverului web are privilegii de a trece la directorul în care se află fișierul solicitat? (Sugestie: directoarele necesită permisiuni de citire și executare pentru a fi accesate)
Este accesată resursa o legătură simbolică? Dacă da, asigurați-vă că serverul web este configurat pentru a urma legături simbolice

500 Eroare internă a server-ului

Codul de stare 500 sau Eroare internă a serverului înseamnă că serverul nu poate procesa cererea dintr-un motiv necunoscut.

Această cauză cea mai frecventă a acestei erori este configurarea greșită a serverului (de exemplu, un fișier .htaccess malformat) sau pachetele lipsă (de exemplu, încercarea de a executa un fișier PHP fără PHP instalat corect).

502 Bad Gateway

Codul de stare 502 sau eroarea Bad Gateway înseamnă că serverul este un server gateway sau proxy și nu primește un răspuns valid de la serverele backend care ar trebui să îndeplinească cererea.

Dacă serverul în cauză este un server proxy invers(reverse proxy), cum ar fi un echilibru de încărcare, iată câteva lucruri de verificat:

Serverele backend (la care sunt redirecționate solicitările HTTP) sunt în regulă
Proxy-ul invers este configurat corect, cu backend-urile corespunzătoare specificate
Conexiunea de rețea dintre serverele backend, serverul proxy invers, serverele DNS(resolverele/nameserverele) și client sunt în regulă.
Dacă aplicația dvs. web este configurată corespunzator și că are permisiunile corespunzătoare.

503 Serviciu Indisponibil

Codul de stare 503 sau eroarea Service Unavailable înseamnă că serverul este supraîncărcat sau este în întreținere. Această eroare implică faptul că serviciul ar trebui să devină disponibil la un moment dat.

Dacă serverul nu este în întreținere, acest lucru poate indica faptul că, contul cPanel nu are suficiente resurse de procesor sau memorie pentru a gestiona toate solicitările primite sau că serverul web trebuie configurat pentru a permite mai mulți utilizatori sau procese.

504 Gateway Timeout

Codul de stare 504 sau eroarea Gateway Timeout înseamnă că serverul este un server gateway sau proxy și nu primește un răspuns de la serverele backend în perioada de timp permisă.

Acest lucru apare de obicei în următoarele situații:

Conexiunea la rețea dintre client si servere este slabă
Serverul backend care îndeplinește cererea este prea lent, din cauza răspunsului întarziat din partea solicitantului
Durata de expirare a gateway-ului sau a serverului proxy este prea scurtă

Leave a comment