Saya ingin tahu tentang tujuan asli dari <input type="hidden">
tag tersebut.
Saat ini sering digunakan bersama dengan JavaScript untuk menyimpan variabel di dalamnya yang dikirim ke server dan hal-hal seperti itu.
- HTML 2.0 dirilis pada November 1995 , sudah berisi spesifikasi untuk input type = "hidden"
- JavaScript dirilis Maret 1996
Oleh karena itu, <input type="hidden">
ada sebelum JavaScript, jadi apa tujuan aslinya? Saya hanya bisa membayangkan mengirim nilai dari server ke klien yang (tidak berubah) dikirim kembali untuk mempertahankan semacam status. Atau apakah saya mendapatkan sesuatu yang salah dalam sejarahnya dan <input type="hidden">
seharusnya selalu digunakan bersama dengan JavaScript?
Jika memungkinkan, berikan referensi juga dalam jawaban Anda.
javascript
html
history
Uooo
sumber
sumber
Jawaban:
Tepat. Faktanya, ini masih digunakan untuk tujuan ini hari ini karena HTTP seperti yang kita kenal sekarang, setidaknya secara fundamental, adalah protokol tanpa negara.
Kasus penggunaan ini sebenarnya pertama kali dijelaskan dalam HTML 3.2 (Saya terkejut HTML 2.0 tidak menyertakan deskripsi seperti itu):
Meskipun perlu disebutkan bahwa HTML 3.2 menjadi Rekomendasi W3C hanya setelah rilis awal JavaScript, dapat diasumsikan bahwa bidang tersembunyi hampir selalu memiliki tujuan yang sama.
sumber
Saya akan memberikan Contoh Dunia Nyata Sisi Server sederhana di sini, katakanlah jika catatan dilingkarkan dan setiap catatan memiliki formulir dengan tombol hapus dan Anda perlu menghapus catatan tertentu, jadi inilah
hidden
bidang yang sedang beraksi, kalau tidak Anda menang ' t mendapatkan referensi catatan yang akan dihapus dalam kasus ini, itu akanid
Sebagai contoh
sumber
Singkatnya, tujuan awalnya adalah membuat field yang akan diserahkan dengan form submit. Terkadang, ada kebutuhan untuk menyimpan beberapa informasi di bidang tersembunyi (misalnya, id pengguna) dan mengirimkannya dengan pengiriman formulir.
Dari HTML 22 September 1995 spesifikasi
sumber
original purpose was to make a field which will be submitted *after* form's submit
ambigu. Dapat diartikan sebagai: 'setelah form selesai diposting datanya, maka hidden field akan diserahkan (ke suatu tempat misterius)'. Makanya, komentar saya di atas.Nilai elemen formulir termasuk type = 'hidden' dikirimkan ke server saat formulir diposting. input type = "hidden" nilai tidak terlihat di halaman. Mempertahankan ID Pengguna di bidang tersembunyi, misalnya, adalah salah satu dari banyak kegunaan.
SO menggunakan bidang tersembunyi untuk klik upvote.
Menggunakan nilai ini, skrip sisi server dapat menyimpan suara positif.
sumber
pada dasarnya bidang tersembunyi akan lebih berguna dan keuntungan digunakan dengan formulir multi langkah. kita dapat menggunakan bidang tersembunyi untuk meneruskan informasi satu langkah ke langkah berikutnya menggunakan tersembunyi dan tetap meneruskannya hingga langkah akhir.
Pemalsuan permintaan lintas situs adalah kerentanan situs yang sangat umum. Membutuhkan token rahasia, khusus pengguna dalam semua pengiriman formulir akan mencegah serangan CSRF karena situs penyerang tidak dapat menebak token yang tepat dan pengiriman formulir apa pun yang mereka lakukan atas nama pengguna akan selalu gagal.
Jika Anda perlu menyimpan langkah apa dalam formulir multi-halaman yang sedang digunakan pengguna, gunakan kolom input tersembunyi. Pengguna tidak perlu melihat informasi ini, jadi sembunyikan di kolom input tersembunyi.
Aturan umum: Gunakan bidang untuk menyimpan apa pun yang tidak perlu dilihat pengguna, tetapi Anda ingin mengirim ke server saat pengiriman formulir.
sumber