Metody żądania HTML

Co to jest HTTP?

Protokół Przekazywania Hyper tekstu (Hypertext Transfer Protocol, skrócony do HTTP) ma na celu umożliwienie komunikacji między klientem a serwerem.

HTTP pełni rolę protokołu żądania-odpowiedzi między klientem a serwerem.

Przykład: klient (przeglądarka) wysyła żądanie HTTP do serwera; następnie serwer zwraca odpowiedź do klienta. Odpowiedź zawiera informacje o stanie żądania, może również zawierać żądane treści.

Metoda HTTP

  • GET
  • POST
  • PUT
  • HEAD
  • DELETE
  • PATCH
  • OPTIONS

Najczęściej używane metody to: GET i POST.

Metoda GET

GET używane jest do żądania danych z określonego zasobu.

GET jest jednym z najczęściej używanych metod HTTP.

Proszę zauważyć, że ciąg zapytania (para nazwa/wartość) jest wysyłany w URL żądania GET:

/test/demo_form.php?name1=value1&name2=value2

Oto kilka innych uwag dotyczących żądań GET:

  • Żądanie GET można buforować
  • Żądanie GET zostanie zachowane w historii przeglądarki
  • Żądanie GET można dodać jako zakładkę
  • Żądanie GET nie powinno być używane do przetwarzania danych wrażliwych
  • Żądanie GET ma ograniczenia dotyczące długości
  • Żądanie GET powinno być używane tylko do pobierania danych (nie do modyfikacji)

Metoda POST

POST używa się do wysyłania danych do serwera w celu utworzenia/aktualizacji zasobu.

Dane wysyłane przez POST do serwera są przechowywane w ciele żądania HTTP:

POST /test/demo_form.php HTTP/1.1
Host: codew3c.com
name1=value1&name2=value2

POST jest jednym z najczęściej używanych metod HTTP.

Oto kilka innych uwag dotyczących żądań POST:

  • Żądanie POST nie będzie buforowane
  • Żądanie POST nie zostanie zachowane w historii przeglądarki
  • Żądanie POST nie może być dodane jako zakładka
  • Żądanie POST nie ma wymagań dotyczących długości danych

Metoda PUT

PUT używa się do wysyłania danych do serwera w celu utworzenia/aktualizacji zasobu.

Różnica między POST a PUT polega na tym, że żądanie PUT jest idempotentne (niepowodujące zmiany). Oznacza to, że wielokrotne wywołanie tego samego żądania PUT zawsze będzie miało ten sam wynik. W przeciwieństwie do tego, powtarzanie wywołań żądań POST ma efekt wielokrotnego tworzenia tego samego zasobu.

Metoda HEAD

HEAD jest prawie takie same jak GET, ale bez ciała odpowiedzi.

Innymi słowy, jeśli żądanie GET /users zwraca listę użytkowników, to żądanie HEAD /users wyśle ten sam żądanie, ale nie zwróci listy użytkowników.

Żądanie HEAD jest przydatne do sprawdzenia, co zwróci żądanie GET przed rzeczywistym wysłaniem (np. przed pobraniem dużego pliku lub ciała odpowiedzi).

Metoda DELETE

Metoda DELETE usuwa określony zasób.

Metoda OPTIONS

Metoda OPTIONS opisuje opcje komunikacji zasobu docelowego.

Porównanie GET z POST

Poniższa tabela porównuje dwa metody HTTP: GET i POST.

  GET POST
Przycisk wstecz/odśwież Bezpieczne Dane będą ponownie wysłane (przeglądarka powinna poinformować użytkownika, że dane będą ponownie wysłane).
Zakładki Można dodać jako zakładkę Nie można dodawać jako zakładki
Buforowanie Można je buforować Nie można pamiętać w pamięci podręcznej
Typ kodowania application/x-www-form-urlencoded application/x-www-form-urlencoded lub multipart/form-data. Używaj wielokrotnej kodowania dla danych binarnych.
Historia Parametry są przechowywane w historii przeglądarki. Parametry nie są przechowywane w historii przeglądarki.
Ograniczenia długości danych Tak. Kiedy wysyłasz dane, metoda GET dodaje dane do URL; długość URL jest ograniczona (maksymalna długość URL wynosi 2048 znaków). Brak ograniczeń.
Ograniczenia typów danych Zezwala tylko na znaki ASCII. Brak ograniczeń. Zezwala również na dane binarne.
Bezpieczeństwo

W porównaniu do POST, GET ma niższy poziom bezpieczeństwa, ponieważ wysyłane dane są częścią URL.

Nigdy nie używaj GET do wysyłania hasła lub innych wrażliwych informacji!

POST jest bezpieczniejszy niż GET, ponieważ parametry nie są przechowywane w historii przeglądarki ani w dzienniku serwera web.
Widoczność Dane są widoczne dla wszystkich w URL. Dane nie będą wyświetlane w URL.