Metody żądań HTTP


Co to jest HTTP?

Protokół Hypertext Transfer Protocol (HTTP) został zaprojektowany w celu umożliwienia komunikacji między klientami a serwerami.

HTTP działa jako protokół żądanie-odpowiedź 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 i może również zawierać żądaną treść.


Metody HTTP

  • DOSTWAĆ
  • POCZTA
  • UMIEŚCIĆ
  • GŁOWA
  • KASOWAĆ
  • SKRAWEK
  • OPCJE

Dwie najpopularniejsze metody HTTP to: GET i POST.


Metoda GET

GET służy do żądania danych z określonego zasobu.

GET to jedna z najpopularniejszych metod HTTP.

Zwróć uwagę, że ciąg zapytania (pary nazwa/wartość) jest wysyłany w adresie URL żądania GET:

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

Kilka innych uwag na temat żądań GET:

  • Żądania GET mogą być buforowane
  • Żądania GET pozostają w historii przeglądarki
  • Żądania GET można dodać do zakładek
  • Żądania GET nigdy nie powinny być używane w przypadku wrażliwych danych
  • Żądania GET mają ograniczenia długości
  • Żądania GET służą tylko do żądania danych (nie do modyfikacji)

Metoda POST

POST służy do wysyłania danych na serwer w celu utworzenia/aktualizacji zasobu.

Dane wysyłane do serwera za pomocą POST zapisywane są w treści żądania HTTP:

POST /test/demo_form.php HTTP/1.1
Host: w3schools.com

name1=value1&name2=value2

POST to jedna z najpopularniejszych metod HTTP.

Kilka innych uwag dotyczących żądań POST:

  • Żądania POST nigdy nie są buforowane
  • Żądania POST nie pozostają w historii przeglądarki
  • Żądań POST nie można dodać do zakładek
  • Żądania POST nie mają ograniczeń co do długości danych


Metoda PUT

PUT służy do wysyłania danych do serwera w celu utworzenia/aktualizacji zasobu.

Różnica między POST i PUT polega na tym, że żądania PUT są idempotentne. Oznacza to, że wielokrotne wywołanie tego samego żądania PUT zawsze da ten sam wynik. W przeciwieństwie do tego, wielokrotne wywoływanie żądania POST ma skutki uboczne polegające na wielokrotnym tworzeniu tego samego zasobu.


Metoda HEAD

HEAD jest prawie identyczny z GET, ale bez treści odpowiedzi.

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

Żądania HEAD są przydatne do sprawdzania, co zwróci żądanie GET przed faktycznym wysłaniem żądania GET — na przykład przed pobraniem dużego pliku lub treści odpowiedzi.


Metoda USUŃ

Metoda DELETE usuwa określony zasób.


Metoda OPCJI

Metoda OPTIONS opisuje opcje komunikacji dla zasobu docelowego.


Porównaj GET i POST

W poniższej tabeli porównano dwie metody HTTP: GET i POST.

  GET POST
BACK button/Reload Harmless Data will be re-submitted (the browser should alert the user that the data are about to be re-submitted)
Bookmarked Can be bookmarked Cannot be bookmarked
Cached Can be cached Not cached
Encoding type application/x-www-form-urlencoded application/x-www-form-urlencoded or multipart/form-data. Use multipart encoding for binary data
History Parameters remain in browser history Parameters are not saved in browser history
Restrictions on data length Yes, when sending data, the GET method adds the data to the URL; and the length of a URL is limited (maximum URL length is 2048 characters) No restrictions
Restrictions on data type Only ASCII characters allowed No restrictions. Binary data is also allowed
Security GET is less secure compared to POST because data sent is part of the URL

Never use GET when sending passwords or other sensitive information!
POST is a little safer than GET because the parameters are not stored in browser history or in web server logs
Visibility Data is visible to everyone in the URL Data is not displayed in the URL