HTTP Методы: GET vs. POST
Два наиболее используемых метода HTTP: GET и POST.
Что такое HTTP?
Протокол HTTP предназначен для обеспечения связи между клиентами и серверами.
HTTP работает как протокол запроса-ответа между клиентом и сервером.
Веб-обозреватель может быть клиентом, а приложение на компьютере, на котором размещается веб-узел, может быть сервером.
Пример: клиент (обозреватель) отправляет HTTP-запрос на сервер; Затем сервер возвращает ответ клиенту. Ответ содержит сведения о состоянии запроса, а также может содержать запрошенное содержимое.
Два метода HTTP-запроса: Get и POST
Два часто используемых метода запроса-ответа между клиентом и сервером: Get и POST.
- GET - Запрашивает данные из указанного ресурса
- POST - Отправка данных для обработки в указанный ресурс
Метод Get
Обратите внимание, что строка запроса (пары «имя-значение») отправляется в URL-адрес запроса GET:
/test/demo_form.php?name1=value1&name2=value2
Некоторые другие заметки о запросах GET:
- GET запросы могут кэшироваться
- GET запросы остаются в истории браузера
- GET запросы могут быть закладками
- GET запросы никогда не должны использоваться при работе с конфиденциальными данными
- GET запросы имеют ограничения по длине
- GET запросы должны использоваться только для извлечения данных
Метод POST
Обратите внимание, что строка запроса (пары «имя-значение») отправляется в теле HTTP-сообщения запроса POST:
POST /test/demo_form.php HTTP/1.1
Host: html5css.ru
name1=value1&name2=value2
Некоторые другие примечания по запросам POST:
- POST запросы никогда не кэшируются
- Запросы POST не сохраняются в журнале обозревателя
- Запросы POST не могут быть закладками
- Запросы POST не имеют ограничений по длине данных
Сравнить GET vs. POST
В следующей таблице сравниваются два метода HTTP: Get и POST.
GET | POST | |
---|---|---|
Кнопка возврата/перезагрузка | Безвредны | Данные будут повторно отправлены (браузер должен предупредить пользователя о том, что данные будут повторно отправлены) |
Закладка | Можно закладка | Не может быть Закладка |
Кэшированные | Может кэшироваться | Не кэшируется |
Тип кодировки | application/x-www-form-urlencoded | application/x-www-form-urlencoded or multipart/form-data. Использование многокомпонентной кодировки для двоичных данных |
Истории | Параметры остаются в журнале обозревателя | Параметры не сохраняются в журнале обозревателя |
Ограничения по длине данных | Да, при отправке данных метод Get добавляет данные в URL-адрес; и длина URL ограничена (максимальная длина URL составляет 2048 символов) | Без ограничений |
Ограничения типа данных | Разрешены только символы ASCII | Никаких ограничений. Двоичные данные также разрешены |
Безопасности | Get менее безопасен по сравнению с POST, поскольку отправляемые данные являются частью URL-адреса |
POST немного безопаснее, чем Get, поскольку параметры не сохраняются в журнале обозревателя или в журналах веб-сервера |
Видимость | Данные видны всем в URL | Данные не отображаются в URL-адресе |
Другие методы HTTP-запросов
В следующей таблице перечислены некоторые другие методы HTTP-запросов:
Метод | Описание |
---|---|
HEAD | То же, что и Get, но возвращает только заголовки HTTP и не тело документа |
PUT | Загружает представление заданного URI |
DELETE | Удаляет указанный ресурс |
OPTIONS | Возвращает HTTP-методы, поддерживаемые сервером |
CONNECT | Преобразует подключение запроса к прозрачному туннелю TCP/IP |