WEB

Методы HTTP запроса (Глаголы)

HTTP определяет множество методов запроса, которые указывают, какое желаемое действие выполнится для данного ресурса. Несмотря на то, что их названия могут быть существительными, эти методы запроса иногда называются HTTP глаголами.

CRUD — (англ. create read update delete — «Создание чтение обновление удаление») сокращённое именование 4 базовых функций при работе с персистентными хранилищами данных — создание, чтение, редактирование и удаление. 

Операция Операция в HTTP
Создание (Create) POST
Чтение (Read) GET
Редактирование (Update) PUT или PATCH
Удаление (Delete) DELETE

Идемпотентность - это свойство объекта или операции при повторном применении операции к объекту давать тот же результат, что и при первом.
Идемпотентные методы - GET, HEAD, OPTIONS, TRACE, +(Небезопасные PUT или DELETE).

Каждый реализует свою семантику, но каждая группа команд разделяет общие свойства: так, методы могут быть безопасными (не изменяют состояния сервера – GET, HEAD, OPTIONS), идемпотентными (возвращают один и тот же результат на идентичный запрос – GET, HEAD, PUT, DELETE) или кэшируемыми.

Методы HTTP запроса: 


GET - запрашивает представление ресурса. Запросы с использованием этого метода могут только извлекать данные. Не имеет тела.

POST - используется для отправки сущностей к определённому ресурсу. Часто вызывает изменение состояния или какие-то побочные эффекты на сервере. Имеет тело.

PUT - заменяет все текущие представления ресурса данными запроса.

DELETE - удаляет указанный ресурс.

PATCH - используется для частичного изменения ресурса.

 

POST запрос.

Применяется для передачи пользовательских данных заданному ресурсу. Например, в блогах посетители обычно могут вводить свои комментарии к записям в HTML-форму, после чего они передаются серверу методом POST и он помещает их на страницу. При этом передаваемые данные (в примере с блогами — текст комментария) включаются в тело запроса. Аналогично с помощью метода POST обычно загружаются файлы на сервер. Сообщение ответа сервера на выполнение метода POST не кэшируется.

 

Отличие GET от POST

GET отсылает запрос на получение данных, POST отправляет данные. GET. Добавляется в закладки. Кэшируется. История остается в закладках браузера. Есть ограничения по по символам, так как данные передаются в URL, то должен ограничиваться в 2048 символах (мах строка символов в URL). По типу данных допускается использование только символов ASCII. Менее безопасный, так как передоваемые в URL данные, видны пользователю. Данные в URL доступны всем.

 

Разница между PUT и POST

Разница между PUT и POST состоит в том, что PUT является идемпотентным: повторное его применение дает тот же результат, что и при первом применении (то есть у метода нет побочных эффектов), тогда как повторный вызов одного и того же метода POST может иметь такие эффекты, как например, оформление одного и того же заказа несколько раз.


Все безопасные методы являются также идемпотентными, как и некоторые другие, но при этом небезопасные, такие как PUT или DELETE.

Структура HTTP запроса:

-строку запроса, в которой указывается версия HTTP протокола и HTTP метод запроса;
-ноль или несколько заголовков, разделенных между собой символом конца строки, в которых передаются другие HTTP праметры для успешного HTTP соединения;
-пустую строку, чтобы отделить служебную информацию от тела сообщения;
-необязательное тело сообщения.

 

Зачем нужны Header?

Для того чтобы компьютер мог понимать с каким ресурсом работать:

Заголовок-сущность Content-Type используется для того, чтобы определить MIME тип ресурса.
MIME тип:

Content-Type (text/html; charset=utf-8)

Клиент может установить Accept в application/json, если он запрашивает ответ в JSON.

И наоборот, когда отправляются данные, установленный Content-Type в application/xml говорит клиенту, что данные были отправлены в XML форме.

 

Пример запрос-ответ по протоколу HTTP:

 

© 2021 QAstart.by