La accesarea unui server web sau a unei aplicatii web, toate request-urile de tip HTTP primite de server vor returna un HTTP status code. HTTP status codes sunt coduri formate din trei cifre, acestea fiind grupate in cinci clase diferite. Clasa din care face parte status code-ul oferit pot fi identificate cu usurinta dupa prima cifra:
1xx: Informational
2xx: Succes
3xx: Redirectare
4xx: Eroare client (client = browser)
5xx: Eroare server
In acest articol ne concentram pe identificarea si solutionarea celor mai des intalnite coduri de eroare HTTP, precum ar fi status code-urile 5xx sau 4xx. Sunt multe situatii in care serverul web poate returna un anume cod de eroare pentru un anume request trimis spre server.
Vrei sa beneficiezi de suportul unei echipe tehnice cu experienta?
Suna la 0364 431 299
Erorile generate de clientul folosit sau HTTP status codes de la 400 la 499, sunt rezultate in urma unui request HTTP trimis de un client folosit de utilizator (precum ar fi browser-ul web sau un client pentru HTTP). Chiar daca acest tip de erori sunt generate pe partea de utilizator, este important ca utilizatorul sa cunoasca motivul pentru care a fost returnat acest HTTP status code, pentru a putea fi solutionata situatia intampinata.
Erorile generate de server sau HTTP status code de la 500 la 599, sunt returnate de serverul web folosit cand a aparut o eroare sau cand nu poate procesa request-ul solicitat.
Sfaturi generale pentru solutionarea situatiilor aparute
- Cand este utilizat un browser web pentru a testa site-ul de pe serverul web, efectuati un refresh asupra request-urilor (in browser) mai ales in urma unor modificari efectuate asupra site-ului.
- Verificati log-urile serverului pentru mai multe detalii despre modul in care serverul gestioneaza solicitarile efectuate. De exemplu, serverul web LiteSpeed genereaza un fisier error_log in care pot fi verificate informatii relevate. Fisierul error_log se genereaza de regula in locatia unde a fost efectuat request-ul (ex. daca este accesata pagina principala a site-ului, atunci error_log se va genera in folder-ul root al site-ului, de regula /public_html/). Mai pot fi verificate si log-urile de acces din cPanel – Raw Access.
- Trebuie retinut ca definitiile HTTP status code fac parte dintr-un standard care este implementat de serverul web, acesta fiind cel care furnizeaza solicitarile efectuate. Acest lucru poate insemna ca status code-ul returnat depinde si de modul in care software-ul serverului web gestioneaza o anumita eroare. Pot exista diferenta de expirare sau afisare a codului de eroare in functie de ce server web este folosit (Apache, LiteSpeed, Nginix, etc.), dar codul de eroare este acelasi si poate fi solutionat in aceasi modalitate.
Acum ca am explicat ce sunt status code-urile si cum putem identifica de unde apar aceste erori la nivelul codului de status HTTP vom prezenta cele mai des intalnite status code-uri.
400 Bad Request
Status code-ul 400, sau eroare de tip Bad Request, inseamna ca solicitarea HTTP care a fost trimisa serverului are o sintaxa gresita.
Mai jos vom prezente cateva exemple care pot duce la aparitia unui status code 400 Bad Request:
- Cookie-urile utilizatorului asociate cu site-ul accesat sunt corupte. Stergerea cache-ului si a cookie-urilor de la nivelul browser-ului ar putea rezolva aceasta situatie.
- Utlizarea unui browser defect, care ulterior efectueza o solicitare defectuoasa asupra site-ului.
- Solicitare defectuasa din cauza unei erori umane la formarea manuala a cererilor HTTP (link-uri, etc.).
401 Unauthorized
Codul de status 401 sau eroare de tip Unauthorized inseamna ca utilizatorul care incearca sa acceseze o resursa de pe server scurizata (username si parola) si nu s-a efectuat autentificarea sau nu a fost efectuata autentificarea corect. Asta inseamna ca utilizatorul trebuie sa introduca o serie de credentiale pentru a putea vizualiza informatiile securizate.
Un exmeplu de astfel de scenariu in care apare eroarea de tip 401 Unautorized ar fi returnata, este atunci cand un utilizator incearca sa acceseze informatii dintr-un site securizat prin autentificare cu utilizator si parola pe HTTP. Astfel in momentul respectiv utilizatorul va primi un cod de raspuns 401 pana cand se vor insera datele de autentificare corecte, acestea fiind declarate in fisierul .htpasswd. Pentru a identifica cum se pot securizat cu utilizator si parola request-urile HTTP se poate verifica regula necesara de .htaccess din urmatorul tutorial (AICI).
403 Forbidden
Status code-ul 403, sau eroarea Forbidden, apare in momentul in care utilizatorul a facut un request HTTP, dar serverul refuza sa afiseze continutul din cauza lipsei de permisii de acces pentru resursa accesata. Daca intampinati eroare 403 in mod neasteptat, exista cateva cauze tipice care vor fi explicate mai jos.
Erorile de tip 403 sunt intampinate des atunci cand utilizatorul solicita un request HTTP la nivelul site-ului, dar nu are suficiente permisii de a citi fisierele accesate. In acest scenariu trebuie sa va asigurati ca toate fisierele/folderele avute in compozitia site-ului construit au permisiile de citirere setate corect (de regula pe fisiere sunt necesare permisii 0644, iar pe foldere 0755).
O alta situatie in care poate aparea eroarea 403, desi uneori poate fi intentionat, este prin utilizarea fisierului de configurare .htacess. Fisierulul de configurare poate fi folosit pentru a respinge accesul la anumite resurse prin blocarea unei clase de IP-uri sau in cazul CMS-ului WordPress daca fisierul .htaccess nu are regulile de rewrite declarate corect. Astfel trebuie sa va asigurati ca fisierul .htaccess este configurat corect.
Mai exista si situatia in care se incearca accesarea unui folder specific din site, iar aici nu exista un fisier index default si la nivelul folder-ului optiunea de directory listing nu este activata, serverul web va returna eroare 403 Forbidden. De exemplu, daca un utilizator acceseaza http://exemplu.ro/foldergol/, si in folder-ul – /foldergol/ nu exista un index, statusul accesari va fi 403.
404 NOT FOUND
Status code-ul 404, sau eroarea Not Found, apare in momentul in care utilizatorul poate comunica cu serverul web, dar nu poate localiza fisierul sau resursa solicitata.
Eroare furnizata de status code-ul 404 (Not Found), poate aparea in mai multe situatii. Daca utilizatorul primeste acesta eroarea, avem mai jos o serie de intrebari care ne pot ajuta la solutionarea situatie:
- Link-ul care a redirectat utilizatorul spre server are o eroare tipografica?
- Utilizator a notat gresit URL-ul?
- Fisierul accesat exista in locatia corecta pe server? Nu a fost mutat sau sters fisierul respectiv de pe server?
- Continutul site-ului este urcat in folder-ul root al acestuia?
- La nivelul fisierelor si a folderelor sunt setate corect permisiile de citire?
500 Internal Server Error
Status code-ul 500, sau eroare Internal Server Error, inseamna ca serverul nu poate procesa request-ul efectuat dintr-un motiv necunoscut. Cea mai des intalnita situatie in care apare eroarea respectiva este atunci cand sunt erori la nivelul codului PHP, fisierul .htaccess este configurat gresit sau lipsesc librarii de PHP care asigura buna functionare a site-ului.
Cele mai multe informatii cu privire la status code-ul 500 Internal Server Error pot fi identificate, cel putin pe serverele oferit de SkaleWeb Hosting, in fisierul error_log. Astfel in momentul in care se primeste eroare 500 recomandat este verificarea log-urilor de erori si aici poate fi identificat cu usurinta de unde anume apare eroare mentionata.
503 Service Unavailable
Status code-ul 503, sau eroarea Service Unavailable, poate aparea in momentul in care toate resursele de procesare (CPU, RAM, EP, etc.) avute la nivelul contului au atins limita impusa. SkaleWeb folosind CloudLinux poate limita resursele de procesare la fiecare cont de cPanel in parte, astfel incat doar contul care foloseste mai multe resurse de procesare sa fie afectat de aceata eroare, fara a afecta alti utilizatori de pe server.
In concluzie acum ca aveti mai multe cunostinte cu privire la cele mai comune coduri de eroare HTTP si se cunosc si solutiile pentru aceste erori, ar trebui sa aveti o baza buna pentru rezolvarea acestor situatii care pot aparea.