Saya tidak melihat banyak perbedaan antara parameter dan string kueri, di URL. Jadi apa bedanya dan kapan harus digunakan di atas yang lain?
Saya tidak melihat banyak perbedaan antara parameter dan string kueri, di URL. Jadi apa bedanya dan kapan harus digunakan di atas yang lain?
Jawaban:
The komponen query ditunjukkan oleh pertama ?
di URI. "Query string" mungkin sinonim (istilah ini tidak digunakan dalam standar URI).
Beberapa contoh untuk HTTP URI dengan komponen kueri:
http://example.com/foo?bar
http://example.com/foo/foo/foo?bar/bar/bar
http://example.com/?bar
http://example.com/?@bar._=???/1:
http://example.com/?bar1=a&bar2=b
( daftar karakter yang diizinkan dalam komponen kueri )
"Format" komponen kueri tergantung pada pembuat URI. Konvensi umum ( tetapi tidak lebih dari konvensi, sejauh menyangkut standar URI ¹) adalah menggunakan komponen kueri untuk pasangan nilai kunci, alias. parameter , seperti dalam contoh terakhir di atas: bar1=a&bar2=b
.
Parameter tersebut juga dapat muncul di komponen URI lainnya, yaitu jalur² dan fragmen. Sejauh menyangkut standar URI, terserah Anda komponen dan format mana yang akan digunakan.
Contoh URI dengan parameter di jalur, kueri, dan fragmen:
http://example.com/foo;key1=value1?key2=value2#key3=value3
¹ Standar URI menjelaskan tentang komponen query :
[…] Komponen kueri sering digunakan untuk membawa informasi pengenal dalam bentuk pasangan "key = value" […]
² Standar URI menjelaskan tentang komponen jalur :
[…] Tanda titik koma (";") dan sama dengan ("=") sering digunakan untuk membatasi parameter dan nilai parameter yang berlaku untuk segmen tersebut. Karakter khusus koma (",") sering digunakan untuk tujuan serupa.
Parameter adalah pasangan nilai kunci yang dapat muncul di dalam jalur URL, dan dimulai dengan karakter titik koma ( ;
).
String kueri muncul setelah jalur (jika ada) dan dimulai dengan karakter tanda tanya ( ?
).
Baik parameter dan string kueri berisi pasangan nilai kunci.
Dalam GET
permintaan, parameter muncul di URL itu sendiri:
<scheme>://<username>:<password>@<host>:<port>/<path>;<parameters>?<query>#<fragment>
Dalam POST
permintaan, parameter dapat muncul di URL itu sendiri, tetapi juga di aliran data (dikenal sebagai konten).
String kueri selalu menjadi bagian dari URL.
Parameter dapat dikubur dalam form-data
aliran data saat menggunakan metode POST sehingga mereka mungkin tidak muncul di URL. Ya, POST
permintaan dapat menentukan parameter sebagai data formulir dan di URL, dan ini tidak tidak konsisten karena parameter dapat memiliki beberapa nilai.
Sejauh ini saya tidak menemukan penjelasan untuk perilaku ini. Saya rasa terkadang berguna untuk "menampilkan" parameter dari POST
permintaan, atau bahkan membiarkan kode yang menangani GET
permintaan berbagi beberapa bagian dengan penanganan kode a POST
. Tentu saja ini hanya dapat berfungsi dengan parameter pendukung kode server di URL.
Sampai Anda mendapatkan wawasan yang lebih baik, saya sarankan Anda untuk menggunakan parameter hanya dalam form-data
aliran data POST
permintaan.
Sumber: