Gå til hovedindhold

Gratis HTTP-statuskode-reference

Søgbar reference til alle HTTP-statuskoder — hvad hver enkelt betyder, hvornår den bruges og almindelige årsager. Fra 100 til 511.

Virker offline, når den er indlæst

61 statuskoder

100

Fortsæt

Serveren har modtaget anmodningsoverskrifterne, og klienten bør fortsætte med kroppen.

Bruges til anmodninger med Expect: 100-continue. Serveren bekræfter, at den er villig til at modtage kroppen, før klienten sender den. Ses sjældent i moderne webapps.

RFC 9110 ↗
101

Skiftende protokoller

Serveren skifter protokoller som anmodet af klienten.

Mest almindeligt brugt til WebSocket-opgraderinger — klienten anmoder Upgrade: websocket, og serveren svarer 101 for at skifte.

RFC 9110 ↗
102

Behandling

Serveren har modtaget anmodningen og behandler den, men der er ingen svar tilgængeligt endnu.

Et WebDAV-interimssvar sendt for at forhindre klienttimeout under lange operationer. Forældet — moderne servere bør ikke sende det.

RFC 2518 ↗
103

Tidlige hints

Foreløbige headers sendt før det endelige svar.

Lader servere sende Link-headers (preload/preconnect), mens det endelige svar stadig bliver forberedt, så browsere kan begynde at hente kritiske aktiver hurtigere.

RFC 8297 ↗
200

OK

Anmodningen blev gennemført.

Det standard vellykket svar. Betydningen afhænger af HTTP-metoden: GET → ressource returneret, POST/PUT → handling fuldført.

RFC 9110 ↗
201

Oprettet

En ny ressource blev oprettet.

Almindeligt efter en POST. Svaret skal indeholde en Location-header, der peger på den nye ressources URL.

RFC 9110 ↗
202

Accepteret

Anmodningen blev accepteret til behandling, men behandlingen er ikke fuldført.

For asynkrone operationer — serveren sætter arbejdet i kø. Klienten bør polling en statusterminal eller kontrollere senere.

RFC 9110 ↗
203

Ikke-autorisativ information

Svaret blev ændret af en transformeringsproxy.

Anmodningen blev gennemført, men en intermediær (såsom en caching- eller transformeringsproxy) ændrede nyttelasten fra oprindelsesserveren — f.eks. rekomprimering af billeder. Sjældent i praksis.

RFC 9110 ↗
204

Intet indhold

Anmodningen blev gennemført, men der er ingen svarbrødtekst.

Ofte brugt til DELETE-operationer eller PUT-opdateringer, der ikke behøver at returnere en krop. Klienten bør ikke navigere væk fra den aktuelle side.

RFC 9110 ↗
205

Nulstil indhold

Anmodningen blev gennemført; klienten bør nulstille dokumentvisningen.

Som 204 returneres ingen brødtekst — men klienten får desuden besked på at nulstille formularen eller visningen, der producerede anmodningen (f.eks. ryd formularfelterne til næste post).

RFC 9110 ↗
206

Delvist indhold

Serveren leverede kun en del af ressourcen.

Svar på en Range-anmodning. Bruges af videoafspillere og nedlastningshåndteringer til at genoptage afbrudt downloads eller streame store filer.

RFC 9110 ↗
207

Multi-status

Svarbrødteksten indeholder flere statuskoder for flere operationer.

WebDAV: en XML-brødtekst rapporterer resultatet af flere underoperationer uafhængigt — f.eks. en batch-flytning, hvor nogle elementer blev vellykkede og andre fejlede.

RFC 4918 ↗
208

Allerede rapporteret

Medlemmerne af en samling var allerede opført tidligere i svaret.

WebDAV: brugt inden for 207 Multi-Status-svar for at undgå gentagne lister over medlemmer af den samme samling, når bindinger skaber sløjfer.

RFC 5842 ↗
226

IM brugt

Svaret er resultatet af instansmanipulationer, der er anvendt på ressourcen.

Deltakodning: serveren returnerer en forskel mod en tidligere version i stedet for hele ressourcen, hvilket sparer båndbredde. Meget sjældent implementeret.

RFC 3229 ↗
300

Flere valg

Flere repræsentationer af ressourcen er tilgængelige.

Serveren tilbyder flere muligheder (f.eks. forskellige formater eller sprog), og klienten bør vælge en. Sjældent brugt, fordi automatisk indholdforhandling normalt håndterer det.

RFC 9110 ↗
301

Flyttet permanent

Ressourcen er permanent flyttet til en ny URL.

Brug ved permanente URL-ændringer — søgemaskiner opdaterer deres indeks. SEO-autoritet overføres til den nye URL.

RFC 9110 ↗
302

Fundet (midlertidig omdirigering)

Ressourcen er midlertidigt på en anden URL.

Angiver, at omdirigeringen ikke er permanent. Caching er mindre aggressiv end 301. Brug til ting som 'login påkrævet, omdirigerer til /login'.

RFC 9110 ↗
303

Se andet

Omdirigér til en anden URL ved hjælp af GET.

Bruges efter POST-indsendelser — svaret siger 'din POST blev gennnemført, se denne GET-URL for resultatet'. Browsere får altid den nye URL.

RFC 9110 ↗
304

Ikke ændret

Den cachede version er stadig gyldig; brug den.

Svar på en betinget anmodning (med If-None-Match eller If-Modified-Since headers). Sparer båndbredde — ingen brødtekst returneres.

RFC 9110 ↗
307

Midlertidig omdirigering

Som 302, men bevarer den oprindelige HTTP-metode.

Hvis originalen var POST, bruger omdirigeringen også POST. Moderne alternativ til 302, når metodebevaring betyder noget.

RFC 9110 ↗
308

Permanent omdirigering

Som 301, men bevarer den oprindelige HTTP-metode.

Moderne erstatning for 301, når du ønsker, at POST-anmodninger forbliver POST efter omdirigeringen.

RFC 9110 ↗
400

Dårlig forespørgsel

Serveren kunne ikke forstå anmodningen på grund af uformateret syntaks.

Almindelige årsager: uformateret JSON i brødtekst, ugyldige forespørgselsparametre eller manglende påkrævede felter. Kontroller anmodningens brødtekst og headers.

RFC 9110 ↗
401

Uautoriseret

Godkendelse er påkrævet og er ikke blevet leveret.

Klienten skal inkludere godkendelsesoplysninger (Authorization-header, cookie, token). 'Unauthorized' er en forkert betegnelse — det betyder virkelig 'ikke autentificeret'.

RFC 9110 ↗
402

Betaling påkrævet

Reserveret til fremtidig brug — bruges nogle gange til betalt API-niveauer.

Oprindeligt beregnet til digitale betalinger. Moderne brug: API'er returnerer nogle gange 402, når en bruger har overskredet sin betalte kvote.

RFC 9110 ↗
403

Forbudt

Klienten er godkendt, men har ikke tilladelse.

Anderledes end 401 — brugeren ER logget ind, men deres konto har ikke tilladelse til denne ressource. Kontroller rolle-/tilladelses logik.

RFC 9110 ↗
404

Ikke fundet

Den ønskede ressource eksisterer ikke.

Enten er URL'en forkert, ressourcen blev slettet, eller den eksisterede aldrig. Servere returnerer nogle gange 404 for at skjule, at en 403 ville være mere nøjagtig.

RFC 9110 ↗
405

Metode ikke tilladt

HTTP-metoden, der bruges, er ikke tilladt for denne ressource.

F.eks. en GET-anmodning til et slutpunkt, der kun accepterer POST. Svaret skal indeholde en Allow-header, der viser gyldige metoder.

RFC 9110 ↗
406

Ikke acceptabel

Ingen repræsentation matcher klientens Accept-headers.

Klienten anmodede om en indholdtype, sprog eller kodning (via Accept, Accept-Language, Accept-Encoding), som serveren ikke kan tilfredsstille. Mange servere springer streng forhandling over og returnerer i stedet en standard.

RFC 9110 ↗
407

Proxy-godkendelse påkrævet

Klienten skal først godkendes via proxy.

Som 401, men udstedt af en proxy: klienten skal sende Proxy-Authorization-oplysninger. Ses på virksomhedsnetværk med autentificering af proxyer.

RFC 9110 ↗
408

Anmodning timed out

Serveren nåede timeout mens den ventede på anmodningen.

Klienten brugte for lang tid på at sende anmodningsindholdet eller holdt forbindelsen inaktiv. Prøv anmodningen igen.

RFC 9110 ↗
409

Konflikt

Anmodningen konflikterer med ressourcens nuværende tilstand.

Returneres typisk for konflikter ved samtidigt redigering eller duplikering af ressourceoprettelse (f.eks. oprettelse af bruger med e-mail, der allerede findes).

RFC 9110 ↗
410

Væk

Ressourcen blev slettet og kommer ikke tilbage.

Stærkere end 404 — serveren ved eksplicit at ressourcen FANDTES tidligere, men er permanent fjernet. Søgemaskiner vil fjerne indekseringen.

RFC 9110 ↗
411

Længde påkrævet

Serveren kræver Content-Length-header.

Anmodningen blev afvist, fordi den manglede Content-Length-header, og serveren nægter indhold med ukendt størrelse. Tilføj headeren og prøv igen.

RFC 9110 ↗
412

Betingelse mislykkedes

En betingelse i anmodningshearaderne blev ikke opfyldt.

Returneres når betingede headere som If-Match eller If-Unmodified-Since fejler — typisk optimistisk låsning: nogen anden ændrede ressourcen siden din version. Hent igen og prøv.

RFC 9110 ↗
413

Payload for stor

Anmodningsindholdet overstiger serverens størrelsesbegrænsning.

Almindelig ved upload af store filer. Serverkonfiguration (nginx, apache) angiver maksimal brødstørrelse. Kontroller serverens konfiguration.

RFC 9110 ↗
414

URI for lang

Anmodnings-URL'en overstiger serverens længdebegrænsning.

Normalt forårsaget af meget lange forespørgselsstrenge (f.eks. kodning af data i en GET). Skift til POST-indhold, eller øg servergrænsen hvis du kontrollerer den.

RFC 9110 ↗
415

Ikke-understøttet medietype

Serveren kan ikke håndtere den sendte Content-Type.

F.eks. afsendelse af application/xml til en server, der kun accepterer application/json. Indstil Content-Type-headeren korrekt.

RFC 9110 ↗
416

Område kan ikke imødekommes

Det anmodet byteområde ligger uden for ressourcens størrelse.

Range-headeren anmoder om en del, som filen ikke har — f.eks. genoptagelse af download efter filens slutning. Svaret bør indeholde Content-Range med den faktiske størrelse.

RFC 9110 ↗
417

Forventning mislykkedes

Serveren kan ikke opfylde kravene i Expect-headeren.

Sendes når serveren ikke understøtter Expect: 100-continue. Nogle klienter sender denne header som standard på store POST'er; deaktivering løser normalt fejlen.

RFC 9110 ↗
418

Jeg er en tekande

Serveren nægter at lave kaffe, fordi den er en tekande.

En aprilsnarredag fra 1998 (RFC 2324). Nogle reelle API'er bruger det til vittigheder eller markerer deprecated endpoints. Ikke til produktionsbrug.

RFC 2324 ↗
421

Fejlrettet anmodning

Anmodningen blev sendt til en server, der ikke kan producere svar til den.

Almindelig med HTTP/2-forbindelsegenbrug: anmodningen nåede en server, der ikke er konfigureret til målhostnavnet. Klienten bør prøve igen på en ny forbindelse.

RFC 9110 ↗
422

Ubearbejdbart indhold

Anmodningen var syntaktisk korrekt, men semantisk forkert.

F.eks. JSON tolkedes korrekt, men et påkrævet felt manglede, eller en feltværdi var uden for området. Almindelig i REST API-valideringssvar.

RFC 9110 ↗
423

Låst

Ressourcen er låst.

WebDAV: kilde- eller destinationsressourcen er låst af en anden klient, så operationen kan ikke fortsætte. Vent på at låsen frigives eller bryd den med det korrekte token.

RFC 4918 ↗
424

Mislykkedes afhængighed

Anmodningen mislykkedes, fordi en tidligere afhængig anmodning mislykkedes.

WebDAV: i en kæde af afhængige operationer mislykkedes en tidligere handling, så denne blev ikke udført. Se på den tidligere fejl for rodårsagen.

RFC 4918 ↗
425

For tidligt

Serveren nægter at behandle en anmodning, der muligvis kan afspilles igen.

Relateret til TLS 1.3 0-RTT (tidlige data): serveren vil ikke risikere at behandle en muligvis afspillet anmodning. Klienten bør prøve igen efter handskaget afsluttes.

RFC 8470 ↗
426

Opgradering påkrævet

Klienten skal skifte til en anden protokol.

Serveren nægter at servere anmodningen over det aktuelle protokol, men vil gøre det efter en opgradering — svaret indeholder en Upgrade-header, der navngiver den påkrævede protokol.

RFC 9110 ↗
428

Betingelse påkrævet

Serveren kræver, at anmodningen er betinget.

Serveren kræver betingede headers (som If-Match) for at forhindre tabte opdateringskonflikter. Hent ressourcen, indfang dens ETag, og genafsendt med If-Match.

RFC 6585 ↗
429

For mange anmodninger

Klienten bliver rate-limited.

Sænk hastigheden. Svaret bør indeholde en Retry-After-header, der angiver hvornår du skal prøve igen. Almindelig med API'er, der har anmodningskvota.

RFC 6585 ↗
431

Anmodning header-felter for store

Headers er for store til, at serveren kan behandle dem.

Enten én header eller den samlede headerstørrelse overstiger grænsen — oftest forårsaget af oversized cookies. Ryd cookies eller reducer hvad din app gemmer i dem.

RFC 6585 ↗
451

Utilgængelig af juridiske årsager

Adgang nægtet på grund af juridiske krav.

Ressourcen er blokeret af juridiske årsager — censur, retskendelser eller regionale regler. Nummeret er en anspilling på romanen Fahrenheit 451.

RFC 7725 ↗
500

Intern serverfejl

Serveren stødte på en uventet tilstand.

En generisk samleordning for serverfejl. Kontroller serverlogfiler for den faktiske årsag: ubehandlet undtagelse, databasefejl osv.

RFC 9110 ↗
501

Ikke implementeret

Serveren understøtter ikke den anfordrede funktionalitet.

F.eks. serveren genkender ikke HTTP-metoden. Sjælden i praksis — hyppigere vil du se 405.

RFC 9110 ↗
502

Dårlig gateway

Serveren, der fungerer som gateway, fik et dårligt svar fra en upstream-server.

Almindelig i mikroservis-arkitekturer. Din load balancer eller reverse proxy fik et misdannet svar fra backend-tjenesten.

RFC 9110 ↗
503

Tjeneste utilgængelig

Serveren kan midlertidigt ikke håndtere anmodningen.

Enten nede til vedligeholdelse eller overbelastet. Svaret bør indeholde en Retry-After-header. Ofte returneret under udrulninger.

RFC 9110 ↗
504

Gateway-timeout

Gateway-serveren nåede timeout mens den ventede på et upstream-svar.

Backend-tjenesten svarede ikke hurtigt nok. Kontroller upstream-tjenestens sundhed og timeoutkonfigurationer.

RFC 9110 ↗
505

HTTP-version ikke understøttet

Serveren understøtter ikke den HTTP-version, der blev brugt i anmodningen.

Den større HTTP-version af anmodningen understøttes ikke af serveren. Næsten aldrig set med moderne klienter.

RFC 9110 ↗
506

Variant forhandler også

Serveren har en fejlkonfiguration af indholdsforhandling.

Transparent indholdsforbhandling endte i en loop: den valgte variant er selv konfigureret til at forhandle. Indikerer en serverkonfigurationsfejl.

RFC 2295 ↗
507

Utilstrækkelig lagring

Serveren er løbet tør for diskplads.

WebDAV-specifik i oprindelse, men nogle gange brugt af generelle servere. Betyder at serveren ikke kan gemme anmodningen på grund af lagerrestriktioner.

RFC 4918 ↗
508

Loop detekteret

Serveren detekterede en uendelig loop under behandling af anmodningen.

WebDAV: behandling af en Depth: infinity-anmodning gik ind i en loop (f.eks. cirkulære bindinger). Operationen blev afsluttet.

RFC 5842 ↗
510

Ikke udvidet

Yderligere udvidelser af anmodningen påkræves.

Fra det forældede HTTP Extension Framework: serveren har brug for mere information, før den kan opfylde anmodningen. Faktisk ubrugt på det moderne web.

RFC 2774 ↗
511

Netværksgodkendelse påkrævet

Klienten skal godkendes for at få adgang til netværket.

Bruges af captive portals (hotel/lufthavn WiFi) til at angive, at brugeren skal logge på netværket, før han kan få adgang til eksterne websteder.

RFC 6585 ↗

Almindelige anvendelser

  • Reference til API-designNår du designer REST API'er, vælg den rigtige statuskode til hvert svar.
  • Slå fejlkoder op hurtigtNår din app returnerer en forvirrende HTTP-fejl, slå op hvad det faktisk betyder.
  • Lær HTTP-statuskoderOmfattende reference til elever og udvikler der lærer HTTP og REST.
  • Hurtig reference under hændelserUnder produktions-hændelser, slå hurtigt op hvad hver statuskode betyder.
  • Referencereference for API-dokumentationNår du skriver API-dokumentation, link til autoriserede beskrivelser af de statuskoder, du returnerer.

Sådan fungerer det

Værktøjet er en opslagsbog på klientsiden bygget op om en fast opslagstabel over 63 HTTP-statuskoder fordelt på alle fem klasser (1xx–5xx), hver med nummeret på den RFC, der definerer den. Der er intet serverkald, intet eksternt API og ingen netværksforespørgsel — al filtrering og visning sker i browseren med JavaScripts indbyggede array- og strengmetoder.

  1. 1
    Opslagstabellen indlæses
    Hele sættet af 63 IANA-registrerede statuskoder er indlejret direkte i værktøjet som et JavaScript-array, hvor hver post har den numeriske kode, det kanoniske engelske navn, kategoriklassen og den specifikke RFC, der definerer den (f.eks. RFC 9110 for de fleste HTTP/1.1-koder, RFC 6585 for 429 Too Many Requests, RFC 2324 for 418 I'm a Teapot).
  2. 2
    Filtreringen kører i hukommelsen
    Mens du skriver eller vælger et kategorifilter, kører JavaScripts Array.filter på listen i hukommelsen og matcher din forespørgsel mod statuskodens nummer, det kanoniske navn og både den korte og lange beskrivelse med String.includes — ingen forsinkelse, ingen tur til en server.
  3. 3
    Detaljer foldes ud med RFC-link
    Hvert resultat vises som et HTML details/summary-element. Når du folder en post ud, vises den lange forklaring og et direkte link til den autoritative RFC på rfc-editor.org, så du kan læse den præcise specifikationstekst for enhver kode.
  4. 4
    Direkte links og kopiering til udklipsholder
    Når du åbner en post, opdateres URL-hashen til kodens nummer (f.eks. #404), så siden kan deles og bogmærkes. Kopiér-knappen skriver den kanoniske streng (f.eks. '404 Not Found') til udklipsholderen via browserens navigator.clipboard API.

Relaterede værktøjer

Ofte stillede spørgsmål