English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Два самых常用的 метода HTTP: GET и POST.
Цель дизайна протокола HTTP (HyperText Transfer Protocol) - обеспечить коммуникацию между клиентом и сервером.
HTTP работает как протокол запрос-ответ между клиентом и сервером.
Веб-браузер может быть клиентом, а сетевая программа на компьютере может выступать в роли сервера.
Пример: клиент (браузер) подает HTTP-запрос на сервер; сервер возвращает ответ клиенту. Ответ содержит информацию о состоянии запроса и возможное содержимое, запрашиваемое.
При запросах-ответах между клиентом и сервером наиболее часто используются два метода: GET и POST.
GET - Запрашиваются данные из указанного ресурса.
POST - Подается данные для обработки на указанный ресурс.
Обратите внимание, что строка запроса (пара имя/значение) отправляется в URL запроса GET:
/run/demo-form.php?name1=value1&name2=value2
Другие комментарии о запросах GET:
Запросы GET могут быть сохранены в кэше.
Запросы GET будут сохранены в истории браузера.
Запросы GET могут быть сохранены как закладки.
Запросы GET не должны использоваться для обработки конфиденциальных данных.
Запросы GET имеют ограничение по длине.
Запросы GET должны использоваться только для получения данных.
Обратите внимание, что строка запроса (пара имя/значение) отправляется в теле сообщения HTTP запроса POST:
POST /run/demo-form.php HTTP/1.1
Host: oldtoolbag.com
name1=value1&name2=value2
Другие комментарии о запросах POST:
Запросы POST не будут сохранены в кэше.
Запросы POST не будут сохранены в истории браузера.
Запросы POST не могут быть сохранены как закладки
Запросы 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. | Нет ограничений. Также разрешается двоичная данные. |
Безопасность | По сравнению с POST, GET имеет более низкую безопасность, так как отправляемые данные являются частью URL. Никогда не используйте GET для отправки пароля или другой конфиденциальной информации! | POST безопаснее, чем GET, так как параметры не сохраняются в истории браузера или логах веб-сервера. |
Видимость | Данные видны всем в URL. | Данные не будут отображаться в URL. |
Ниже приведена таблица с другими HTTP методами запросов:
Метод | Описание |
---|---|
HEAD | Как и GET, но возвращает только заголовки HTTP, без的主要内容. |
PUT | Загрузить указанное представление URI. |
DELETE | Удалить указанные ресурсы. |
OPTIONS | Вернуть поддерживаемые сервером методы HTTP. |
CONNECT | Преобразовать запрос соединения в прозрачный канал TCP/IP. |