Secara singkat
- Gunakan
GETuntuk safe andidempotentpermintaan
- Gunakan
POSTuntuk neither safe nor idempotentpermintaan
Secara rinci
Ada tempat yang tepat untuk masing-masing. Bahkan jika Anda tidak mengikuti prinsip-prinsip RESTful , banyak yang dapat diperoleh dari belajar tentang REST dan bagaimana pendekatan berorientasi sumber daya bekerja.
Aplikasi TENANG akan use GETsuntuk operasi yang keduanya safe and idempotent.
Sebuah safeoperasi adalah operasi yang tidak not change the datadiminta.
Sebuah idempotentoperasi adalah satu di mana hasilnya akan be the sametidak peduli berapa kali Anda memintanya.
Masuk akal bahwa, ketika GET digunakan untuk operasi yang aman, mereka secara otomatis juga idempoten . Biasanya GET digunakan untuk mengambil sumber daya (pertanyaan dan jawaban terkait pada stack overflow misalnya) atau kumpulan sumber daya.
Aplikasi yang tenang akan digunakan PUTsuntuk operasi not safe but idempotent.
Saya tahu pertanyaannya adalah tentang GET dan POST, tapi saya akan kembali ke POST sebentar lagi.
Biasanya PUT digunakan untuk mengedit sumber daya (mengedit pertanyaan atau jawaban pada stack overflow misalnya).
A POSTakan digunakan untuk operasi apa pun neither safe or idempotent.
Biasanya POST akan digunakan untuk membuat sumber daya baru misalnya membuat pertanyaan SO BARU (meskipun dalam beberapa desain PUT akan digunakan untuk ini juga).
Jika Anda menjalankan POST dua kali, pada akhirnya Anda akan membuat DUA pertanyaan baru.
Ada juga operasi DELETE, tapi saya kira saya bisa membiarkannya di sana :)
Diskusi
Secara praktis, peramban web modern biasanya hanya mendukung GET dan POST secara andal (Anda dapat melakukan semua operasi ini melalui panggilan javascript, tetapi dalam hal memasukkan data dalam bentuk dan menekan kirim, Anda biasanya memiliki dua opsi). Dalam aplikasi RESTful POST akan sering diganti untuk memberikan panggilan PUT dan DELETE juga.
Tetapi, bahkan jika Anda tidak mengikuti prinsip RESTful, akan berguna untuk berpikir dalam hal menggunakan GET untuk mengambil / melihat informasi dan POST untuk membuat / mengedit informasi.
Anda tidak boleh menggunakan GET untuk operasi yang mengubah data. Jika mesin pencari merayapi tautan ke operasi jahat Anda, atau bookmark klien itu bisa menimbulkan masalah besar.