I en verden av webutvikling spiller HTTP-feilkoder en viktig rolle i å påvirke brukeropplevelsen og omdømmet til et nettsted. I denne artikkelen vil vi vurdere en fullstendig liste over serverfeilkoder, analysere betydningen deres og lære hvordan du effektivt tolker serverresponskoder for å løse problemer og optimalisere ytelsen til nettappene.
Hva er en HTTP-svarkode
HTTP-svarkode er språket til webservere som oversetter nettleserforespørsler til forståelige instruksjoner. Det er som en poet som svarer på virtuelle spørsmål, og gir dem mening og retning. Svarkoder er ikke alltid HTTP-feilkoder. For eksempel betyr "200 OK" at alt er OK, men HTTP-feil "404 ikke funnet" betyr at siden går tapt i det virtuelle rommet. Hver kode er et unikt uttrykk for servertilstanden, hvis dekoding lar oss forstå hva som skjer på den andre siden av den virtuelle verdenen.
1xx-koder (informasjon)
1xx-statuskoder i HTTP-protokollen er en slags første kobling i dialogen mellom serveren og klienten. I stedet for å gi et fullstendig svar på en forespørsel, gir de informasjon om gjeldende status, noe som gjør datautvekslingen mer effektiv. La oss se nærmere på dem:
100 Fortsett . HTTP-svarkode der serveren gir brukeren grønt lys, slik at vedkommende trygt kan fortsette å sende en stor forespørsel.
101 Bytte protokoller . Serveren forteller klienten at den endrer spillereglene, for eksempel at den går fra HTTP til det sikrere HTTPS. I dette tilfellet brukes «Oppgradering»-headeren for protokollendringen.
102 Behandling . Denne koden er som en melding om at serveren har godtatt forespørselen, men fortsatt er opptatt med en kompleks operasjon.
103 Tidlige tips . Her sender serveren flere indikative overskrifter til klienten før hovedsvaret, og advarer om noe som kan være relevant i nær fremtid.
2xx-kode (vellykket)
HTTP-feilkoder i gruppen 2xx indikerer en vellykket forespørsel fra serveren. De fungerer i hovedsak som et "grønt lys" i omfanget av nettkommunikasjon, og bekrefter at alt går etter planen og har blitt fullført.
200 OK . Denne statusen brukes når serveren behandler en forespørsel med GET-metoden uten problemer og returnerer de forespurte dataene som svar. Overskriften «Content-Type» rapporterer innholdstypen i svaret. Den informerer bare klienten om at forespørselen var vellykket.
201 Opprettet . Her annonserer serveren opprettelsen av en ny ressurs.
202 Godkjent . Serveren gir brukeren beskjed om at forespørselen er godtatt, men det vil ta tid å svare.
203 Ikke-autoritativ informasjon . Denne koden gir klienten data som kanskje ikke er offisielle, men som kan brukes til sammenligning.
204 Intet innhold . Serveren har behandlet forespørselen, men returnerer ikke noe ytterligere innhold.
205 Tilbakestill innhold . Her blir klienten bedt om å tilbakestille gjeldende visning eller data etter sending.
206 Delvis innhold . Dette tilfellet indikerer at svaret bare inneholder deler av det forespurte innholdet. Overskriften «Content-Range» indikerer det delvise innholdsområdet.
207 Multistatus. Serveren har fullført en forespørsel om flere operasjoner fra klienten, og svaret inneholder informasjon om statusen til hver av operasjonene.
226 IM brukt . Denne koden indikerer at serveren brukte metoden inkrementell metadata (IM) og svarte ved å bare sende de modifiserte ressursdelene til klienten.
3xx-koder (viderekoblinger)
3xx-koder i HTTP-protokollen er som pekere som leder brukeren til en ny ressursplassering. De informerer klienten om at oppfølgingsskritt må tas for å få det forespurte innholdet eller for å bli omdirigert til en annen ressurs. La oss fordype oss i detaljene til hver av dem:
300 flervalg . Klienten mottar et signal om at det finnes flere mulige plasseringer for ressursen, og får et valg som svar. Under nåværende omstendigheter kan overskriften «Plassering» indikere alternative alternativer for ressursen.
301 Flyttet permanent. Serveren rapporterer tilbake til brukeren at ressursen er flyttet permanent til et annet sted.
302 funnet . Denne HTTP-koden ligner på en midlertidig omdirigering. Serveren informerer forbrukeren om at ressursen midlertidig er tilgjengelig på en annen URL. Overskriften «Sted» peker til den nye URL-en for den midlertidige omdirigeringen.
303 Se Annet . Klienten får beskjed om at ressursen er tilgjengelig på en annen URL og må sende en GET-forespørsel til denne nye adressen.
304 Ikke endret . Denne statusen forteller klienten at ressursen har vært uendret siden forrige forespørsel og ikke trenger å lastes ned på nytt. Når du sender en forespørsel, brukes overskriften "Hvis-endret-sinke" for å sjekke om ressursen har blitt endret.
305 Bruk proxy. Som svar rapporterer serveren at den skal bruke den angitte proxyen for å få tilgang til den forespurte ressursen.
306 (reservert) – Koden er reservert, men den brukes faktisk ikke.
307 Midlertidig omdirigering . Denne koden ligner på 302 funnet, men krever at klienten forblir i forespørselsmetoden som ble brukt i den opprinnelige forespørselen.
308 Permanent omdirigering . Indikerer at ressursen har flyttet seg permanent til en ny URI, og at klienten bør bruke den nye URI-en for alle fremtidige forespørsler.
4xx HTTP-feil (klientfeil)
HTTP 4xx feilkoder indikerer klientfeil. Dette betyr at problemet er på brukersiden, for eksempel nettleseren eller appen.
400 Ugyldig forespørsel . Serveren kan ikke behandle forespørselen på grunn av syntaksfeil, ugyldige data eller andre feil på klientsiden.
401 Uautorisert. Serveren kan ikke behandle forespørselen på grunn av syntaksfeil, ugyldige data eller andre feil på klientsiden.
402 Betaling kreves . Koden er ikke aktiv for øyeblikket og er reservert for fremtidig bruk. Den kan indikere at du må betale før du får tilgang til ressursen i fremtiden.
HTTP-feil 403 Forbudt. Klienten har ikke tilstrekkelige rettigheter til å få tilgang til den forespurte ressursen.
404 Ikke funnet. Den forespurte ressursen finnes ikke på serveren. Dette er en av de vanligste brukerfeilene.
405 Metode ikke tillatt . Serveren støtter ikke den angitte forespørselsmetoden i løpet av denne ressursen. Overskriften «Tillat» angir de tillatte metodene for ressursen. Med denne koden,
406 Ikke akseptabelt. Serveren kan ikke levere data i et format som kan aksepteres av klienten.
407 Proxy-autentisering kreves . Autentisering på proxy-serveren kreves for å få tilgang til den forespurte ressursen.
408 Forespørselstidsavbrudd . Serveren ventet på å motta en forespørsel fra klienten, men det gikk et tidsavbrudd. Overskriften «Retry-After» kan angi tiden det tar før forespørselen kan prøves på nytt.
409 Konflikt. Forespørselen kan ikke fullføres på grunn av en konflikt med gjeldende ressurstilstand.
410 Borte . Den forespurte ressursen eksisterte tidligere, men er nå slettet, og det er ikke forventet at den blir gjenopprettet.
411 Lengde kreves . Serveren krever at innholdslengden spesifiseres i forespørselen. Fravær av denne informasjonen anses som en feil.
412 Forutsetning mislyktes . En forutsetning i forespørselen er ikke oppfylt, noe som forhindrer at den utføres.
413 Nyttelasten er for stor . Størrelsen på forespørselsdataene overskrider servergrensene.
414 URI for lang . URI-lengden i forespørselen overskrider akseptable grenser.
415 Medietype støttes ikke . Serveren kan ikke behandle datatypen som er oppgitt i forespørselen.
416 Området kan ikke tilfredsstilles . HTTP-feil der det forespurte området ikke samsvarer med gjeldende serverdata.
417 Forventning mislyktes . Den forventede betingelsen i «Forvent»-headeren ble ikke oppfylt.
418 Jeg er en tekanne . Denne koden er inkludert som en spøk og innebærer ingen reell handling fra brukeren eller serveren, og er ikke en fullverdig feil. Den indikerer at serveren er en tekanne og ikke er i stand til å lage kaffe.
421 Feilsendt forespørsel . Serveren behandler ikke forespørselen på grunn av en feil i forespørselen eller serverkonfigurasjonen.
422 Ubehandlelig enhet . Serveren forstår forespørselen, men behandler den ikke på grunn av datafeil.
423 Låst. Ressursen er blokkert og kan ikke behandles.
424 Mislykket avhengighet . Forespørselen er avhengig av en annen uutført forespørsel.
425 For tidlig. Serveren er ikke klar til å behandle forespørselen fordi den kommer for tidlig.
426 Oppgradering kreves . Serveren krever bruk av en mer avansert protokoll for å behandle forespørselen.
428 Forutsetning kreves . Serveren krever at visse forutsetninger spesifiseres i forespørselen.
429 For mange forespørsler . Klienten sendte for mange forespørsler på kort tid, og overskrider dermed serverens grenser.
431 Forespørselshodefeltene er for store . Forespørselshodene overskrider maksimal tillatt størrelse.
449 Prøv på nytt med. Angir at forespørselen ikke kan kjøres av gjeldende server, men kan behandles av en annen server, og at klienten bør prøve forespørselen på nytt med en ny URI.
451 Utilgjengelig av juridiske årsaker . Ressursen er utilgjengelig av juridiske årsaker.
499 Klient lukket forespørsel . Serveren mottok forespørselen, men tilkoblingen ble lukket av klienten før behandlingen ble fullført.
HTTP 5xx-feil (serverfeil)
HTTP 5xx feilkoder indikerer serverproblemene. Disse kodene indikerer problemer som har oppstått på serversiden, noe som gjør at serveren ikke kan behandle brukerens forespørsel på en riktig måte. La oss se nærmere på dem:
HTTP-feil 500 Intern serverfeil . Serveren støter på uventede omstendigheter som forhindrer at forespørselen fullføres. Overskriften «Server» kan indikere serveren der feilen oppsto.
501 Ikke implementert . Serveren støtter ikke funksjonaliteten som kreves for å behandle klientens forespørsel. Overskriften «Via» kan indikere proxy-serveren som feilen oppsto gjennom.
502 Dårlig gateway . Denne koden betyr at serveren som fungerer som proxy mottok feil svar fra en annen server.
HTTP- feil 503-tjenesten er ikke tilgjengelig . Serveren kan midlertidig ikke behandle forespørsler.
504 Gateway-tidsavbrudd . Serveren som fungerer som proxy mottok ikke et rettidig svar fra en annen server.
505 HTTP-versjon støttes ikke . Serveren støtter ikke HTTP-protokollversjonen som er spesifisert i forespørselen. Som et sikkerhetskopialternativ kan overskriften «Oppgradering» indikere støttede protokoller.
506 Variant forhandler også . Denne statusen brukes ikke i HTTP/1.1. Hvis serveren imidlertid oppdager en intern konfigurasjon som resulterer i tvetydighet i innholdsforhandlingen, kan den bruke dette svaret.
507 Utilstrekkelig lagringsplass . Serveren kan ikke oppfylle forespørselen på grunn av utilstrekkelig lagringsplass på serveren.
508 Løkke oppdaget . Serveren har oppdaget en løkke under behandling av forespørselen, og nekter å fullføre forespørselen for å unngå en uendelig løkke.
509 Båndbreddegrense overskredet . Feilen oppstår når serverens båndbredde overskrides på grunn av et stort volum av forespørsler eller trafikk.
510 Ikke utvidet . Klienten må overføre flere utvidelser for å fortsette forespørselen.
511 Nettverksautentisering kreves . Klienten må autentisere seg selv for å få tilgang til nettverket.
Hvordan sjekke sidens statuskode
I denne delen vil vi vurdere tre hovedmåter for å sjekke sidens statuskode: via kommandolinjen, ved hjelp av en nettleser og ved bruk av uavhengige nettjenester. Hver av disse metodene har sine egne fordeler og kan være nyttige i forskjellige situasjoner.
Sjekker serversvar via kommandolinje
Kommandolinjen gir en praktisk måte å sjekke sidens statuskode uten å måtte bruke en nettleser. For denne metoden må du åpne kommandolinjen og bruke kommandoen:
curl -I http://page-address
Denne kommandoen sender en HEAD-forespørsel (kun overskrifter) til den angitte URL-en og viser informasjon inkludert HTTP-statuskoden:
Eksemplet ovenfor viser en vellykket svarkode. I tilfelle av et svar som inneholder en feilkode, for eksempel 404 Ikke funnet HTTP-feil, vil resultatet se lignende ut:
Sjekker serverresponsen via nettleserkonsollen
Nettleserens utviklerkonsoll gir verktøy for å utføre ulike operasjoner, inkludert å sjekke sidens statuskode. For å se HTTP-koden i serversvaret, må du åpne utviklerkonsollen (Ctrl+Shift+K) eller (Ctrl+Shift+J) avhengig av nettleseren som brukes. Deretter velger du "nettverk"-delen og laster inn ønsket side:
Sjekke serverresponsen ved hjelp av uavhengige verktøy
Det finnes et stort antall uavhengige nettjenester som tilbyr verktøy for å sjekke statuskoden til nettsiden. Disse tjenestene lar deg vanligvis raskt få en oversikt over ressursens tilgjengelighet og ytelse. De fungerer alle etter samme prinsipp. Som et eksempel vil vi se på den mest populære ressursen - httpstatus.io
Først av alt må du åpne selve tjenesten, deretter skrive inn adressen til siden som du trenger for å finne ut av, og be om bekreftelse:
Resultatet vil vises nederst på siden:
Konklusjon
Avslutningsvis bør det understrekes at det å forstå og kunne lese HTTP-feilkoder er en nøkkelferdighet for alle som er involvert i webutvikling og servervedlikehold. Når vi finner ut hver feil og utforsker verktøyene for å oppdage dem, ser vi grunner til at det er så viktig å effektivt administrere disse nettjenesteaspektene.