Pada tahap awal mempelajari JavaWeb, setiap orang akan menemukan metode doGet dan doPost di HttpServlet. Saya membaca "Head First Servlets & JSP" dua hari yang lalu dan melihat bahwa ini berbicara tentang perbedaan antara permintaan get dan permintaan posting di Servlets. Saya merangkumnya sebagai berikut:
1: Ukuran data yang diminta berbeda.
Karena data yang diminta oleh get ditambahkan ke URL, dan ukuran data URL umumnya tidak boleh melebihi 2K, ada batasan ukuran data yang menggunakan metode permintaan get. Metode post request menempatkan data di badan pesan, jadi secara teori tidak ada batasan jumlah data. (Tapi itu tidak boleh terlalu besar dalam pengoperasian sebenarnya)
2: Keamanannya berbeda
Karena data yang diminta oleh get ditambahkan ke URL, pengguna eksternal dapat dengan mudah melihatnya. Dari sudut pandang ini, ini tidak aman. Metode post menempatkan permintaan di badan pesan dan tidak akan ditampilkan langsung di URL, sehingga dari sudut pandang ini data akan lebih aman.
3: Pembuatan penanda
Dapatkan permintaan dapat membuat bookmark; permintaan posting tidak bisa. Misalnya: Anda memiliki halaman yang memungkinkan pengguna menentukan aturan pencarian. Pengguna mungkin akan kembali seminggu kemudian dan ingin mendapatkan data asli, namun saat ini ada data baru di server.
4: Penggunaan metode
get digunakan untuk mendapatkan sesuatu, sekedar akuisisi sederhana, tanpa melakukan perubahan apa pun pada server. Posting berarti pengguna mengirimkan data untuk diproses dan dapat mengubah data di server.
5: Apakah permintaan tersebut idempoten?
Permintaan get bersifat idempoten, hanya menerima sesuatu dan tidak mengubah konten di server. Dapat dilakukan berkali-kali tanpa efek samping yang buruk. Postingan tersebut tidak idempoten, dan data yang dikirimkan di badan postingan dapat digunakan untuk transaksi yang tidak dapat diubah. Jadi dari sudut pandang ini, Anda harus menggunakan fungsi doPost() dengan hati-hati.
Jika metode = "POST" tidak ditentukan dalam formulir, maka secara default akan menggunakan permintaan HTTP GET. Artinya, status defaultnya adalah memanggil permintaan get.
Pada tahap awal mempelajari JavaWeb, setiap orang akan menemukan metode doGet dan doPost di HttpServlet.
(1) Metode doGet: terutama menangani permintaan Dapatkan dalam Http (2) Metode doPost: terutama menangani permintaan Posting dalam Http
Jadi apa perbedaan antara Dapatkan permintaan dan permintaan Posting?
(1) get hanya memiliki satu aliran. Parameter ditambahkan ke url. Jumlah parameter sangat dibatasi dan hanya dapat berupa string
(2) Parameter postingan dilewatkan melalui aliran lain, bukan melalui URL, sehingga bisa sangat besar, dan data biner juga dapat diteruskan, seperti unggahan file.
Kapan menggunakan metode doGet dan doPost:
1. Untuk servlet yang dikirimkan melalui form, lihat apakah metode formnya get atau post.
2. servlet diakses melalui link <a href...>, doGet
3. Ketikkan alamat servlet langsung di bilah alamat IE, doGet