Методы HTTP-запроса
Меню
Веб-разработка

Методы HTTP-запроса

Методы HTTP-запроса

Что такое HTTP?

Протокол передачи гипертекста (HTTP) предназначен для обеспечения связи между клиентами и серверами.

HTTP работает как протокол запроса-ответа между клиентом и сервером.

Пример: клиент (браузер) отправляет HTTP-запрос на сервер; затем сервер возвращает ответ клиенту. Ответ содержит информацию о состоянии запроса, а также может содержать запрошенный контент.


HTTP-методы

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

Два наиболее распространенных метода HTTP это GET и POST.


Метод GET

GET используется для запроса данных из указанного ресурса.

Обратите внимание, что строка запроса (пары имя/значение) отправляется в 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: appnet.club
name1=value1&name2=value2


Сравнительная таблица GET и POST

В следующей таблице сравниваются два метода HTTP: GET и POST:

  GET POST
Кнопка НАЗАД/Перезагрузить Безвредный Данные будут отправлены повторно (браузер должен предупредить пользователя о том, что данные будут отправлены повторно)
В закладках Можно добавить в закладки Невозможно добавить в закладки
Кэшированный Можно кэшировать Не кэшируется
Тип кодировки приложение/x-www-form-urlencoded application/x-www-form-urlencoded или multipart/form-data. Используйте многочастное кодирование для двоичных данных
История Параметры остаются в истории браузера Параметры не сохраняются в истории браузера
Ограничения на длину данных Да, при отправке данных метод GET добавляет данные в URL-адрес, длина URL-адреса ограничена (максимальная длина URL-адреса — 2048 символов) Нет ограничений
Ограничения на тип данных Разрешены только символы ASCII Нет ограничений. Двоичные данные также разрешены
Безопасность GET менее безопасен по сравнению с POST, поскольку отправляемые данные являются частью URL-адреса. Никогда не используйте GET при отправке паролей или другой конфиденциальной информации! POST немного безопаснее, чем GET, поскольку параметры не сохраняются ни в истории браузера, ни в журналах веб-сервера
Видимость Данные видны всем, кто находится в URL-адресе Данные не отображаются в URL

Метод PUT

PUT используется для отправки данных на сервер для создания/обновления ресурса.

Разница между POST и PUT заключается в том, что запросы PUT идемпотентны. То есть вызов одного и того же запроса PUT несколько раз всегда будет давать один и тот же результат. Напротив, повторный вызов запроса POST имеет побочные эффекты, связанные с созданием одного и того же ресурса несколько раз.


Метод HEAD

HEAD почти идентичен GET, но без тела ответа.

Другими словами, если GET/users возвращает список пользователей, то HEAD/users выполнит тот же запрос, но не вернет список пользователей.

Запрос HEAD полезен для проверки того, что вернет запрос GET, прежде чем фактически выполнить запрос GET — запрос HEAD может прочитать заголовок Content-Length, чтобы проверить размер файла, без фактической загрузки файла.


Метод DELETE

Метод DELETE удаляет указанный ресурс.


Метод PATCH

Метод PATCH используется для внесения частичных изменений в ресурс.


Метод OPTIONS

Метод OPTIONS описывает параметры связи для целевого ресурса.


Метод CONNECT

Метод CONNECT используется для запуска двусторонней связи (туннеля) с запрошенным ресурсом.


Метод TRACE

Метод TRACE используется для выполнения обратной проверки сообщения, которая проверяет путь к целевому ресурсу (полезно для целей отладки).


Перейти в справочник по HTML.

Поделиться ссылкой