Secara singkat
- Gunakan
GET
untuk safe and
idempotent
permintaan
- Gunakan
POST
untuk neither safe nor idempotent
permintaan
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 GETs
untuk operasi yang keduanya safe and idempotent
.
Sebuah safe
operasi adalah operasi yang tidak not change the data
diminta.
Sebuah idempotent
operasi adalah satu di mana hasilnya akan be the same
tidak 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 PUTs
untuk 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 POST
akan 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.