Методы HTTP- запроса
Что такое HTTP?
Протокол передачи гипертекста (HTTP) предназначен для обеспечения связи между клиентами и серверами.
HTTP работает как протокол запроса-ответа между клиентом и сервером.
Пример: клиент (браузер) отправляет HTTP-запрос на сервер; затем сервер возвращает ответ клиенту. Ответ содержит информацию о состоянии запроса, а также может содержать запрошенное содержимое.
HTTP-методы
- ПОЛУЧИТЬ
- ПОЧТА
- СТАВИТЬ
- ГОЛОВА
- УДАЛИТЬ
- ПЛАСТЫРЬ
- ОПЦИИ
Двумя наиболее распространенными методами HTTP являются: GET и POST.
ПОЛУЧИТЬ метод
GET используется для запроса данных из указанного ресурса.
GET — один из самых распространенных методов HTTP.
Обратите внимание, что строка запроса (пары имя/значение) отправляется в URL-адресе запроса GET:
/test/demo_form.php?name1=value1&name2=value2
Некоторые другие примечания по запросам GET:
- GET-запросы могут кэшироваться
- GET-запросы остаются в истории браузера
- Запросы GET можно добавить в закладки
- Запросы GET никогда не должны использоваться при работе с конфиденциальными данными.
- Запросы GET имеют ограничения по длине
- Запросы GET используются только для запроса данных (не для изменения)
Метод POST
POST используется для отправки данных на сервер для создания/обновления ресурса.
Данные, отправленные на сервер с помощью POST, хранятся в теле запроса HTTP:
POST /test/demo_form.php HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2
POST — один из самых распространенных методов HTTP.
Некоторые другие примечания по запросам POST:
- POST-запросы никогда не кэшируются
- POST-запросы не сохраняются в истории браузера
- Запросы POST не могут быть добавлены в закладки
- POST-запросы не имеют ограничений на длину данных
Метод PUT
PUT используется для отправки данных на сервер для создания/обновления ресурса.
Разница между POST и PUT заключается в том, что запросы PUT являются идемпотентными. То есть, вызов одного и того же запроса PUT несколько раз всегда будет давать один и тот же результат. Напротив, повторный вызов POST-запроса имеет побочные эффекты многократного создания одного и того же ресурса.
ГОЛОВНОЙ метод
HEAD почти идентичен GET, но без тела ответа.
Другими словами, если GET /users возвращает список пользователей, то HEAD /users сделает тот же запрос, но не вернет список пользователей.
Запросы HEAD полезны для проверки того, что вернет запрос GET, перед фактическим выполнением запроса GET — например, перед загрузкой большого файла или тела ответа.
Метод УДАЛИТЬ
Метод DELETE удаляет указанный ресурс.
Метод ОПЦИИ
Метод OPTIONS описывает параметры связи для целевого ресурса.
Сравните GET и POST
В следующей таблице сравниваются два метода HTTP: GET и 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 |