Slå enhver HTTP-statuskode op: hvad den betyder, hvornår servere sender den, og hvilken specifikation der definerer den. Søg efter nummer eller søgeord, filtrer efter klasse, og link direkte til en kode.
Serveren har modtaget forespørgselsheaderne, og klienten kan sende bodyen. Ses, når en klient sender “Expect: 100-continue” før upload af en stor body.
Serveren har accepteret en WebDAV-forespørgsel, men er ikke færdig med den endnu. Den blev fjernet fra senere WebDAV-specifikationer og bruges sjældent i dag.
Sendes før det endelige svar, så browseren kan begynde at forudindlæse ressourcer, der er angivet i Link-headere. Bruges af CDN'er og servere til at gøre sideindlæsning hurtigere.
Forespørgslen lykkedes, og der er intet indhold at returnere. Almindeligt ved DELETE-forespørgsler og ved lagring af data, når klienten ikke har brug for et svar-body.
Ressourcen er flyttet permanent til URL'en i Location-headeren. Browsere og søgemaskiner opdaterer deres links; nogle klienter ændrer POST til GET, når de følger den.
Ressourcen ligger midlertidigt på en anden URL angivet i Location-headeren. Almindeligt efter login og ved kortvarige omdirigeringer; browsere følger den normalt med GET.
Klienten bør hente resultatet fra en anden URL med GET. Bruges efter en formular-POST til at omdirigere til en bekræftelsesside (Post/Redirect/Get-mønsteret).
Den cachelagrede kopi er stadig gyldig, så serveren sender ingen body. Ses når en browser revaliderer en cachet fil med If-None-Match eller If-Modified-Since.
Ressourcen ligger midlertidigt på en anden URL, og klienten skal gentage forespørgslen med samme metode og body. Bruges også af browsere til interne HSTS-omdirigeringer til HTTPS.
Ressourcen er flyttet permanent, og klienten skal bruge samme metode og body på den nye URL. Den permanente pendant til 307, sikker til omdirigering af POST-forespørgsler.
Forespørgslen mangler gyldige loginoplysninger. På trods af navnet betyder den „ikke autentificeret“; serveren sender en WWW-Authenticate-header, der beskriver, hvordan man logger ind.
Serveren forstod forespørgslen, men afviser den, og det hjælper ikke at logge ind igen. Ses, når rettigheder mangler, en mappeliste er deaktiveret, eller en firewall blokerer klienten.
Ressourcen findes, men understøtter ikke den anvendte HTTP-metode, f.eks. POST til en skrivebeskyttet URL. Svaret angiver de tilladte metoder i Allow-headeren.
En betingelse i anmodningens headere, f.eks. If-Match, blev ikke opfyldt. Bruges til at forhindre overskrivning af en ressource, der har ændret sig, siden klienten sidst læste den.
URL'en er længere end serveren vil behandle. Skyldes normalt, at en formular sender for mange data med GET eller en redirect-løkke, der bliver ved med at tilføje parametre.
En aprilsnar fra Hyper Text Coffee Pot Control Protocol fra 1998: en tepotte, der nægter at brygge kaffe. HTTP reserverer koden som ubrugt, men nogle servere returnerer den som et Easter egg eller for at afvise uønskede bots.
Klienten har sendt for mange anmodninger inden for et givet tidsrum. API'er bruger den til rate limiting og inkluderer ofte en Retry-After-header, der angiver, hvornår man kan prøve igen.
Ikke en standardkode. nginx bruger den internt til at lukke forbindelsen uden at sende noget svar, ofte for at afvise uønsket trafik; klienter modtager den aldrig.
Ikke en standardkode. nginx logger den, når klienten lukkede forbindelsen, før serveren svarede, f.eks. når en bruger afbryder en langsom side, eller ved en timeout på klientsiden.
Serveren stødte på en uventet fejl og kunne ikke fuldføre anmodningen. En generisk fejl fra en bug, et nedbrud eller en fejlkonfiguration; detaljerne findes i serverloggene.
En gateway eller proxy modtog et ugyldigt svar fra upstream-serveren. Forekommer ofte, når applikationen bag nginx eller en load balancer er gået ned eller er ved at genstarte.
Serveren kan midlertidigt ikke håndtere anmodningen, fordi den er overbelastet eller nede på grund af vedligeholdelse. En Retry-After-header kan angive, hvornår du kan prøve igen.
En gateway eller proxy modtog ikke noget svar fra upstream-serveren i tide. Ses, når en backend-anmodning er for langsom, f.eks. en lang databaseforespørgsel.
Klienten skal autentificere sig for at få netværksadgang. Sendes af captive-portaler på Wi-Fi på hoteller, i lufthavne eller caféer, før du logger ind.
Ikke en standardkode. Cloudflare returnerer den, når origin-serveren afviste forbindelsen, typisk fordi webserveren er nede eller blokerer Cloudflares IP-adresser.
Ikke en standardkode. Cloudflare returnerer den, når den oprettede forbindelse til origin-serveren, men ikke modtog et HTTP-svar inden for dens timeout (100 sekunder som standard).
Ikke en standardkode. Cloudflare returnerer den, når origin-serverens SSL-certifikat er ugyldigt, og SSL-tilstanden Full (strict) er aktiveret.
Defineret i Cloudflare
Sådan bruger du det
Indtast et kodenummer (f.eks. 404 eller bare 5 for alle serverfejl) eller et søgeord som “redirect” eller “timeout”.
Indsnævr listen med klassefilteret: informativ, succes, omdirigering, klientfejl eller serverfejl.
Brug “Kopier link” på en hvilken som helst kode for at dele et direkte link til den, f.eks. i en fejlrapport.
Sådan fungerer det
Hvert HTTP-svar starter med en trecifret statuskode. Det første ciffer angiver klassen: 1xx informative svar, 2xx succes, 3xx omdirigering, 4xx fejl forårsaget af forespørgslen og 5xx fejl på serversiden. Klienter, der ikke genkender en bestemt kode, behandler den som x00-koden i dens klasse, så en ukendt 4xx-kode håndteres som 400.
Grundkoderne er defineret i RFC 9110 (HTTP Semantics, 2022), som erstattede den ældre RFC 7231. Andre kommer fra udvidelser: WebDAV (RFC 4918), RFC 6585 for 428, 429, 431 og 511, RFC 7725 for 451 og RFC 8470 for 425. RFC 9110 omdøbte også to koder: 413 hedder nu „Content Too Large“, og 422 hedder „Unprocessable Content“, men du kan stadig se dem under deres gamle navne „Payload Too Large“ og „Unprocessable Entity“.
Nogle koder, du møder i logfiler, er slet ikke standarder. nginx bruger 444 og 494–499 internt (499 viser en klient, der opgav at vente), og Cloudflare returnerer 520–526, når den ikke kan få et korrekt svar fra oprindelsesserveren. Disse er markeret som „Non-standard“ i listen. Årsagsfraserne (f.eks. „Not Found“) vises på engelsk som skrevet i specifikationerne; HTTP/2 og HTTP/3 sender kun nummeret.
Eksempler
301 eller 308 ved flytning af et websted
Begge er permanente. Brug 301 til almindelige sideflytninger; brug 308, når klienter skal gentage POST- eller PUT-forespørgsler til den nye URL, fordi nogle klienter ændrer POST til GET efter en 301-kode.
401 versus 403
Et API returnerer 401, når der ikke sendes et token, eller når tokenet er udløbet, så klienten bør logge ind. Det returnerer 403, når tokenet er gyldigt, men brugeren mangler rettigheder, så det hjælper ikke at logge ind igen.
Fejlfinding af en 502 bag nginx
En 502 Bad Gateway fra nginx betyder, at applikationen bag den ikke svarede korrekt. Kontrollér, om app-processen kører, og hvad den loggede; 504 betyder i stedet, at den svarede for langsomt.
Ofte stillede spørgsmål
Hvad er forskellen mellem 404 og 410?
404 betyder, at serveren ikke kan finde ressourcen, og siger intet om fremtiden. 410 betyder, at ressourcen bevidst er fjernet og ikke vender tilbage, hvilket hjælper søgemaskiner med at fjerne URL'en hurtigere.
Bør en valideringsfejl returnere 400 eller 422?
Begge bruges. 400 passer til forespørgsler, serveren ikke kan fortolke, f.eks. ødelagt JSON. 422 passer til forespørgsler, der fortolkes korrekt, men indeholder ugyldige værdier, f.eks. et e-mailfelt uden @.
Er 418 I'm a teapot en rigtig statuskode?
Den stammer fra en aprilsnar-RFC fra 1998. RFC 9110 reserverer 418 som ubrugt, så den ikke tildeles noget andet, og nogle få servere returnerer den som en joke, men den har ingen standardbetydning.
Hvor kommer 499 fra?
499 er nginx-specifik. Den vises i nginx-logfiler, når klienten lukker forbindelsen, før serveren sender et svar. Klienten modtager aldrig en 499; den peger normalt på langsomme svar eller tidsudløb på klientsiden.
Behandler søgemaskiner 302 som 301?
En 302 signalerer en midlertidig flytning, så søgemaskiner beholder normalt den oprindelige URL indekseret i første omgang. Hvis en 302 forbliver i lang tid, kan Google behandle den som en permanent omdirigering. Brug 301 eller 308 til permanente flytninger.
Privatliv
Listen er en del af siden. Søgning og filtrering foregår i din browser; dine søgeord sendes ikke nogen steder hen og indgår ikke i analyser.