HTTP-anmodningsmetoder forklaret
HTTP definerer ni standardanmodningsmetoder, men det meste af den daglige trafik bruger kun nogle få. Tabellen forklarer hver metode, om den er sikker og idempotent, og hvilke koder et vellykket kald returnerer.
| Metode | Formål | Sikker? | Idempotent? | Successtatus |
|---|---|---|---|---|
| GET | Retrieve a resource | Yes | Yes | 200 OK |
| HEAD | Retrieve headers only, no body | Yes | Yes | 200 OK |
| POST | Create a resource or trigger an action | No | No | 201 Created |
| PUT | Replace a resource entirely | No | Yes | 200 OK / 204 No Content |
| PATCH | Apply a partial update | No | No | 200 OK |
| DELETE | Remove a resource | No | Yes | 200 OK / 204 No Content |
| OPTIONS | CORS preflight; list allowed methods | Yes | Yes | 204 / 200 OK |
| TRACE | Echo the request back for diagnostics | Yes | Yes | 200 OK |
| CONNECT | Open a tunnel, e.g. HTTPS via a proxy | No | No | 200 OK |
Noter
- Sikker betyder, at metoden aldrig ændrer serverens tilstand: kun GET, HEAD, OPTIONS og TRACE er sikre.
- Idempotent betyder, at gentagne kald giver samme resultat som ét kald: det gælder PUT, DELETE og GET, men ikke POST og PATCH.
- Når en route ikke accepterer en metode, svarer serveren 405 Method Not Allowed og inkluderer normalt en Allow-header.
Ofte stillede spørgsmål
- Hvad er forskellen på GET og POST?
- GET henter en ressource uden bivirkninger og kan gentages sikkert; parametrene sendes i URL'en. POST opretter noget eller udløser en handling, kan ændre tilstand og bør ikke gentages blindt.
- Hvad betyder det, at en HTTP-metode er sikker?
- En sikker metode ændrer aldrig serverens tilstand og kan derfor kaldes uden risiko. GET, HEAD, OPTIONS og TRACE er sikre; POST, PUT, PATCH og DELETE er det ikke.
- Hvad er forskellen på PUT og PATCH?
- PUT erstatter hele ressourcen med det, du sender; PATCH laver kun en delvis ændring af udvalgte felter. PUT er idempotent, gentagelse giver samme resultat; PATCH er det som regel ikke.
- Hvad bruges HEAD-metoden til?
- HEAD opfører sig som GET, men returnerer ikke noget svarindhold. Den er nyttig til at tjekke, om en ressource findes, dens størrelse eller headere, uden at hente hele indholdet.