HTTP - это …
HTTP (Hypertext Transfer Protocol) - протокол передачи гипертекста (веб-страниц), разработанный для осуществления коммуникаций между серверной и клиентской сторонами.
HTTP работает по типу “запрос-ответ” между клиентом и сервером.
В качестве клиента, чаще всего, выступает браузер пользователя, а сервером - компьютер, который хранит в себе файлы сайта и предоставляет их браузеру для обработки.
Виды HTTP запросов
Два наиболее часто используемых видов HTTP запросов это: GET
и POST
.
GET
- запрашивает данные с определенного ресурса (сайта)POST
- отправляет данные на сервер для последующей их обработки
GET запрос
Часть URL идущая после знака ? “говорит” серверу какие данные необходимо получить.
http://meliorem.ru?name1=value1&name2=value2
Особенности GET запроса
- может быть закэширован
- остается в истории браузера
- может быть закладкой в браузере
- не должен использоваться при работе с крайне важными данными
- имеет ограниченную длину
- должен применяться только для получения данных
Никогда не используйте GET
запрос для отправки паролей или других критически важных данных!
POST запрос
POST
запрос часто применяют для отправки данных на сервер в веб-формах.
Пример POST
запроса для отправки данных формы.
POST /test/sample_form.php HTTP/1.1
Host: meliorem.ru
name1=value1&name2=value2
Особенности POST запроса
- не кэшируется
- не может быть закладкой в браузере
- не остаётся в истории браузера
- нет ограничений по длине запроса
Сравнение GET и POST
В таблице ниже приводится сравнение между двумя типами запросов: GET
и POST
.
Функция | GET | POST |
---|---|---|
Кнопка назад/Перезагрузка | Не влияет | Данные будут отправлены повторно |
Добавление в закладки | Может быть добавлен в закладки браузера | Не может быть добавлен в закладки браузера |
Способ шифрования | application/x-www-form-urlencoded | application/x-www-form-urlencoded или multipart/form-data. Для бинарных данных используют последний |
Хранение в истории браузера | Данные остаются в истории браузера | Не хранит данные |
Ограничения на длину запроса | Ограничен максимальной длинной URL (2048 символов) | Нет ограничений |
Ограничение на тип данных запроса | Могут быть использованы только ASCII символы |
Нет ограничений Двоичные данные также могут быть использованы |
Безопасность | Небезопасный, из-за открытости данных в URL |
Безопасный В отличии от GET не хранит параметры в истории браузера или в журнале веб-сервера |
Видимость данных | Данные видны всем в URL | Данные не отображаются в URL |
Другие виды HTTP запросов
Далее представлены дополнительные виды HTTP запросов, некоторые из них плохо поддерживаются браузерами.
Вид запроса | Описание |
---|---|
HEAD | Тоже самое что GET, однако возвращает только HTTP заголовки и не возвращает тело документа |
DELETE | Удаляет определенный ресурс |
PUT | Загружает представление определенного URI |
OPTIONS | Возвращает список видов запросов, поддерживаемых веб-сервером |
CONNECT | Создает прозрачный TCP/IP туннель для передачи запросов |