Saat Anda menggunakan Ajax (Asynchronous JavaScript and XML) untuk mengakses server tanpa memuat ulang halaman web, Anda memiliki dua pilihan tentang cara meneruskan informasi untuk permintaan ke server: GET atau POST.
Ini adalah dua opsi yang sama yang Anda miliki ketika mengirimkan permintaan ke server untuk memuat halaman baru, tetapi dengan dua perbedaan. Yang pertama adalah bahwa Anda hanya meminta sepotong kecil informasi daripada seluruh halaman web. Perbedaan kedua dan yang paling mencolok adalah karena permintaan Ajax tidak muncul di bilah alamat, pengunjung Anda tidak akan melihat perbedaan ketika permintaan dibuat.
Panggilan yang dilakukan menggunakan GET tidak akan mengekspos bidang dan nilainya di mana saja yang menggunakan POST tidak juga memaparkan ketika panggilan dilakukan dari Ajax.
Yang Tidak Harus Anda Lakukan
Jadi, bagaimana kita harus memilih mana dari dua alternatif ini yang harus digunakan?
Kesalahan yang mungkin dilakukan beberapa pemula adalah menggunakan GET untuk sebagian besar panggilan mereka hanya karena lebih mudah dari keduanya untuk membuat kode. Perbedaan yang paling mencolok antara panggilan GET dan POST di Ajax adalah bahwa panggilan GET masih memiliki batas yang sama pada jumlah data yang dapat dilewati seperti ketika meminta memuat halaman baru.
Satu-satunya perbedaan adalah karena Anda hanya memproses sejumlah kecil data dengan permintaan Ajax (atau setidaknya begitulah Anda harus menggunakannya), Anda jauh lebih kecil kemungkinannya untuk lari ke batas panjang ini dari dalam Ajax seperti yang Anda lakukan dengan memuat web lengkap halaman. Seorang pemula dapat memesan menggunakan permintaan POST untuk beberapa kasus di mana mereka perlu menyampaikan informasi lebih banyak yang memungkinkan metode GET.
Solusi terbaik ketika Anda memiliki banyak data untuk dilewati seperti itu adalah dengan membuat beberapa panggilan Ajax melewati beberapa informasi sekaligus. Jika Anda akan melewatkan sejumlah besar data semua dalam satu panggilan Ajax, Anda mungkin akan lebih baik hanya memuat ulang seluruh halaman karena tidak akan ada perbedaan signifikan dalam waktu pemrosesan ketika sejumlah besar data berada terlibat.
Jadi, jika jumlah data yang akan dikirimkan bukan alasan yang baik untuk memilih antara GET dan POST, lalu apa yang harus kita gunakan untuk memutuskan?
Kedua metode ini sebenarnya dibuat untuk tujuan yang sama sekali berbeda, dan perbedaan antara cara kerjanya sebagian karena perbedaan dalam apa mereka dimaksudkan untuk digunakan. Ini tidak hanya berlaku untuk menggunakan GET dan POST dari Ajax tetapi benar-benar di mana saja metode ini dapat digunakan.
Tujuan GET dan POST
GET digunakan sesuai namanya: untuk Dapatkan informasi. ini dimaksudkan untuk digunakan ketika Anda membaca informasi. Browser akan men-cache hasil dari permintaan GET dan jika permintaan GET yang sama dibuat lagi, mereka akan menampilkan hasil yang di-cache daripada menjalankan kembali seluruh permintaan.
Ini bukan cacat dalam pemrosesan browser; itu sengaja dirancang untuk bekerja seperti itu sehingga membuat panggilan GET lebih efisien. Panggilan GET hanya mengambil informasi; itu tidak dimaksudkan untuk mengubah informasi apa pun di server, itulah sebabnya meminta data lagi harus mengembalikan hasil yang sama.
Metode POST adalah untuk posting atau memperbarui informasi di server. Jenis panggilan ini diharapkan untuk mengubah data, itulah sebabnya hasil yang dikembalikan dari dua panggilan POST yang sama mungkin sangat berbeda satu sama lain. Nilai awal sebelum panggilan POST kedua akan berbeda dari nilai sebelum panggilan pertama karena panggilan awal akan memperbarui setidaknya beberapa nilai tersebut. Karena itu panggilan POST akan selalu mendapatkan respons dari server daripada menyimpan salinan respons sebelumnya yang di-cache.
Cara Memilih GET atau POST
Alih-alih memilih antara GET dan POST berdasarkan jumlah data yang Anda lewati dalam panggilan Ajax Anda, Anda harus memilih berdasarkan apa yang sebenarnya dilakukan oleh panggilan Ajax.
Jika panggilan tersebut untuk mengambil data dari server, maka gunakan GET. Jika nilai yang akan diambil diharapkan bervariasi dari waktu ke waktu sebagai akibat dari proses lain yang memperbaruinya, tambahkan parameter waktu saat ini ke apa yang Anda sampaikan dalam panggilan GET Anda sehingga panggilan-panggilan selanjutnya tidak akan menggunakan salinan hasil cache sebelumnya yang tidak lagi benar.
Gunakan POST jika panggilan Anda akan menulis data apa pun ke server.
Bahkan, Anda tidak hanya harus menggunakan kriteria ini untuk memilih antara GET dan POST untuk panggilan Ajax Anda, tetapi juga untuk saat memilih mana yang harus digunakan untuk memproses formulir di halaman web Anda.