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 |