I en verden af webudvikling spiller HTTP-fejlkoder en afgørende rolle i at påvirke brugeroplevelsen og omdømmet på et websted. I denne artikel vil vi overveje en komplet liste over serverfejlkoder, analysere deres betydning og lære, hvordan man effektivt fortolker serversvarkoder for at løse problemer og optimere webapps-ydeevnen.
Hvad er en HTTP-svarkode
HTTP-svarkode er sproget på webservere, der oversætter browseranmodninger til forståelige instruktioner. Det er som en digter, der besvarer virtuelle spørgsmål og giver dem mening og retning. Svarkoder er ikke altid HTTP-fejlkoder. For eksempel betyder "200 OK" at alt er OK, men HTTP-fejl "404 ikke fundet" betyder, når siden er tabt i det virtuelle rum. Hver kode er et unikt udtryk for servertilstanden, hvis afkodning giver os mulighed for at forstå, hvad der sker på den anden side af den virtuelle verden.
1xx koder (information)
1xx-statuskoder i HTTP-protokollen er en slags første led i dialogen mellem serveren og klienten. I stedet for at give et fuldstændigt svar på en anmodning, giver de oplysninger om den aktuelle status, hvilket gør dataudvekslingen mere effektiv. Lad os se nærmere på dem:
100 Fortsæt . HTTP-svarkode, hvor serveren giver brugeren grønt lys, så vedkommende sikkert kan fortsætte med at sende en stor anmodning.
101 Skift af protokoller . Serveren fortæller klienten, at den ændrer spillets regler, for eksempel ved at skifte fra HTTP til det mere sikre HTTPS. I dette tilfælde bruges headeren "Opgradering" til protokolændringen.
102 Behandling . Denne kode er som en besked om, at serveren har accepteret anmodningen, men stadig er optaget af en kompleks operation.
103 Tidlige tips . Her sender serveren adskillige indikative headere til klienten før hovedsvaret, der advarer om noget, der kan være relevant i den nærmeste fremtid.
2xx kode (Vellykket)
HTTP-fejlkoder i gruppen 2xx indikerer en vellykket anmodning fra serveren. De fungerer i det væsentlige som et "grønt lys" i forbindelse med webkommunikation, hvilket bekræfter, at alt går efter planen og er blevet gennemført med succes.
200 OK . Denne status bruges, når serveren behandler en anmodning via GET-metoden uden problemer og returnerer de anmodede data som svar. Headeren "Content-Type" rapporterer indholdstypen i svaret. Den informerer blot klienten om, at anmodningen var vellykket.
201 Oprettet . Her annoncerer serveren oprettelsen af en ny ressource.
202 Accepteret . Serveren giver brugeren besked om, at anmodningen er accepteret, men det vil tage tid at svare.
203 Ikke-autoritative oplysninger . Denne kode giver klienten data, der muligvis ikke er officielle, men som kan bruges til sammenligning.
204 Intet indhold . Serveren har behandlet anmodningen, men returnerer ikke yderligere indhold.
205 Nulstil indhold . Her bliver klienten bedt om at nulstille den aktuelle visning eller data efter afsendelse.
206 Delvist indhold . Dette tilfælde angiver, at svaret kun indeholder en del af det anmodede indhold. Overskriften "Content-Range" angiver det delvise indholdsområde.
207 Multistatus. Serveren har gennemført en anmodning om flere operationer fra klienten, og svaret indeholder oplysninger om status for hver af operationerne.
226 IM brugt . Denne kode angiver, at serveren brugte metoden Incremental Metadata (IM) og svarede ved kun at sende de ændrede ressourcedele til klienten.
3xx-koder (omdirigeringer)
3xx-koder i HTTP-protokollen er som pointere, der guider brugeren til en ny ressourceplacering. De informerer klienten om, at der skal tages opfølgende skridt for at få det ønskede indhold eller for at blive omdirigeret til en anden ressource. Lad os fordybe os i detaljerne om hver af dem:
300 flere valgmuligheder . Klienten modtager et signal om, at der er flere mulige placeringer for ressourcen, og får et valg som svar. Under de nuværende omstændigheder kan overskriften "Placering" angive alternative muligheder for ressourcen.
301 Flyttet permanent. Serveren rapporterer tilbage til brugeren, at ressourcen er blevet flyttet permanent til en anden placering.
302 fundet . Denne HTTP-kode ligner en midlertidig omdirigering. Serveren informerer forbrugeren om, at ressourcen midlertidigt er tilgængelig på en anden URL. Headeren "Location" peger på den nye URL til den midlertidige omdirigering.
303 Se Andet . Klienten får at vide, at ressourcen er tilgængelig på en anden URL og skal foretage en GET-anmodning til denne nye adresse.
304 Ikke ændret . Denne status fortæller klienten, at ressourcen er forblevet uændret siden den sidste anmodning og ikke behøver at blive downloadet igen. Når der foretages en anmodning, bruges headeren "If-Modified-Since" til at kontrollere, om ressourcen er blevet ændret.
305 Brug proxy. Som svar rapporterer serveren, at den skal bruge den angivne proxy til at få adgang til den anmodede ressource.
306 (reserveret) — Koden er reserveret, men den bruges faktisk ikke.
307 Midlertidig omdirigering . Denne kode ligner 302 Fundet, men kræver, at klienten forbliver i den anmodningsmetode, der blev brugt i den oprindelige anmodning.
308 Permanent omdirigering . Angiver, at ressourcen er flyttet permanent til en ny URI, og at klienten skal bruge den nye URI til alle fremtidige anmodninger.
4xx HTTP-fejl (klientfejl)
HTTP 4xx fejlkoder angiver klientfejl. Det betyder, at problemet er på brugersiden, såsom webbrowseren eller appen.
400 Forkert anmodning . Serveren kan ikke behandle anmodningen på grund af syntaksfejl, ugyldige data eller andre fejl på klientsiden.
401 Uautoriseret. Serveren kan ikke behandle anmodningen på grund af syntaksfejl, ugyldige data eller andre fejl på klientsiden.
402 Betaling påkrævet . Koden er ikke aktiv i øjeblikket og er reserveret til fremtidig brug. Den kan indikere, at der skal betales, før man får adgang til ressourcen i fremtiden.
HTTP-fejl 403 Forbudt. Klienten har ikke tilstrækkelige rettigheder til at få adgang til den anmodede ressource.
404 Ikke fundet. Den anmodede ressource findes ikke på serveren. Dette er en af de mest almindelige brugerfejl.
405 Metode ikke tilladt . Serveren understøtter ikke den angivne anmodningsmetode i denne ressource. Headeren "Tillad" angiver de tilladte metoder for ressourcen. Med denne kode,
406 Ikke acceptabel. Serveren kan ikke levere data i et format, der kan accepteres af klienten.
407 Proxy-godkendelse påkrævet . Godkendelse på proxyserveren er påkrævet for at få adgang til den anmodede ressource.
408 Anmodningstimeout . Serveren ventede på at modtage en anmodning fra klienten, men der opstod timeout. Headeren "Retry-After" kan angive det tidspunkt, hvorefter anmodningen kan forsøges igen.
409 Konflikt. Anmodningen kan ikke fuldføres på grund af en konflikt med den aktuelle ressourcetilstand.
410 Væk . Den anmodede ressource eksisterede tidligere, men er nu blevet slettet, og dens gendannelse forventes ikke.
411 Krævet længde . Serveren kræver at indholdets længde angives i anmodningen; fraværet af denne information betragtes som en fejl.
412 Forudsætning mislykkedes . En forudsætning i anmodningen er ikke opfyldt, hvilket forhindrer den i at udføres.
413 Nyttelasten er for stor . Størrelsen af anmodningsdataene overstiger servergrænserne.
414 URI for lang . URI-længden i anmodningen overstiger acceptable grænser.
415 Medietype understøttes ikke . Serveren kan ikke behandle den datatype, der er angivet i anmodningen.
416 Interval ikke tilfredsstillende . HTTP-fejl, hvor det anmodede interval ikke matcher de aktuelle serverdata.
417 Forventning mislykkedes . Den forventede betingelse i headeren "Forvent" blev ikke opfyldt.
418 Jeg er en tekande . Denne kode er inkluderet som en joke og indebærer ikke nogen reel handling fra brugerens eller serverens side, og er ikke en fuldgyldig fejl. Den indikerer, at serveren er en tekande og ikke er i stand til at lave kaffe.
421 Fejlrettet anmodning . Serveren behandler ikke anmodningen på grund af en fejl i anmodningen eller serverkonfigurationen.
422 Ubehandlelig enhed . Serveren forstår anmodningen, men behandler den ikke på grund af datafejl.
423 Låst. Ressourcen er blokeret og kan ikke behandles.
424 Mislykket afhængighed . Anmodningen afhænger af en anden uudført anmodning.
425 For tidligt. Serveren er ikke klar til at behandle anmodningen, da den ankommer for tidligt.
426 Opgradering påkrævet . Serveren kræver brug af en mere avanceret protokol for at behandle anmodningen.
428 Forudsætning påkrævet . Serveren kræver, at visse forudsætninger specificeres i anmodningen.
429 For mange anmodninger . Klienten sendte for mange anmodninger på kort tid og overskred dermed serverens grænser.
431 Felter i anmodningsheader er for store . Anmodningsheadere overskrider den maksimalt tilladte størrelse.
449 Prøv igen med. Angiver, at anmodningen ikke kan køres af den aktuelle server, men kan behandles af en anden server, og at klienten skal forsøge at udføre anmodningen igen med en ny URI.
451 Ikke tilgængelig af juridiske årsager . Ressourcen er ikke tilgængelig af juridiske årsager.
499 Klient lukket anmodning . Serveren modtog anmodningen, men forbindelsen blev lukket af klienten, før behandlingen blev fuldført.
HTTP 5xx fejl (serverfejl)
HTTP 5xx fejlkoder angiver serverproblemerne. Disse koder indikerer problemer, der er opstået på serversiden, hvilket gør serveren ude af stand til at behandle brugerens anmodning på den rigtige måde. Lad os se nærmere på dem:
HTTP-fejl 500 Intern serverfejl . Serveren støder på uventede omstændigheder, der forhindrer den i at fuldføre anmodningen. Headeren "Server" kan angive den server, hvor fejlen opstod.
501 Ikke implementeret . Serveren understøtter ikke den funktionalitet, der kræves for at behandle klientens anmodning. "Via"-headeren kan angive den proxyserver, hvorigennem fejlen opstod.
502 Dårlig gateway . Denne kode betyder, at den server, der fungerer som proxy, har modtaget et forkert svar fra en anden server.
HTTP- fejl 503-tjenesten er ikke tilgængelig . Serveren kan midlertidigt ikke behandle anmodninger.
504 Gateway Timeout . Serveren, der fungerer som proxy, modtog ikke et rettidigt svar fra en anden server.
505 HTTP-version ikke understøttet . Serveren understøtter ikke den HTTP-protokolversion, der er angivet i anmodningen. Som en backupmulighed kan headeren "Opgradering" angive understøttede protokoller.
506 Variant forhandler også . Denne status bruges ikke i HTTP/1.1; men hvis serveren registrerer en intern konfiguration, der resulterer i tvetydighed i indholdsforhandlingen, kan den bruge dette svar.
507 Utilstrækkelig lagerplads . Serveren kan ikke opfylde anmodningen på grund af utilstrækkelig lagerplads på serveren.
508 Løkke registreret . Serveren har registreret en løkke under behandling af anmodningen og nægter at fuldføre anmodningen for at undgå en uendelig løkke.
509 Båndbreddegrænse overskredet . Fejlen opstår, når serverens båndbredde overskrides på grund af et stort antal anmodninger eller trafik.
510 Ikke forlænget . Klienten skal overføre yderligere udvidelser for at fortsætte anmodningen.
511 Netværksgodkendelse påkrævet . Klienten skal godkende sig selv for at få adgang til netværket.
Sådan tjekker du sidens statuskode
I dette afsnit vil vi overveje tre hovedmåder til at kontrollere sidens statuskode: via kommandolinjen, ved hjælp af en webbrowser og brug af uafhængige onlinetjenester. Hver af disse metoder har sine egne fordele og kan være nyttige i forskellige situationer.
Tjek serversvar via kommandolinje
Kommandolinjen giver en bekvem måde at kontrollere sidens statuskode uden at skulle bruge en webbrowser. For denne metode skal du åbne kommandolinjen og bruge kommandoen:
curl -I http://page-address
Denne kommando sender en HEAD-anmodning (kun headers-anmodning) til den angivne URL og viser information inklusive HTTP-statuskoden:
Eksemplet ovenfor viser en vellykket svarkode. I tilfælde af et svar, der indeholder en fejlkode, såsom 404 Ikke fundet HTTP-fejl, vil resultatet se lignende ud:
Kontrollerer serversvaret via browserkonsollen
Webbrowserens udviklerkonsol giver værktøjer til at udføre forskellige operationer, herunder kontrol af sidens statuskode. For at se HTTP-koden i serversvaret skal du åbne udviklerkonsollen (Ctrl+Shift+K) eller (Ctrl+Shift+J) afhængigt af den anvendte browser. Vælg derefter afsnittet "netværk" og indlæs den ønskede side:
Kontrol af serversvaret ved hjælp af uafhængige værktøjer
Der findes et stort antal uafhængige onlinetjenester, der tilbyder værktøjer til at kontrollere statuskoden for hjemmesiden. Disse tjenester giver dig normalt mulighed for hurtigt at få et overblik over din ressources tilgængelighed og ydeevne. De fungerer alle efter samme princip. Som et eksempel vil vi se på den mest populære ressource - httpstatus.io
Først og fremmest skal du åbne selve tjenesten, derefter indtaste adressen på den side, som du har brug for for at finde ud af, og anmode om bekræftelse:
Resultatet vil blive vist nederst på siden:
Konklusion
Afslutningsvis skal det understreges, at forståelse og at kunne læse HTTP-fejlkoder er en nøglefærdighed for alle involveret i webudvikling og servervedligeholdelse. Efterhånden som vi finder ud af hver fejl og udforsker værktøjerne til at opdage dem, ser vi grunde til, at det er så vigtigt at administrere disse webserviceaspekter effektivt.