Методы 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