HTTP Методы GET и POST
Два наиболее часто используемых метода HTTP: GET и POST.
Что такое HTTP?
Протокол передачи гипертекста (HTTP) предназначен для обеспечения связи между клиентами и серверами.
HTTP работает как протокол запрос-ответ между клиентом и сервером.
Веб браузер может быть клиентом, а приложение на компьютере, на котором размещен веб сайт может быть сервером.
Пример: Клиент (браузер) отправляет запрос HTTP на сервер; затем сервер возвращает ответ клиенту. Ответ содержит информацию о состоянии запроса, также может содержать запрошенное содержимое.
Два метода запроса HTTP: GET и POST
Два часто используемых метода для запроса-ответа между клиентом и сервером: GET и POST.
- GET - Запрашивает данные из указанного ресурса
- POST - Отправляет данные для обработки указанному ресурсу
Метод GET
Обратите внимание, что строка запроса (пары name/value) отправляется в URL запроса GET:
/test/demo_form.php?name1=value1&name2=value2
Некоторые другие примечания по запросам GET:
- GET запросы могут быть кэшированы
- GET запросы остаются в истории браузера
- GET запросы могут быть в закладках
- GET запросы никогда не должны использоваться при работе с конфиденциальными данными
- GET запросы имеют ограничения длины
- GET запросы следует использовать только для получения данных
Метод POST
Обратите внимание, что строка запроса (пары name/value) отправляется в теле сообщения HTTP запроса POST:
POST /test/demo_form.php HTTP/1.1
Host: schoolsw3.com
name1=value1&name2=value2
Некоторые другие заметки о почтовых запросах:
- POST запросы не кэшируются
- POST запросы не остаются в истории браузера
- POST запросы не могут быть помечены закладками
- POST запросы не имеют ограничений по длине данных
Сравнение GET и POST
В следующей таблице сравниваются два метода HTTP: GET и POST.
GET | POST | |
---|---|---|
Возврат Кнопка/Перезагрузка | Безвредный | Данные будут повторно отправлены (браузер должен предупредить пользователя о том, что данные будут повторно отправлены) |
Закладка | Могут быть закладки | Не могут быть закладки |
Кэширование | Может быть кэширован | Не кэшировать |
Тип кодировки | application/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 |
Другие методы запроса HTTP
В следующей таблице перечислены некоторые другие методы запроса HTTP:
Метод | Описание |
---|---|
HEAD | То же, что и GET, но возвращает только заголовки HTTP, а не тело документа |
PUT | Загружает представление указанного URI |
DELETE | Удаляет указанный ресурс |
OPTIONS | Возвращает методы HTTP, поддерживаемые сервером |
CONNECT | Преобразует соединение запроса в прозрачный туннель TCP/IP |