Web og HTTP
HTTP-statuskoder
Statuskoden er de tre cifre, serveren svarer med. Det første ciffer siger, hvilken slags svar det er: 2 betyder det gik godt, 3 at du skal et andet sted hen, 4 at du gjorde noget forkert, og 5 at serveren gjorde. Resten er detaljer.
Forudsætter, at du har set http-protokollen .
Første ciffer er hele historien
| Serie | Betyder | Hvem har problemet |
|---|---|---|
| 2xx | det lykkedes | ingen |
| 3xx | ligger et andet sted | ingen |
| 4xx | forespørgslen var forkert | dig |
| 5xx | serveren fejlede | dem |
Kan du den tabel, kan du gætte betydningen af en kode, du aldrig har set før. Til eksamen er skellet mellem 4xx og 5xx det, der oftest bliver spurgt til: 4xx er din fejl, 5xx er serverens.
De koder, du faktisk møder
200 OK: det gik. Svaret indeholder det, du bad om.
201 Created: noget blev oprettet. Svar på en vellykket POST.
204 No Content: det gik, men der er intet indhold. Typisk efter en DELETE.
301 Moved Permanently: siden er flyttet for altid. Browseren følger med og husker det.
302 Found: flyttet midlertidigt. Browseren følger med, men husker det ikke.
304 Not Modified: du har allerede den nyeste udgave i cachen; brug den.
400 Bad Request: serveren kunne ikke forstå det, du sendte. Ofte forkert formateret JSON eller et manglende felt.
401 Unauthorized: du er ikke logget ind. Navnet er misvisende; den handler om autentifikation.
403 Forbidden, du er logget ind, men må ikke det her.
404 Not Found, der er ikke noget på den adresse.
409 Conflict: det kolliderer med noget, der allerede findes.
429 Too Many Requests: du spørger for tit. Vent.
500 Internal Server Error: serveren gik ned. Du kan ikke gøre noget ved det.
503 Service Unavailable: serveren er nede eller overbelastet lige nu.
401 eller 403?
Det er den klassiske forvekslingsopgave, så her er huskeremsen: 401 = hvem er du? 403 = jeg ved, hvem du er, og nej. Første handler om at bevise identitet, anden om at have rettigheder.
Hvad du gør ved dem
- 4xx: ret din forespørgsel. Er adressen rigtig? Er metoden rigtig? Er
indholdet gyldig JSON? Mangler der en
Authorization-header? - 5xx: prøv igen om lidt, og vis brugeren en forståelig besked. Er det din egen server, ligger svaret i dens log.
- 3xx: som regel ingenting. Browseren og
fetchfølger selv med.
En brugbar vane i din egen kode: skriv statuskoden ud, når noget går galt. Det sparer meget gætteri.
Kort opsamling
- 2xx godt, 3xx flyttet, 4xx din fejl, 5xx deres.
- 401 er “ikke logget ind”, 403 er “ikke tilladt”.
- 404 er ikke en netværksfejl,
fetchkaster ikke. - Kig altid på koden, før du gætter på årsagen.
Læs videre
- HTTP-protokollen Hvad er HTTP? Forklaret på dansk: request og response, metoderne GET og POST, headers og hvorfor protokollen er tilstandsløs.
- fetch - hent data fra et API Sådan bruger du fetch i JavaScript til at hente data fra et API. Forklaret på dansk, med fejlhåndtering, statuskoder og de fælder alle falder i.
Senest gennemgået .