Artikel ini memperkenalkan berbagai metode untuk berinteraksi dengan server. Nama lengkap URL adalah deskriptor sumber daya. Meningkatkan, Meningkatkan, Meningkatkan, Meningkatkan, Meningkatkan, Meningkatkan, Meningkatkan, Meningkatkan, Menambah, Menambah, Menambah, Menambah, Menambah, Meningkatkan, Meningkatkan, Meningkatkan, Meningkatkan, Meningkatkan, Meningkatkan, Meningkatkan, Meningkatkan, Menambah, Menambah, Meningkatkan, Meningkatkan, Meningkatkan, Meningkatkan, Meningkatkan, Meningkatkan, Meningkatkan, Meningkatkan, Meningkatkan, Meningkatkan, Meningkatkan, Meningkatkan, Meningkatkan, Meningkatkan, Meningkatkan, Meningkatkan, Menambahkan, Meningkatkan, Menghapus 4 Operasi. Pada titik ini, setiap orang harus memiliki pemahaman umum.
1. Menurut spesifikasi HTTP, GET digunakan untuk akuisisi informasi, dan harus aman dan berkuasa.
(1). Dengan kata lain, dapatkan permintaan umumnya tidak boleh menghasilkan efek samping. Dengan kata lain, itu hanya mendapatkan informasi sumber daya, seperti halnya kueri database, itu tidak akan memodifikasi, meningkatkan data, dan tidak akan mempengaruhi status sumber daya.
* Catatan: Arti keamanan di sini hanya mengacu pada informasi yang tidak dimodifikasi.
(2). Di sini saya akan menjelaskan konsep mi tunggu:
Idempotent dan idempotnce adalah konsep matematika atau komputer, umumnya dalam aljabar abstrak.
Tunggu beberapa definisi:
Untuk operasi monokular, jika suatu operasi sama untuk hasil perhitungan operasi operasi dan hasil perhitungan operasi, maka hasil operasi sama dengan hasil operasi. Misalnya, operasi nilai absolut adalah contoh.
Untuk operasi binokular, jika dua nilai operasi yang berpartisipasi sama, jika hasil perhitungan sama dengan dua nilai operasi yang berpartisipasi, kekuatan operasi disebut fungsi, ada daya terkonsentrasi dalam bilangan real, yaitu, maks (x, x) = x.
Setelah membaca penjelasan di atas, Anda harus memahami arti mendapatkan kekuatan.
Tetapi dalam aplikasi praktis, dua ketentuan di atas tidak begitu ketat. Contoh mengutip artikel orang lain: misalnya, halaman depan situs berita terus diperbarui. Meskipun permintaan kedua akan mengembalikan berbagai berita, operasi masih dianggap aman dan berkuasa, karena selalu mengembalikan berita saat ini. Pada dasarnya, jika tujuannya adalah ketika pengguna membuka tautan, ia dapat yakin bahwa ia tidak dapat mengubah sumber daya dari perspektifnya sendiri.
2. Menurut spesifikasi HTTP, POST menunjukkan bahwa permintaan untuk mengubah sumber daya pada server dapat memodifikasi sumber daya di server. Terus mengutip contoh di atas: Masih mengambil berita sebagai contoh.
Di atas pembicaraan di atas tentang beberapa prinsip GET dan POST dalam spesifikasi HTTP. Namun, dalam melakukan aktual, banyak orang belum melakukannya sesuai dengan spesifikasi HTTP.
1. Banyak orang serakah dan nyaman.
2. Untuk peningkatan, hapus, ubah, periksa operasi, Anda benar -benar dapat menyelesaikannya melalui GET/POST tanpa menggunakan put dan hapus.
3. Yang lainnya adalah bahwa perancang kerangka kerja Web MVC awal tidak secara sadar memperlakukan URL sebagai sumber daya abstrak, jadi masalah yang lebih serius adalah bahwa kerangka kerja MVC web tradisional pada dasarnya hanya mendukung Get dan pasca dua metode HTTP tidak didukung oleh put dan hapus.
* Cukup jelaskan MVC: MVC yang awalnya ada dalam program desktop. Tujuan menggunakan MVC adalah untuk memisahkan kode implementasi M dan V, sehingga program yang sama dapat menggunakan bentuk ekspresi yang berbeda.
3 poin menggambarkan set gaya lama (tanpa kepatuhan yang ketat dengan spesifikasi HTTP).
Setelah berbicara tentang alasan aslinya, kita melihat perbedaan antara Get dan Post dari permukaan gambar:
1. Data yang diminta oleh permintaan akan dilampirkan ke URL (yaitu, tempatkan data dalam header protokol HTTP) untuk membagi URL dan mengirimkan data, dan parameter terhubung, seperti: Login.action? HYDDD & Kata Sandi = Idontknow & Verifikasi =%E4%BD%A0%E5%A5%BD. Jika data adalah huruf/angka bahasa Inggris, pengiriman asli, jika itu adalah ruang, konversinya ke+, jika itu adalah karakter Cina/lainnya, langsung mengenkripsi string dengan base64 untuk mendapatkannya bd, di mana xx dalam % xx adalah sebuah ASCII diwakili oleh heksadesimal.
Post menempatkan data yang dikirimkan dalam paket HTTP.
2. Data yang dikirimkan hanya dapat menjadi 1024 byte. Persimpangan Persimpangan
Kalimat di atas ditransfer dari artikel lain.
(1). Faktanya, URL tidak memiliki masalah batas atas parameter, dan spesifikasi protokol HTTP tidak membatasi panjang URL. Batas ini adalah pembatasan browser dan server tertentu di atasnya. Batas IE pada URL adalah 2083 byte (2k+35). Untuk browser lain, seperti Netscape, Firefox, dll., Tidak ada batasan jangka panjang, dan pembatasannya tergantung pada dukungan dari sistem operasi.
Perhatikan bahwa ini terbatas pada seluruh panjang URL, bukan hanya panjang data nilai parameter Anda. [Lihat Data Referensi 5]
(2).
Untuk program ASP, objek permintaan memiliki batas panjang data 100 ribu saat memproses setiap domain. Tetapi jika Anda menggunakan request.binaryread, tidak ada batasan.
Dari ekstensi ini, Microsoft telah meningkatkan pembatasan pada IIS 6.0 untuk alasan keamanan. Kita masih perlu memperhatikan:
1).
2).
3).
IIS 6.0 tidak memiliki batasan ini sebelumnya. [Lihat Data Referensi 5]
Jadi di atas 80k, 100k mungkin hanya nilai default (Catatan: Saya belum mengkonfirmasi parameter IIS4 dan IIS5), tetapi harus diatur sendiri. Karena nilai default dari parameter ini dari setiap versi IIS berbeda, silakan merujuk ke dokumen konfigurasi IIS yang relevan.
3. Di ASP, server memperoleh parameter permintaan GET dengan request.queryString, dan dapatkan parameter permintaan POST dengan request.Form. Di JSP, gunakan request.getParameter (/xxxx/) untuk mendapatkannya & kata sandi = hyddd, gunakan permintaan. Dalam PHP, Anda dapat menggunakan $ _get dan $ _post untuk mendapatkan data di GET dan POST, sedangkan $ _Request dapat memperoleh data dalam dua permintaan GET dan POST. Perlu dicatat bahwa akan ada bahaya tersembunyi untuk menggunakan $ _REQUEST dalam JSP di JSP dan PHP.
4. Keamanan Post lebih tinggi dari keamanan GET. Catatan: Keselamatan yang disebutkan di sini bukan konsep yang sama dengan keamanan yang disebutkan di atas. Arti keamanan di atas bukanlah untuk memodifikasi data, dan arti keamanan di sini adalah arti keamanan nyata. karena (1) Halaman login mungkin menjadi browser. Serangan Pemalsuan Permintaan Situs.
Singkatnya, dapatkan permintaan untuk mengirim data ke server, dan posting adalah permintaan untuk mengirimkan data ke server.