Apa perbedaan antara POST dan PERMINTAAN HTTP PUT?

888

Mereka berdua sepertinya mengirim data ke server di dalam tubuh, jadi apa yang membuat mereka berbeda?

fuentesjr
sumber
1
Apakah ini menjawab pertanyaan Anda? PUT vs. POST di REST
Shaheen Zahedi

Jawaban:

893

PUT HTTP:

PUT menempatkan file atau sumber daya pada URI tertentu, dan tepat di URI itu. Jika sudah ada file atau sumber daya di URI itu, PUT menggantikan file atau sumber daya itu. Jika tidak ada file atau sumber daya di sana, PUT membuat satu. PUT idempoten , tetapi respons PUT yang paradoks tidak dapat di-cache.

HTTP 1.1 Lokasi RFC untuk PUT

HTTP POST:

POST mengirimkan data ke URI tertentu dan mengharapkan sumber daya di URI itu untuk menangani permintaan tersebut. Server web pada titik ini dapat menentukan apa yang harus dilakukan dengan data dalam konteks sumber daya yang ditentukan. Metode POST tidak idempoten , namun respons POST dapat disimpan dalam cache selama server menetapkan header Kontrol-Cache yang sesuai dan Kedaluwarsa.

HTTP RFC resmi menetapkan POST sebagai:

  • Penjelasan sumber daya yang ada;
  • Posting pesan ke papan buletin, newsgroup, milis, atau grup artikel serupa;
  • Memberikan blok data, seperti hasil pengiriman formulir, ke proses penanganan data;
  • Memperluas basis data melalui operasi penambahan.

HTTP 1.1 Lokasi RFC untuk POST

Perbedaan antara POST dan PUT:

RFC sendiri menjelaskan perbedaan inti:

Perbedaan mendasar antara permintaan POST dan PUT tercermin dalam arti berbeda dari Request-URI. URI dalam permintaan POST mengidentifikasi sumber daya yang akan menangani entitas terlampir. Sumber daya itu bisa berupa proses penerimaan data, gateway ke beberapa protokol lain, atau entitas terpisah yang menerima anotasi. Sebaliknya, URI dalam permintaan PUT mengidentifikasi entitas yang dilampirkan dengan permintaan - agen pengguna tahu apa yang dimaksud dengan URI dan server TIDAK HARUS mencoba menerapkan permintaan tersebut ke sumber daya lain. Jika server menginginkan agar permintaan diterapkan ke URI yang berbeda, itu HARUS mengirim respons 301 (Dipindahkan Secara Permanen); agen pengguna MUNGKIN kemudian membuat keputusan sendiri mengenai apakah akan mengarahkan permintaan atau tidak.

Selain itu, dan sedikit lebih ringkas, RFC 7231 Bagian 4.3.4 PUT menyatakan (penekanan ditambahkan),

4.3.4. TARUH

Metode PUT meminta status sumber daya target menjadi createdatau replaceddengan status yang ditentukan oleh representasi terlampir dalam muatan pesan permintaan.

Menggunakan metode yang benar, selain tidak terkait:

Satu keuntungan dari REST ROA vs SOAP adalah bahwa ketika menggunakan HTTP REST ROA, itu mendorong penggunaan yang tepat dari kata kerja HTTP / metode. Jadi misalnya Anda hanya akan menggunakan PUT ketika Anda ingin membuat sumber daya di lokasi yang tepat. Dan Anda tidak akan pernah menggunakan GET untuk membuat atau memodifikasi sumber daya.

Brian R. Bondy
sumber
1
Saya membaca dalam spesifikasi itu If the Request-URI does not point to an existing resource [...] the origin server *can* create the resource with that URI. Jadi implementasi PUT yang menolak untuk membuat sumber daya jika tidak ada akan benar, kan? Jika demikian, apakah ini terjadi dalam praktik? Atau implementasi biasanya juga buat di PUT?
houcros
1
beberapa pengecualian tambahan yang membuat perbedaannya sangat jelas ada di URL berikutnya - dzone.com/articles/put-vs-post
Ashish Shetkar
1
Yang tidak saya mengerti adalah bagaimana mengimplementasikan idempotency PUT. secara umum, sebagian besar API akan menggunakan pembuatan ID secara otomatis jika membuat sumber daya baru. dan di PUT, Anda harus membuat sumber daya jika tidak ada, tetapi gunakan ID yang ditentukan dalam URI, tetapi bagaimana Anda bisa melakukannya jika metode pembuatan id diatur menjadi otomatis ???
Roni Axelrad
1
Singkatnya: URI dalam permintaan POST mengidentifikasi sumber daya yang akan menangani entitas terlampir . URI dalam permintaan PUT mengidentifikasi entitas itu sendiri .
Drazen Bjelovuk
Respons terhadap metode POST tidak dapat di-cache, KECUALI responsnya mencakup bidang header Kontrol-Cache yang sesuai atau Kedaluwarsa
NattyC
211

Hanya semantik.

HTTP PUTseharusnya menerima isi permintaan, dan kemudian menyimpannya di sumber yang diidentifikasi oleh URI.

HTTP POSTlebih umum. Seharusnya memulai tindakan di server. Tindakan itu bisa menyimpan badan permintaan di sumber yang diidentifikasi oleh URI, atau bisa juga URI yang berbeda, atau bisa juga tindakan yang berbeda.

PUT seperti unggahan file. Put ke URI mempengaruhi persis URI itu. POST ke URI dapat memiliki efek sama sekali.

Jonathan Arkell
sumber
Itu yang menyiratkan fungsi tertentu mungkin tidak benar
TaylorMac 8'13
131

Untuk memberikan contoh sumber daya gaya REST:

"POST / buku" dengan banyak informasi buku mungkin membuat buku baru, dan merespons dengan URL baru yang mengidentifikasi buku itu: "/ buku / 5".

"PUT / books / 5" harus membuat buku baru dengan id 5, atau mengganti buku yang ada dengan ID 5.

Dalam gaya non-sumber daya, POST dapat digunakan untuk apa saja yang memiliki efek samping. Satu perbedaan lain adalah bahwa PUT harus idempoten - beberapa PUT dari data yang sama ke URL yang sama harus baik-baik saja, sementara beberapa POST dapat membuat beberapa objek atau apa pun yang dilakukan tindakan POST Anda.

bhollis
sumber
Hai Bhollis, Apa yang akan terjadi, jika saya menggunakan POST / buku / 5? akankah ia membuang sumber daya yang tidak ditemukan?
ChanGan
13
Saya merasa idempotensi adalah perbedaan yang paling menonjol dan penting antara PUT dan POST
Martin Andersson
1
Hai ChanGan, inilah penjelasan yang diberikan Wikipedia tentang kasus "POST / buku / 5" Anda: "Tidak digunakan secara umum. Perlakukan anggota yang dituju sebagai koleksi dengan haknya sendiri dan buat entri baru di dalamnya."
rdiachenko
jawaban ini memberi kesan bahwa PUT dan POST dapat didefinisikan pada sumber daya yang sama, namun perbedaan lain di samping idempotensi adalah siapa yang mengendalikan ruang ID. Di PUT, pengguna mengontrol ruang ID dengan membuat sumber daya dengan ID tertentu. Dalam POST, server mengembalikan ID yang harus dirujuk pengguna dalam panggilan berikutnya seperti GET. Di atas aneh karena campuran keduanya.
Tommy
74
  1. DAPATKAN : Mengambil data dari server. Seharusnya tidak memiliki efek lain.
  2. POST : Mengirim data ke server untuk membuat entitas baru. Sering digunakan saat mengunggah file atau mengirimkan formulir web.
  3. PUT : Mirip dengan POST, tetapi digunakan untuk mengganti entitas yang ada.
  4. PATCH : Mirip dengan PUT, tetapi digunakan untuk memperbarui hanya bidang tertentu dalam entitas yang ada.
  5. HAPUS : Menghapus data dari server.
  6. TRACE : Menyediakan cara untuk menguji apa yang diterima server. Itu hanya mengembalikan apa yang dikirim.
  7. OPSI : Memungkinkan klien untuk mendapatkan informasi tentang metode permintaan yang didukung oleh layanan. Header respons yang relevan adalah Diizinkan dengan metode yang didukung. Juga digunakan dalam CORS sebagai permintaan preflight untuk memberi tahu server tentang metode permintaan aktual dan bertanya tentang header khusus.
  8. KEPALA : Hanya mengembalikan header respons.
  9. CONNECT : Digunakan oleh browser ketika ia tahu itu berbicara ke proxy dan URI akhir dimulai dengan https: //. Maksud CONNECT adalah untuk memungkinkan sesi TLS terenkripsi ujung-ke-ujung, sehingga data tidak dapat dibaca oleh proxy.
Jonatan Dragon
sumber
9
jawaban singkat terbaik
vibs2006
Apakah CONNECT dipecat sebelum setiap permintaan saat menggunakan https?
variabel
66

PUT dimaksudkan sebagai metode untuk "mengunggah" barang ke URI tertentu, atau menimpa apa yang sudah ada dalam URI itu.

POST, di sisi lain, adalah cara mengirimkan data yang TERKAIT dengan URI yang diberikan.

Lihat HTTP RFC

Daniel Bruce
sumber
45

Sejauh yang saya tahu, PUT sebagian besar digunakan untuk memperbarui catatan.

  1. POST - Untuk membuat dokumen atau sumber daya lainnya

  2. PUT - Untuk memperbarui dokumen yang dibuat atau sumber daya lainnya.

Namun untuk lebih jelasnya, PUT biasanya 'Mengganti' catatan yang ada jika ada dan membuat jika tidak ada ..

ChanGan
sumber
1
Apa catatan dalam konteks ini? Pertanyaannya adalah tentang Permintaan HTTP.
Kishore
Apa yang akan dilakukan POST jika dokumen / sumber daya sudah ada? Apakah ini akan melempar kesalahan, atau hanya akan baik-baik saja?
Aditya Pednekar
Berdasarkan sebagian besar dari apa yang saya baca PUT dapat membuat juga.
aderchox
19

Orang lain telah memposting jawaban yang sangat baik, saya hanya ingin menambahkan bahwa dengan sebagian besar bahasa, kerangka kerja, dan kasus penggunaan Anda akan berurusan dengan POST jauh lebih sering daripada PUT. Sampai-sampai PUT, DELETE, dll. Pada dasarnya adalah pertanyaan-pertanyaan sepele.

Jason Morrison
sumber
15

Silakan lihat: http://zacharyvoase.com/2009/07/03/http-post-put-diff/

Akhir-akhir ini saya agak terganggu oleh kesalahpahaman populer oleh pengembang web bahwa POST digunakan untuk membuat sumber daya, dan PUT digunakan untuk memperbarui / mengubahnya.

Jika Anda melihat halaman 55 RFC 2616 ("Hypertext Transfer Protocol - HTTP / 1.1"), Bagian 9.6 ("PUT"), Anda akan melihat untuk apa PUT sebenarnya:

Metode PUT meminta entitas terlampir disimpan di bawah Request-URI yang disediakan.

Ada juga paragraf praktis untuk menjelaskan perbedaan antara POST dan PUT:

Perbedaan mendasar antara permintaan POST dan PUT tercermin dalam arti berbeda dari Request-URI. URI dalam permintaan POST mengidentifikasi sumber daya yang akan menangani entitas terlampir. Sumber daya itu bisa berupa proses penerimaan data, gateway ke beberapa protokol lain, atau entitas terpisah yang menerima anotasi. Sebaliknya, URI dalam permintaan PUT mengidentifikasi entitas yang dilampirkan dengan permintaan - agen pengguna tahu apa yang dimaksud dengan URI dan server TIDAK HARUS mencoba menerapkan permintaan tersebut ke sumber daya lain.

Itu tidak menyebutkan apa-apa tentang perbedaan antara memperbarui / membuat, karena bukan itu tentang. Ini tentang perbedaan antara ini:

obj.set_attribute(value) # A POST request.

Dan ini:

obj.attribute = value # A PUT request.

Jadi tolong, hentikan penyebaran kesalahpahaman populer ini. Baca RFC Anda.

Najeebul Hasan
sumber
13
Ini sepertinya tidak sopan, dan pedantic dengan cara yang kurang bermanfaat. Dalam contoh PUT yang Anda kutip, entitas baru, dalam api ISTIRAHAT, catatan 'baru' - dan dapat diakses di lokasi itu. Ini dipertanyakan apakah ini pilihan desain yang baik untuk memungkinkan sub-anggota dapat berubah seperti itu (saya pikir itu tidak ideal), tetapi bahkan jika itu, Anda menggunakan subspesies untuk menyerang banyak informasi yang berguna. Sebagian besar waktu, deskripsi seperti yang biasanya dinyatakan adalah pernyataan yang baik dari konten RFC, dirangkum, dan pernyataan tentang praktik yang biasa dan kebiasaan. Juga, tidak ada salahnya Anda bersikap sopan.
tooluser
3
Ini tidak dapat cukup dibatalkan. PUT tidak memiliki tempat di API REST. Sebagian besar waktu, POST menunjukkan semantik yang benar.
Beefster
Tidak dikatakan dengan baik, tetapi memang interpretasi yang akurat tentang RFC. Dunia pengembang web sepertinya adalah rawa informasi yang keliru.
William T Froggard
@Beefster Tidak ada yang namanya 'POST Menunjukkan'. Najeebul membuat poin bagus di sini. Bagaimana Anda mengetahui apa yang ditunjukkannya? kecuali bahwa Anda hanya menggunakannya karena Anda selalu menggunakannya seperti itu sejak hari pertama Anda mempelajarinya tetapi tidak benar-benar tahu mengapa Anda harus menggunakannya dibandingkan dengan yang lain?
Mosia Thabo
12

POST dianggap sesuatu dari metode jenis pabrik. Anda memasukkan data dengannya untuk membuat apa yang Anda inginkan dan apa pun yang ada di ujung sana tahu apa yang harus dilakukan dengannya. PUT digunakan untuk memperbarui data yang ada di URL yang diberikan, atau untuk membuat sesuatu yang baru ketika Anda tahu akan seperti apa URI dan itu belum ada (sebagai lawan dari POST yang akan membuat sesuatu dan mengembalikan URL ke jika perlu).

pengguna12786
sumber
10

REST meminta pengembang untuk menggunakan metode HTTP secara eksplisit dan dengan cara yang konsisten dengan definisi protokol. Prinsip desain REST dasar ini menetapkan pemetaan satu-ke-satu antara membuat, membaca, memperbarui, dan menghapus operasi (CRUD) dan metode HTTP. Menurut pemetaan ini:

• Untuk membuat sumber daya di server, gunakan POST.

• Untuk mengambil sumber daya, gunakan GET.

• Untuk mengubah status sumber daya atau memperbaruinya, gunakan PUT.

• Untuk menghapus atau menghapus sumber daya, gunakan HAPUS.

Info lebih lanjut: Layanan web RESTful: Dasar-dasar dari IBM

Long Nguyen
sumber
Saya pikir Anda memiliki PUT dan POST mundur
Beefster
@Beefster Posting untuk dibuat, Put to update, apakah itu benar?
Long Nguyen
Tidak. PUT adalah untuk benar-benar menempatkan konten literal di URL dan jarang menempatkannya dalam REST API. POST lebih abstrak dan mencakup segala jenis penambahan konten yang tidak memiliki semantik "Letakkan file ini di URL ini".
Beefster
7

Seharusnya cukup mudah ketika menggunakan satu atau yang lain, tetapi kata-kata yang kompleks adalah sumber kebingungan bagi banyak dari kita.

Kapan menggunakannya:

  • Gunakan PUTsaat Anda ingin memodifikasi sumber daya tunggal yang sudah menjadi bagian dari pengumpulan sumber daya. PUTmenggantikan sumber daya secara keseluruhan. Contoh:PUT /resources/:resourceId

    Sidenote: Gunakan PATCHjika Anda ingin memperbarui bagian dari sumber daya.


  • Gunakan POSTsaat Anda ingin menambahkan sumber daya anak di bawah kumpulan sumber daya.
    Contoh:POST => /resources

Secara umum:

  • Secara umum, dalam praktiknya, selalu gunakan PUTuntuk operasi UPDATE .
  • Selalu gunakan POSTuntuk operasi BUAT .

Contoh:

GET / perusahaan / laporan => Dapatkan semua laporan
GET / perusahaan / laporan / {id} => Dapatkan informasi laporan diidentifikasi oleh "id"
POST / perusahaan / laporan => Buat laporan baru
PUT / perusahaan / laporan / {id} baru => Perbarui melaporkan informasi yang diidentifikasi oleh "id"
PATCH / perusahaan / laporan / {id} => Perbarui bagian dari informasi laporan yang diidentifikasi oleh "id"
DELETE / perusahaan / laporan / {id} => Hapus laporan dengan "id"

Dzenis H.
sumber
4

Perbedaan antara POST dan PUT adalah bahwa PUT idempoten, itu berarti, memanggil permintaan PUT yang sama beberapa kali akan selalu menghasilkan hasil yang sama (yang tidak ada efek samping), sementara di sisi lain, memanggil permintaan POST berulang kali mungkin terjadi ( tambahan) efek samping dari menciptakan sumber daya yang sama beberapa kali.

GET : Permintaan menggunakan GET hanya mengambil data, yaitu meminta representasi dari sumber yang ditentukan

POST: Ini mengirim data ke server untuk membuat sumber daya. Jenis isi permintaan ditunjukkan oleh header Jenis-Konten. Ini sering menyebabkan perubahan status atau efek samping pada server

PUT : Membuat sumber daya baru atau mengganti representasi dari sumber daya target dengan payload permintaan

PATCH : Ini digunakan untuk menerapkan modifikasi parsial ke sumber daya

DELETE : Ini menghapus sumber daya yang ditentukan

TRACE : Ini melakukan tes loop-back pesan di sepanjang jalan ke sumber daya target, menyediakan mekanisme debugging yang berguna

OPTIONS : Ini digunakan untuk menggambarkan opsi komunikasi untuk sumber daya target, klien dapat menentukan URL untuk metode PILIHAN, atau tanda bintang (*) untuk merujuk ke seluruh server.

HEAD : Ia meminta respons yang identik dengan permintaan GET, tetapi tanpa badan respons

CONNECT : Ini membangun terowongan ke server yang diidentifikasi oleh sumber daya target, dapat digunakan untuk mengakses situs web yang menggunakan SSL (HTTPS)

irfan
sumber
2

Penggunaan ISTIRAHAT

POST digunakan untuk membuat sumber daya baru dan kemudian mengembalikan sumber daya tersebut URI

EX 
      REQUEST : POST ..../books
        {
        "book":"booName",
        "author":"authorName"
        }

Panggilan ini dapat membuat buku baru dan mengembalikan buku itu URI

Response ...THE-NEW-RESOURCE-URI/books/5

PUT digunakan untuk mengganti sumber daya, jika sumber daya itu ada maka cukup perbarui itu, tetapi jika sumber daya itu tidak ada maka buat itu,

REQUEST : PUT ..../books/5
{
"book":"booName",
"author":"authorName"
}

Dengan PUTkami tahu pengidentifikasi sumber daya, tetapi POSTakan mengembalikan pengidentifikasi sumber daya baru

Penggunaan non-ISTIRAHAT

POST digunakan untuk memulai tindakan di sisi server, tindakan ini mungkin atau tidak dapat membuat sumber daya, tetapi tindakan ini akan memiliki sisi yang mempengaruhi selalu akan mengubah sesuatu di server

PUT digunakan untuk menempatkan atau mengganti konten literal di URL tertentu

Perbedaan lain dalam gaya REST-ful dan non-REST-ful

POST adalah Operasi Non-Idempoten: Ini akan menyebabkan beberapa perubahan jika dijalankan beberapa kali dengan permintaan yang sama.

PUT adalah Operasi Idempoten: Tidak akan memiliki efek samping jika dijalankan beberapa kali dengan permintaan yang sama.

Basilika Melad
sumber
1

Perlu disebutkan bahwa POSTada beberapa serangan Pemalsuan Permintaan Situs Web (CSRF) yang umum terjadi sementara PUTtidak.

CSRF di bawah ini tidak mungkin dilakukanPUT ketika korban mengunjungi attackersite.com.

The efek serangan adalah bahwa korban tidak sengaja menghapus pengguna hanya karena (korban) telah log-in sebagai adminon target.site.com, sebelum mengunjungi attackersite.com:

Permintaan normal (cookie dikirim): ( PUTbukan nilai atribut yang didukung)

Kode pada attackersite.com:

<form id="myform" method="post" action="http://target.site.com/deleteUser" >
    <input type="hidden" name="userId" value="5">
</form>
<script>document.createElement('form').submit.call(document.getElementById('myform'));</script>

Permintaan XHR (cookie dikirim): ( PUTakan memicu permintaan preflight, yang responsnya akan mencegah browser meminta deleteUserhalaman)

var xhr = new XMLHttpRequest();
xhr.open("POST", "http://target.site.com/deleteUser");
xhr.withCredentials=true;
xhr.send(["userId=5"]);
Marinos An
sumber
1

Dengan kata sederhana, Anda dapat mengatakan:

1.HTTP Get: Digunakan untuk mendapatkan satu atau lebih item

2.HTTP Post: Digunakan untuk membuat item

3.HTTP Put: Digunakan untuk memperbarui suatu item

4.HTTP Patch: Digunakan untuk memperbarui sebagian item

5.HTTP Delete: Digunakan untuk menghapus item

Prateek Gupta
sumber
0

Sebenarnya tidak ada perbedaan selain gelar mereka. Sebenarnya ada perbedaan mendasar antara GET dan yang lainnya. Dengan metode "MENDAPAT" -Request, Anda mengirim data dalam url-address-line, yang dipisahkan terlebih dahulu dengan tanda tanya, dan kemudian dengan tanda &.

Tetapi dengan metode "POST" -meminta, Anda tidak bisa meneruskan data melalui url, tetapi Anda harus meneruskan data sebagai objek di "badan" permintaan. Di sisi server, Anda harus membaca isi dari konten yang diterima untuk mendapatkan data yang dikirim. Tetapi di sisi lain tidak ada kemungkinan untuk mengirim konten di dalam tubuh, ketika Anda mengirim "MENDAPATKAN" -Minta.

Klaim, bahwa "GET" hanya untuk mendapatkan data dan "POST" adalah untuk memposting data, sama sekali salah. Tidak ada yang dapat mencegah Anda membuat konten baru, menghapus konten yang ada, mengedit konten yang ada, atau melakukan apa pun di backend, berdasarkan data, yang dikirim oleh permintaan "GET" atau dengan permintaan "POST". Dan tidak ada yang bisa mencegah Anda untuk mengkodekan backend dengan cara, bahwa dengan "POST" - Permintaan, klien meminta beberapa data.

Dengan permintaan, apa pun metode yang Anda gunakan, Anda memanggil URL dan mengirim atau tidak mengirim beberapa data untuk menentukan, informasi mana yang ingin Anda sampaikan ke server untuk menangani permintaan Anda, dan kemudian klien mendapat jawaban dari server. Data dapat berisi apa pun yang ingin Anda kirim, backend diizinkan melakukan apa pun yang diinginkan dengan data dan respons dapat berisi informasi apa pun, yang ingin Anda masukkan ke sana.

Hanya ada dua METODE DASAR ini. DAPATKAN dan POST. Tapi struktur mereka, yang membuat mereka berbeda dan bukan apa yang Anda kode di backend. Di backend Anda dapat kode apa pun yang Anda inginkan, dengan data yang diterima. Tetapi dengan "POST" - permintaan Anda harus mengirim / mengambil data di tubuh dan tidak di url-addressline, dan dengan permintaan "GET", Anda harus mengirim / mengambil data di url-addressline dan tidak di tubuh. Itu saja.

Semua metode lain, seperti "PUT", "HAPUS" dan seterusnya, mereka memiliki struktur yang sama dengan "POST".

Metode POST terutama digunakan, jika Anda ingin sedikit menyembunyikan konten, karena apa pun yang Anda tulis di url-addressline, ini akan disimpan dalam cache dan GET-Method sama dengan menulis url-addressline dengan data. Jadi jika Anda ingin mengirim data sensitif, yang tidak selalu harus nama pengguna dan kata sandi, tetapi misalnya beberapa id atau hash, yang Anda tidak ingin ditampilkan di url-address-line, maka Anda harus menggunakan metode POST .

Panjang URL-Addressline juga terbatas pada 1024 simbol, sedangkan "POST" -Metode tidak dibatasi. Jadi, jika Anda memiliki jumlah data yang lebih besar, Anda mungkin tidak dapat mengirimkannya dengan Permintaan-GET, tetapi Anda harus menggunakan Permintaan-POST. Jadi ini juga merupakan nilai tambah bagi permintaan POST.

Tetapi menangani permintaan GET jauh lebih mudah, ketika Anda tidak memiliki teks yang rumit untuk dikirim. Jika tidak, dan ini merupakan nilai tambah lain untuk metode POST, adalah, bahwa dengan metode GET Anda perlu menyandikan url teks, agar dapat mengirim beberapa simbol di dalam teks atau bahkan spasi. Tetapi dengan metode POST Anda tidak memiliki batasan dan konten Anda tidak perlu diubah atau dimanipulasi dengan cara apa pun.

HA
sumber
0

Baik PUT dan POST adalah Metode Istirahat.

PUT - Jika kami membuat permintaan yang sama dua kali menggunakan PUT menggunakan parameter yang sama dua kali, permintaan kedua tidak akan berpengaruh. Inilah sebabnya mengapa PUT umumnya digunakan untuk skenario Pembaruan, memanggil Pembaruan lebih dari sekali dengan parameter yang sama tidak melakukan apa-apa lebih dari panggilan awal sehingga PUT idempoten.

POST bukan idempoten, misalnya Buat akan membuat dua entri terpisah ke target maka itu bukan idempoten sehingga CREATE digunakan secara luas di POST.

Melakukan panggilan yang sama menggunakan POST dengan parameter yang sama setiap kali akan menyebabkan dua hal berbeda terjadi, maka mengapa POST umumnya digunakan untuk skenario Buat

karthik kasubha
sumber