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 grønt lys til brukeren, slik at han trygt kan fortsette å sende en stor forespørsel.
101 Bryterprotokoller. Serveren forteller klienten at den endrer spillereglene, for eksempel ved å flytte fra HTTP til det sikrere HTTPS. I dette tilfellet brukes "Upgrade"-overskriften for protokollendringen.
102-behandling. Denne koden er som en melding om at serveren har akseptert forespørselen, men fortsatt er opptatt med en kompleks operasjon.
103 Tidlige hint. Her sender serveren flere veiledende overskrifter til klienten før hovedsvaret, og advarer om noe som kan være aktuelt 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. "Content-Type"-overskriften rapporterer innholdstypen i svaret. Den informerer bare klienten om at forespørselen var vellykket.
201 opprettet. Her kunngjør serveren opprettelsen av en ny ressurs.
202 akseptert. Serveren gir brukeren beskjed om at forespørselen er akseptert, 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 Ingen Innhold. Serveren har behandlet forespørselen, men returnerer ikke noe tilleggsinnhold.
205 Tilbakestill innhold. Her får klienten beskjed om å tilbakestille gjeldende visning eller data etter sending.
206 Delvis innhold. Denne saken indikerer at svaret bare inneholder deler av det forespurte innholdet. "Content-Range"-overskriften angir det delvise innholdsområdet.
207 Multi-status. Serveren har fullført en fleroperasjonsforespørsel fra klienten, og svaret inneholder informasjon om statusen til hver av operasjonene.
226 IM Brukt. Denne koden indikerer at serveren brukte metoden Incremental Metadata (IM) og svarte ved å sende bare 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 flere valg. Klienten mottar et signal om at det er flere mulige lokasjoner for ressursen og får et valg som svar. Under nåværende omstendigheter kan "Plassering"-overskriften indikere alternative alternativer for ressursen.
301 Flyttet permanent. Serveren rapporterer tilbake til brukeren at ressursen er permanent flyttet til et annet sted.
302 funnet. Denne HTTP-koden ligner på en midlertidig omdirigering. Serveren informerer forbrukeren om at ressursen er midlertidig tilgjengelig på en annen URL. "Plassering"-overskriften peker til den nye nettadressen for den midlertidige viderekoblingen.
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 siste forespørsel og ikke trenger å lastes ned igjen. Når du sender en forespørsel, brukes "If-Modified-Since"-overskriften for å sjekke om ressursen er endret.
305 Bruk proxy. Som et svar rapporterer serveren at den skal bruke den spesifiserte 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 Found, men krever at klienten forblir i forespørselsmetoden som ble brukt i den opprinnelige forespørselen.
308 Permanent omdirigering. Indikerer at ressursen har gjort en permanent flytting til en ny URI og klienten bør bruke den nye URI 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 dårlig 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. Det kan indikere behovet for å 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 er ikke tillatt. Serveren støtter ikke den angitte forespørselsmetoden i løpet av denne ressursen. "Tillat"-overskriften 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-godkjenning påkrevd. Autentisering på proxy-server kreves for å få tilgang til den forespurte ressursen.
408 Be om timeout. Serveren ventet på å motta en forespørsel fra klienten, men ble tidsavbrutt. "Retry-After"-overskriften kan indikere tiden etter hvilken forespørselen kan prøves på nytt.
409 Konflikt. Forespørselen kan ikke fullføres på grunn av en konflikt med gjeldende ressurstilstand.
410 Gone. Den forespurte ressursen eksisterte tidligere, men er nå slettet, og gjenoppretting forventes ikke.
411 lengde påkrevd. Serveren krever å spesifisere innholdslengden i forespørselen; fraværet av denne informasjonen anses som en feil.
412 Forutsetning mislyktes. En forutsetning i forespørselen er ikke oppfylt, som hindrer den i å utføre.
413 nyttelast for stor. Størrelsen på forespørselsdataene overskrider servergrensene.
414 URI for lang. URI-lengden i forespørselen overskrider akseptable grenser.
415 Medietype som ikke støttes. Serveren kan ikke behandle datatypen oppgitt i forespørselen.
416 Range Ikke tilfredsstillende. HTTP-feil der det forespurte området ikke samsvarer med gjeldende serverdata.
417 Forventning mislyktes. Den forventede betingelsen i "Forvent"-overskriften ble ikke oppfylt.
418 Jeg er en tekanne. Denne koden er inkludert som en spøk og innebærer ingen reell handling for brukeren eller serveren, og er ikke en fullverdig feil. Det indikerer at serveren er en tekanne og ikke er i stand til å lage kaffe.
421 Feilrettet forespørsel. Serveren behandler ikke forespørselen på grunn av en feil i forespørselen eller serverkonfigurasjonen.
422 Entitet som ikke kan behandles. 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 avhenger av en annen ikke-utført forespørsel.
425 for tidlig. Serveren er ikke klar til å behandle forespørselen på grunn av at den kommer tidlig.
426 Oppgradering kreves. Serveren krever bruk av en mer avansert protokoll for å behandle forespørselen.
428 Forutsetning påkrevd. Serveren krever at visse forutsetninger spesifiseres i forespørselen.
429 For mange forespørsler. Klienten sendte for mange forespørsler på kort tid, og overskred serverens grenser.
431 Forespørselshodefelt er for store. Forespørselshodene overskrider den maksimalt tillatte størrelsen.
449 Prøv på nytt med. Indikerer at forespørselen ikke kan kjøres av gjeldende server, men kan behandles av en annen server, og 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 stengt 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 møter uventede omstendigheter som hindrer den i å fullføre forespørselen "Server"-overskriften kan indikere serveren som feilen oppstod på.
501 Ikke implementert. Serveren støtter ikke funksjonaliteten som kreves for å behandle klientens forespørsel. "Via"-overskriften kan indikere proxy-serveren som feilen oppsto gjennom.
502 Bad Gateway. Denne koden betyr at serveren som fungerer som proxy fikk feil svar fra en annen server.
HTTP Feil 503 Tjenesten er utilgjengelig. Serveren kan midlertidig ikke behandle forespørsler.
504 Gateway Timeout. 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 spesifisert i forespørselen. Som et sikkerhetskopieringsalternativ kan "Oppgrader"-overskriften 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 innholdsforhandling, kan den bruke dette svaret.
507 Utilstrekkelig lagringsplass. Serveren kan ikke oppfylle forespørselen på grunn av utilstrekkelig lagringsplass på serveren.
508 sløyfe oppdaget. Serveren har oppdaget en sløyfe under behandling av forespørselen, og nekter å fullføre forespørselen for å unngå en uendelig sløyfe.
509 Båndbreddegrense overskredet. Feilen oppstår når serverens båndbredde overskrides på grunn av høyt volum av forespørsler eller trafikk.
510 Ikke utvidet. Klienten må overføre ytterligere utvidelser for å fortsette forespørselen.
511 Nettverksgodkjenning påkrevd. Klienten må autentisere seg 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 nettsidens statuskode. Disse tjenestene lar deg vanligvis raskt få en oversikt over ressursens tilgjengelighet og ytelse. De opererer alle etter samme prinsipp. Som et eksempel vil vi vurdere 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.