Da li ste se ikada zapitali šta se događa “iza kulisa” kada pokušavate da posetite bilo koju stranicu na internetu? Zahvaljujući HTTP protokolu koji komunicira između servera i klijenta u mogućnosti ste da uspešno (ili neuspešno) posetite stranicu koju želite, a sve u zavisnosti od odgovora koji server pošalje nazad. Zvuči komplikovano? Pokušaćemo da objasnimo u nastavku.
Šta je HTTP protokol?
HTTP protokol (Hypertext Transfer Protocol) je najčešći metod prenosa informacija na internetu čija je glavna namena isporučivanje HTML dokumenata, odnosno veb stranica. Ovaj protokol komunicira na relaciji server – klijent i funkcioniše po principu zahtev/odgovor. Kako to funkcioniše u praksi? Uzmimo kao primer da želite da posetite naš sajt. Kada ukucate www.mint.rs, vaš veb pregledač šalje zahtev serveru da “pronađe” stranicu koja odgovara URL-u koji ste uneli i “vrati” vam je nazad u vidu trocifrenog statusnog koda koji objašnjava način na koji je zahtev rešen. Ukoliko nije bilo nikakvih problema sa zahtevom vama će se kao krajnjem korisniku pojaviti početna stranica našeg sajta.
Koje vrste HTTP status kodova postoje?
HTTP status kodovi se mogu podeliti u pet kategorija, pri čemu prva cifra označava kategoriju samog odgovora dok preostale dve cifre ukazuju na konkretan status:
- 1xx status kodovi koji služe u informativne svrhe,
- 2xx status kodovi koji ukazuju da je zahtev uspešno obrađen,
- 3xx status kodovi se odnose na informacije o preusmeravanju,
4xx status kodovi ukazuju da je došlo do greške na strani klijenta,
- 5xx status kodovi ukazaju da je došlo do greške na strani servera.
U ovom tekstu ćemo predstaviti listu 4xx statusnih kodova, šta oni pojedinačno znače, zašto se pojavljuju i da li postoji način da se greške na koje ukazuju isprave.
Šta je 4xx error?
4xx HTTP kod se pojavljuje kada postoji greška u zahtevu koji je server primio od klijenta. Ova greška se uglavnom javlja kada veb stranica ne postoji, ima ograničen pristup ili prava i najčešće se pojavljuje usled pogrešnog unosa URL adrese. Kao rezultat toga, stranica se ne može pronaći ili se stranici ne može pristupiti. Svakako najpoznatija 4xx greška je 404 – Not found.
Lista 4xx statusnih kodova
U nastavku se nalazi lista 4xx HTTP kodova:
- 400 Bad Request
- 401 Unauthorized
- 402 Payment Required
- 403 Forbidden
- 404 Not Found
- 405 Method Not Allowed
- 406 Not Acceptable
- 407 Proxy Authentication Required
- 408 Request Timeout
- 409 Conflict
- 410 Gone
- 411 Length Required
- 412 Precondition Failed
- 413 Payload Too Large
- 414 URI Too Long
- 415 Unsupported Media Type
- 416 Range Not Satisfiable
- 417 Expectation Failed
- 418 I’m a Teapot
- 421 Misdirected Request
- 422 Unprocessable Entity
- 423 Locked
- 424 Failed Dependency
- 425 Too Early
- 426 Upgrade Required
- 428 Precondition Required
- 429 Too Many Requests
- 451 Unavailable For Legal Reasons
400 Bad Request
400 Bad Request (srb. Loš zahtev) statusni kod javlja se onda kada je zahtev poslat serveru netačan ili oštećen i server ga kao takvog nije razumeo te kao odgovor vratio ovaj statusni kod.
Neki od uzroka ove HTTP greške mogu biti:
- Pogrešna sintaksa – uneta URL adresa može greškom sadržati nevažeće karaktere.
- Veličina fajla – veb-sajtovi imaju svoj limit za podizanje fajlova. Pokušaj otpremanja fajlova koji prevazilaze ovaj limit mogu biti okarakterisani kao loš zahtev i rezultitati HTTP 400 greškom.
- Problem sa kolačićima i kešom (eng. cookies i cashe) – kolačići koji su istekli ili oštećeni keš pretraživača mogu da ometaju zahtev ka serveru i izazovu grešku.
- DNS keširanje (eng. DNS cache) – 400 Bad Request može da se desi kada DNS podaci koji se čuvaju lokalno nisu sinhronizovani sa važećim DNS informacijama.
401 Unauthorized
Kod 401 Unauthorized (srb. Neautorizovan) javlja se kao odgovor servera onda kada korisnik pokušava da pristupi stranici koja zahteva autentifikaciju. Jednostavan primer je korisnik koji pokušava da pristupi određenoj veb stranici, ali unosi pogrešno korisničko ime ili lozinku.
402 Payment Required
Statusni kod 402 Payment Required (srb. Plaćanje obavezno) je odgovor rezervisan za buduću upotrebu. Prvobitno je kreiran za implementaciju u sisteme digitalnog plaćanja, međutim, retko se koristi. Google Developers API koristi ovaj statusni kod kada programer premaši dnevni limit u zahtevima, dok Shopify koristi kod 402 onda kada prodavnica nije platila svoje naknade i privremeno je onemogućena.
403 Forbidden
403 Forbidden (srb. Zabranjeno) HTTP kod ukazuje da je zahtev klijenta odbijen od strane servera jer klijent nema prava pristupa sadržaju. Za razliku od statusnog koda 402 Unauthorized, ovde je identitet klijenta poznat serveru, ali pošto klijent nije ovlašćen da pristupi ili pregleda sadržaj – server odbija zahtev.
404 Not Found
Svakako “najpoznatiji” statusni kod jeste 404 Not Found (srb. Nije pronađeno). Ova greška prikazuje se kada traženi resurs, a uglavnom je to stranica na sajtu, više nije dostupan na serveru. Razlog za nedostupnost može biti taj što je stranica obrisana, uklonjena iz javnog prikaza ili je promenjen njen URL bez podešavanja 301 preusmerenja.
Pročitajte više: Šta je URL redirekcija, čemu služi i zašto je važna?
405 Method Not Allowed
405 Method Not Allowed (srb. Metoda nije dozvoljena) statusni kod označava da server prepoznaje metod zahteva koji se šalje od strane klijenta, ali resurs koji se zahteva ne podržava ovaj metod.
406 Not Acceptable
Kod HTTP statusnog koda 406 Not Acceptable (srb. Nije prihvatljivo), traženi resurs postoji, ali u formatu koji server ne podržava. U praksi se ova statusna greška retko pojavljuje.
407 Proxy Authentication Required
Statusni kod 407 Proxy Authentification Required (srb. Potrebna indentifikacija proksija) znači da klijent prvo mora biti autentifikovan od strane proksija (slično kao kod koda 401).
408 Request Timeout
Ukoliko server ne primi zahtev od klijenta u odgovarajućem roku, server će odgovoriti statusnim kodom 408 Request timeout (srb. Zahtev istekao).
409 Conflict
409 Conflict (srb. Konflikt) greška se pojavljuje kada je zahtev koji je primio server u sukobu sa drugim zahtevom ili samom konfigurcijom servera.
410 Gone
Kada se traženi resurs trajno izbriše sa servera, dobija se kod 410 – Gone (srb. Nestao) Razlika između 404 i 410 statusnog koda je u tome što se stranice sa kodom 404 i dalje mogu tražiti više puta, dok to nije slučaj sa stranicama sa kodom 410. Pretraživači će ukloniti ove stranice iz indeksa, dok će stranice sa kodom 404 biti ponovo posećene od strane crawlera.
411 Length Required
Kada klijent pošalje zahtev bez navođenja obavezne dužine sadržaja, server odbija zahtev i šalje grešku 411 – Length Required (srb. Potrebna dužina). Zaglavlje zahteva (eng. Content-Length header) treba da se ispravi i ponovo pošalje zahtev serveru da bi se dobio tačan odgovor.
412 Precondition Failed
Ako server naiđe na neslaganje neophodnih preduslova tokom obrade zaglavlja zahteva onda vraća grešku 412 Precondition Failed (srb. Neuspeli preduslov).
413 Payload Too Large
HTTP statusni kod 413 – Payload Too Large (srb. Zahtevani entitet prevelik) se prima kada server odbije zahtev iz razloga što je primljeni zahtev predugačak da bi bio uspešno obrađen od strane servera.
414 URI Too Long
414 URI Too Long (srb. Traženi URI predugačak) je greška koja se pojavlje kada server odbije zahtev jer je URL zahtevanog resursa predugačak za obradu.
415 Unsupported Media Type
Kada zahtev od strane klijenta sadrži tip multimedije koji server ne podržava, server će odbiti zahtev i kao rezultat poslati statusni kod 415 Unsupported Media Type (srb. Nepodržan tip medija). Na primer, ova greška će se pojaviti kada klijent u svom zahtevu pokuša da pošalje prilog sa tipom datoteke koji server ne podržava.
416 Range Not Satisfiable
HTTP kod 416 Range Not Satisfable (srb. Traženi opseg nije zadovoljen) znači da opseg naveden u zaglavlju zahteva ne može biti ispunjen.
417 Expectation Failed
Kada se polje Expect u zaglavlju zahteva ne poklapa sa očekivanjima servera dobija se kod 417 Expectation Faild (srb. Neuspelo očekivanje).
418 I’m a Teapot
Ovaj statusni kod je deo HyperText Coffee Pot Control Protocol-a kreiranog kao prvoaprilska šala 1998. godine. Označava da server odbija da skuva kafu jer je u pitanju čajnik. 🙂 Neki serveri vraćaju ovaj kod onda kada ne žele da obrađuju zahtev.
421 Misdirected Request
Statusni kod 421 Misdirected Request znači da je zahtev klijenta bio usmeren na server koji nije konfigurisan da proizvede odgovor.
422 Unprocessable Entity
422 Unprocessable Entity (srb. Neobradivi entitet) statusni kod znači da je zahtev bio dobro formiran, ali server nije mogao da ga prati zbog semantičkih grešaka.
423 Locked
Kada je traženi resurs zaključan od strane drugog zahteva, server odbija zahtev i šalje kod 423 – Locked (srb. Zaključan) u odgovoru.
424 Failed Dependency
Statusni kod 424 Failed Dependency (srb. Neuspešna zavisnost) znači da zahtev nije uspeo zbog neuspeha prethodnog zahteva.
425 Too Early
Statusni kod 425 Too Early (srb. Prerano) znači da server nije voljan da rizikuje da obradi zahtev koji bi mogao da se reprodukuje.
426 Upgrade Required
Kada server zahteva nadogradnju konekcije koju klijent ne podržava, dobija se statusni kod 426 Upgrade Required (srb. Potrebna nadogradnja).
428 Precondition Required
Statusni kod 428 Precondition Required (seb. Obavezan preduslov) ukazuje da zahtev mora biti uslovljen. Cilj ovog statusnog koda je da spreči probleme prilikom ažuriranja koji mogu da se pojave onda kada treća strana unese promene na nivou servera koji mogu dovesti do sukoba.
429 Too Many Requests
HTTP kod 429 Too Many Requests (srb. Previše zahteva) ukazuje da je klijent poslao previše zahteva koje server ne može da obradi u određeno vreme.
451 Unavailable For Legal Reasons
451 Unavailable For Legal Reasons (srb. Nedostupno zbog pravnih razloga) je HTTP kod koji je namenjen da se koristi onda kada resurs nije dostupan iz pravnih razloga.
Da li 4xx greške utiču na SEO?
U suštini ovi kodovi su tehničke prirode i ne koriste se kao signal za rangiranje. Sa druge strane, ukoliko veb sajt ima dosta 4xx grešaka prilikom pretraživanja sajta radi indeksiranja (eng. Crawling)) botovi će pronaći veliki broj obrisanih ili polomljenih stranica (eng. broken links) koje mogu uticati na ukupno korisničko iskustvo na samom sajtu i vreme ostajanja na stranici.
Kako rešiti 4xx greške?
Obratite pažnju na sledeće stavke kako biste sprečili da se neke od 4xx grešaka pojave na vašem veb sajtu.
- Proverite URL – U slučaju da ste pogrešno ukucali URL adresu može se pojaviti 404 Not found greška.
- Obrišite kolačiće i keš memoriju – Vaš veb pretraživač možda pokušava da koristi nevažeće ili kolačiće koji su istekli. Takođe, može da se dogodi da je pretraživač keširao oštećenu verziju stranice do koje pokušavate da dođete i kao rezultat toga vraća kod 400 Bad Request.
- Možda je do servera? – Određeni veb serveri nisu konfigurisani na način da “vrate” poruke koje vam mogu pomoći da bolje shvatite problem. Na primer, ukoliko pokušavate da podignete fajl čija veličina premašuje limit umesto da dobijete poruku da je limit premašen, server može poslati 400 Bad Requst.
- Osvežite stranicu – Možda ovaj savet neće uvek pomoći, ali ne zahteva previše vremena i resura pa vredi pokušati.
U narednim tekstovima na blogu, pokušaćemo da detaljnije obradimo neke od navedenih 4xx grešaka i na koje načine se iste mogu ispraviti.
Volim da citam Vase blogove a odavno Vas nije bilo. 🙂
Hoce li biti nekih noviteta u ponudi?