POST
Metode HTTP
Spesifikasi metode HTTP POST
Metode POST meminta sumber daya target untuk memproses representasi yang dilampirkan dalam permintaan sesuai dengan semantik spesifik sumber daya tersebut. Sebagai contoh, POST digunakan untuk fungsi-fungsi berikut ini (antara lain):
Memberikan blok data, seperti bidang yang dimasukkan ke dalam formulir HTML, ke proses penanganan data;
Mengirimkan pesan ke papan buletin, grup berita, milis, blog, atau kelompok artikel serupa;
Membuat sumber daya baru yang belum diidentifikasi oleh server asal; dan
Menambahkan data ke representasi sumber daya yang sudah ada.
Server asal mengindikasikan semantik respons dengan memilih kode status yang sesuai, bergantung pada hasil pemrosesan permintaan POST; hampir semua kode status yang ditentukan oleh spesifikasi ini dapat diterima sebagai respons terhadap POST (pengecualiannya adalah 206 (Konten Parsial), 304 (Tidak Dimodifikasi), dan 416 (Rentang Tidak Dapat Dipenuhi)).
Jika satu atau beberapa sumber daya telah dibuat di server asal sebagai hasil dari keberhasilan pemrosesan permintaan POST, server asal HARUS mengirimkan respons 201 (Dibuat) yang berisi bidang header Lokasi yang menyediakan pengenal untuk sumber daya utama yang dibuat (Bagian 7.1.2) dan representasi yang menjelaskan status permintaan saat merujuk ke sumber daya baru.
Respons terhadap permintaan POST hanya dapat di-cache jika menyertakan informasi kesegaran eksplisit (lihat Bagian 4.2.1 dari [RFC7234]). Namun, POST caching tidak diimplementasikan secara luas. Untuk kasus-kasus di mana server asal menginginkan klien untuk dapat men-cache hasil POST dengan cara yang dapat digunakan kembali oleh GET di kemudian hari, server asal MUNGKIN mengirimkan respons 200 (OK) yang berisi hasil dan bidang header Content-Location yang memiliki nilai yang sama dengan URI permintaan efektif POST (Bagian 3.1.4.2).
Jika hasil pemrosesan POST setara dengan representasi sumber daya yang ada, server asal MUNGKIN mengarahkan agen pengguna ke sumber daya tersebut dengan mengirimkan respons 303 (Lihat Lainnya) dengan pengenal sumber daya yang ada di bidang Lokasi. Hal ini memiliki manfaat untuk memberikan pengenal sumber daya kepada agen pengguna dan mentransfer representasi melalui metode yang lebih cocok untuk cache bersama, meskipun dengan biaya permintaan tambahan jika agen pengguna belum memiliki representasi yang di-cache.
Deskripsi metode POST
Contoh untuk metode HTTP POST
POST /data HTTP/1.1
Host: api.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537
Accept: application/json
Accept-Language: de-DE,de;q=0.5
Content-Type: application/json
Content-Length: 100
Connection: keep-alive
Request body:
{
"key": "value",
"foo": "bar"
}
Content-Type: application/json
Date: Mon, 31 July 2023 14:58:12 GMT
Server: Apache/2.4.7 (Ubuntu)
Cache-Control: no-cache
Location: http://api.example.com/data/123
Response body:
{
"status": "success",
"id": 123
}