Czy powinniśmy użyć metody GET do wysyłania danych z formularza HTML, czy metody POST?
metody dostępu GET I POST są zdefiniowane w protokole HTTP i zawarte w specyfikacji HTML.
wybór metody zależy od sposobu odbioru danych, wielkości i charakteru danych.
metoda GET dodaje dane do adresu URL
w formularzu, jest ona określona w następujący sposób:
<form method="get" action="page.html"></form>
za pomocą tej metody dane formularza będą zakodowane w adresie URL., Składa się z nazwy strony lub skryptu, który ma zostać załadowany, z danymi formularza spakowanymi w łańcuch.
dane są oddzielone od adresu strony przez ? kod, a pomiędzy nimi kod &.
więc jeśli wyślesz na stronę.html, wartości „kolor niebieski” i „kształt prostokąt”, URL zbudowany przez przeglądarkę będzie:
https://www.xul.fr/page.html?color=blue&shape=rectangle
Specyfikacja HTML 4 wywołuje użycie GET, gdy żądanie nie powoduje żadnych zmian w danych, a następnie dokonać pojedynczego odczytu. (Référence).
dane formularza muszą być tylko ASCII., Rozmiar adresu URL jest ograniczony do nieco ponad 2.000 znaków, w tym kodów ewakuacyjnych.
zauważ, że gdy użytkownik używa przycisku Wstecz, żądania GET są ponownie wykonywane.
metoda POST nie ma limitu rozmiaru
w formularzu jest ona określona w następujący sposób:
<form method="post" action="page.php"></form>
metoda ta wysyła nagłówek i treść wiadomości do serwera. Ciało zwykle składa się z danych wprowadzonych do pól formularza przez użytkownika.
dane formularza nie pojawiają się w adresie URL., W związku z tym nie jest możliwe pobieranie danych bezpośrednio w JavaScript, należy dodać kod PHP na stronie:
<?php $color = $_POST; $shape = $_POST;?>... HTML code ...
można jednak przypisać dane pobrane przez PHP do skryptu JavaScript:
<script> var color = <?php echo $color;?>; var shape = <?php echo $shape;?>;</script>
podsumowanie
metoda GET jest wartością domyślną. Jest to użyj go, chyba że nie chcesz, aby parametry były dodawane do adresu URL. Umożliwia pobieranie danych przekazywanych do strony za pomocą kodu JavaScript.,
metoda POST jest niezbędna dla kodów innych niż ASCII, dla dużych danych i zaleca się zmianę danych na serwerze oraz dla danych wrażliwych, jak wyjaśnia W3C..
korzystając z POST, musisz zintegrować PHP (lub inny język) na stronie, na której będą używane dane.
patrz również
- wysyłanie i odbieranie danych formularza.
- GET vs. POST w Ajaxie.