A HTTP-kérésmódszerek magyarázata
A HTTP kilenc szabványos kérésmódszert definiál, de a mindennapi forgalom csak néhányat használ közülük. Ez a táblázat elmagyarázza mindegyik módszert, hogy biztonságos-e és idempotens-e, és milyen kódokat ad vissza egy sikeres hívás.
| Módszer | Rendeltetés | Biztonságos? | Idempotens? | Sikeres állapot |
|---|---|---|---|---|
| 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 |
Megjegyzések
- Biztonságos azt jelenti, hogy a metódus soha nem változtatja meg a szerver állapotát: csak a GET, HEAD, OPTIONS és TRACE az.
- Idempotens azt jelenti, hogy a hívás megismétlése ugyanazt az eredményt adja, mint az egyszeri hívás: a PUT, DELETE és GET teljesíti ezt; a POST és PATCH nem.
- Ha egy útvonal nem fogad el egy metódust, a szerver 405 Method Not Allowed választ ad, és általában Allow fejlécet is küld.
Gyakori kérdések
- Mi a különbség a GET és a POST között?
- A GET mellékhatások nélkül kér le egy erőforrást, és biztonságosan megismételhető; a paraméterek az URL-ben utaznak. A POST létrehoz valamit vagy elindít egy műveletet, módosíthatja az állapotot, és nem szabad vakon megismételni.
- Mit jelent az, hogy egy HTTP-metódus biztonságos?
- A biztonságos metódus soha nem módosítja a szerver állapotát, ezért kockázat nélkül hívható. Biztonságos a GET, HEAD, OPTIONS és TRACE; a POST, PUT, PATCH és DELETE nem.
- Mi a különbség a PUT és a PATCH között?
- A PUT a teljes erőforrást lecseréli arra, amit küld; a PATCH csak a kiválasztott mezőket módosítja részlegesen. A PUT idempotens, megismételve ugyanazt az eredményt adja; a PATCH általában nem.
- Mire való a HEAD-metódus?
- A HEAD úgy viselkedik, mint a GET, de nem ad vissza választörzset. Hasznos annak ellenőrzésére, hogy létezik-e egy erőforrás, mekkora, vagy mik a fejlécei, anélkül hogy letöltené a teljes tartalmat.