Ciekawi mnie pierwotne przeznaczenie <input type="hidden">
tagu.
Obecnie jest często używany razem z JavaScriptem do przechowywania w nim zmiennych, które są wysyłane na serwer i tym podobne.
- HTML 2.0 został wydany w listopadzie 1995 roku i zawierał już specyfikację typu danych wejściowych = "ukryty"
- JavaScript został wydany w marcu 1996 roku
Dlatego <input type="hidden">
istniał przed JavaScript, więc jaki był jego pierwotny cel? Mogę sobie tylko wyobrazić wysyłanie wartości z serwera do klienta, która jest (niezmieniona) odsyłana w celu utrzymania pewnego rodzaju stanu. Czy może coś mi się nie podoba w historii i <input type="hidden">
zawsze miało być używane razem z JavaScriptem?
Jeśli to możliwe, prosimy o podanie odniesień w odpowiedziach.
javascript
html
history
Uooo
źródło
źródło
Odpowiedzi:
Dokładnie. W rzeczywistości nadal jest używany do tego celu, ponieważ HTTP, jaki znamy dzisiaj, nadal jest, przynajmniej zasadniczo, protokołem bezstanowym.
Ten przypadek użycia został po raz pierwszy opisany w HTML 3.2 (jestem zaskoczony, że HTML 2.0 nie zawiera takiego opisu):
Chociaż warto wspomnieć, że HTML 3.2 stał się zaleceniem W3C dopiero po pierwszym wydaniu JavaScript, można bezpiecznie założyć, że ukryte pola zawsze służyły temu samemu celowi.
źródło
Podam tutaj prosty przykład ze świata rzeczywistego po stronie serwera, powiedzmy, czy rekordy są zapętlone, a każdy rekord ma formularz z przyciskiem usuwania i musisz usunąć określony rekord, więc oto
hidden
pole w akcji, inaczej wygrałeś ' W takim przypadku uzyskaj odniesienie do rekordu do usunięciaid
Na przykład
źródło
Krótko mówiąc, pierwotnym celem było utworzenie pola, które zostanie przesłane wraz z przesłaniem formularza. Czasami zachodziła potrzeba zapisania pewnych informacji w ukrytym polu (np. Id użytkownika) i przesłania ich wraz z przesłaniem formularza.
Ze specyfikacji HTML z 22 września 1995 roku
źródło
original purpose was to make a field which will be submitted *after* form's submit
jest niejednoznaczna. Może to być interpretowane jako: „po forma odbywa delegowania swoich danych, a następnie pole ukryte zostaną przedłożone (do tajemniczego miejsca)”. Stąd mój komentarz powyżej.Wartości elementów formularza, w tym type = 'hidden', są przesyłane do serwera podczas wysyłania formularza. input type = „hidden” wartości nie są widoczne na stronie. Na przykład przechowywanie identyfikatorów użytkowników w ukrytych polach jest jednym z wielu zastosowań.
SO używa ukrytego pola dla kliknięcia „za”.
Używając tej wartości, skrypt po stronie serwera może przechowywać głos za.
źródło
w zasadzie ukryte pola będą bardziej przydatne, a korzystanie z formularza wieloetapowego będzie bardziej korzystne. możemy użyć ukrytych pól, aby przekazać informacje o jednym kroku do następnego kroku, używając ukrytych i utrzymywać je do końca kroku.
Fałszowanie żądań między lokacjami jest bardzo częstą luką w zabezpieczeniach witryn internetowych. Wymaganie tajnego tokenu specyficznego dla użytkownika we wszystkich przesyłanych formularzach zapobiegnie atakom CSRF, ponieważ strony atakujące nie mogą odgadnąć, jaki jest właściwy token, a wszelkie przesłania formularzy, które wykonują w imieniu użytkownika, zawsze kończą się niepowodzeniem.
Jeśli chcesz zapisać krok w wielostronicowym formularzu, w którym aktualnie znajduje się użytkownik, użyj ukrytych pól wejściowych. Użytkownik nie musi widzieć tych informacji, więc ukryj je w ukrytym polu wprowadzania.
Zasada ogólna: pole to służy do przechowywania wszystkiego, czego użytkownik nie musi widzieć, ale co chcesz wysłać na serwer podczas przesyłania formularza.
źródło