HTTP-pyyntömetodit selitettyinä
HTTP määrittelee yhdeksän vakiopyyntömetodia, mutta suurin osa päivittäisestä liikenteestä käyttää vain muutamaa. Tämä taulukko selittää jokaisen metodin, onko se turvallinen ja idempotentti, sekä onnistuneen kutsun palauttamat koodit.
| Metodi | Tarkoitus | Turvallinen? | Idempotentti? | Onnistumisstatus |
|---|---|---|---|---|
| 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 |
Huomautukset
- Turvallinen tarkoittaa, että metodi ei koskaan muuta palvelimen tilaa: vain GET, HEAD, OPTIONS ja TRACE ovat turvallisia.
- Idempotentti tarkoittaa, että toistettu kutsu antaa saman tuloksen kuin yksi kutsu: PUT, DELETE ja GET täyttävät ehdon; POST ja PATCH eivät.
- Kun reitti ei hyväksy metodia, palvelin vastaa 405 Method Not Allowed ja sisällyttää yleensä Allow-otsikon.
Usein kysytyt kysymykset
- Mitä eroa on GET- ja POST-metodilla?
- GET hakee resurssin ilman sivuvaikutuksia ja sen voi toistaa turvallisesti; parametrit kulkevat URL-osoitteessa. POST luo jotain tai käynnistää toiminnon, voi muuttaa tilaa, eikä sitä pidä toistaa sokeasti.
- Mitä tarkoittaa, että HTTP-metodi on turvallinen?
- Turvallinen metodi ei koskaan muuta palvelimen tilaa, joten sitä voi kutsua ilman riskiä. GET, HEAD, OPTIONS ja TRACE ovat turvallisia; POST, PUT, PATCH ja DELETE eivät.
- Mitä eroa on PUT- ja PATCH-metodilla?
- PUT korvaa koko resurssin sillä, mitä lähetät; PATCH muuttaa vain valittuja kenttiä osittain. PUT on idempotentti, joten toisto antaa saman tuloksen; PATCH ei yleensä ole.
- Mihin HEAD-metodia käytetään?
- HEAD toimii kuin GET, mutta ei palauta vastauksen sisältöä. Sillä voi tarkistaa resurssin olemassaolon, koon tai otsikot lataamatta koko sisältöä.