Протокол передачи гипертекста (HTTP) предназначен для обеспечения связи между клиентами и серверами.
HTTP работает как протокол запроса-ответа между клиентом и сервером.
Пример: клиент (браузер) отправляет HTTP-запрос на сервер; затем сервер возвращает ответ клиенту. Ответ содержит информацию о состоянии запроса, а также может содержать запрошенный контент.
HTTP-методы
Два наиболее распространенных метода HTTP это GET и POST.
GET используется для запроса данных из указанного ресурса.
Обратите внимание, что строка запроса (пары имя/значение) отправляется в URL-адресе запроса GET:
/test/demo_form.php?name1=value1&name2=value2
POST используется для отправки данных на сервер для создания/обновления ресурса.
Данные, отправленные на сервер с помощью POST, хранятся в теле запроса HTTP:
POST /test/demo_form.php HTTP/1.1
Host: appnet.club
name1=value1&name2=value2
В следующей таблице сравниваются два метода 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 используется для отправки данных на сервер для создания/обновления ресурса.
Разница между POST и PUT заключается в том, что запросы PUT идемпотентны. То есть вызов одного и того же запроса PUT несколько раз всегда будет давать один и тот же результат. Напротив, повторный вызов запроса POST имеет побочные эффекты, связанные с созданием одного и того же ресурса несколько раз.
HEAD почти идентичен GET, но без тела ответа.
Другими словами, если GET/users возвращает список пользователей, то HEAD/users выполнит тот же запрос, но не вернет список пользователей.
Запрос HEAD полезен для проверки того, что вернет запрос GET, прежде чем фактически выполнить запрос GET — запрос HEAD может прочитать заголовок Content-Length, чтобы проверить размер файла, без фактической загрузки файла.
Метод DELETE удаляет указанный ресурс.
Метод PATCH используется для внесения частичных изменений в ресурс.
Метод OPTIONS описывает параметры связи для целевого ресурса.
Метод CONNECT используется для запуска двусторонней связи (туннеля) с запрошенным ресурсом.
Метод TRACE используется для выполнения обратной проверки сообщения, которая проверяет путь к целевому ресурсу (полезно для целей отладки).
Перейти в справочник по HTML.