Сравнение методов GET и POST 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Сравнение методов GET и POST



Название GET POST
Кнопка “назад” / Перезагрузка Безопасно Данные будут отправлены вновь. Браузер должен предупредить, что произойдет повторная отправка данных.
Добавление в закладки Да Нет
Кеширование Да Нет
История Остается в истории браузера. Не остается в истории браузера.
Ограничение в длине запроса Есть ограничения. Так как данные передаются в URL, то запрос должен ограничиваться 2048 символами (максимальная длина URL). Нет ограничений.
Ограничение по типу данных Допускается использование только символов ASCII. Не имеет ограничение. Допускаются также двоичные данные.
Безопасность Менее безопасный метод передачи, поскольку передаваемые в URL данные видны пользователю. POST более безопасный, так как данные не отображаются напрямую в web-клиенте пользователя, кроме того запрос не кешируется и не сохраняется в истории.
Видимость Данные в URL визуально доступны всем. Данные не видны в URL.

HEAD

Аналогичен методу GET, за исключением того, что в ответе сервера отсутствует тело. Запрос HEAD обычно применяется для извлечения метаданных, проверки наличия ресурса (валидация URL) и чтобы узнать, не изменился ли он с момента последнего обращения.

Заголовки ответа могут кэшироваться. При несовпадении метаданных ресурса с соответствующей информацией в кэше — копия ресурса помечается как устаревшая.

PUT

PUT заменяет все текущие представления ресурса данными запроса. Применяется для загрузки содержимого запроса на указанный в запросе URI.

Если по заданному URI не существует ресурс, то сервер создаёт его и возвращает статус 201 (Created). Если же был изменён ресурс, то сервер возвращает 200 (Ok) или 204 (No Content).

Сервер не должен игнорировать некорректные заголовки Content-*, передаваемые клиентом вместе с сообщением. Если какой-то из этих заголовков не может быть распознан или не допустим при текущих условиях, то необходимо вернуть код ошибки 501 (Not Implemented).

Сообщения ответов сервера на метод PUT не кэшируются.

Фундаментальное различие методов POST и PUT заключается в понимании предназначений URI ресурсов. Метод POST предполагает, что по указанному URI будет производиться обработка передаваемого клиентом содержимого. Используя PUT, клиент предполагает, что загружаемое содержимое соответствует находящемуся по данному URI ресурсу.

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

PATCH

PATCH используется для частичного изменения ресурса. Аналогичен PUT, но для передачи фрагмента данных.

DELETE

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

OPTIONS

OPTIONSпоказывают какие HTTP-методы доступны для конкретного URL-адреса.

Используется для определения возможностей веб-сервера или параметров соединения для конкретного ресурса. В ответ серверу следует включить заголовок Allow со списком поддерживаемых методов. Также в заголовке ответа может включаться информация о поддерживаемых расширениях.

Пример: Для того, чтобы узнать какие методы запросов поддерживаются сервером, можно воспользоваться curl направить OPTIONS запрос:

Ответ на запрос содержит Allow (en-US) заголовок с поддерживаемыми методами:

Предполагается, что запрос клиента может содержать тело сообщения для указания интересующих его сведений. Формат тела и порядок работы с ним в настоящий момент не определён; сервер пока должен его игнорировать. Аналогичная ситуация и с телом в ответе сервера.

Для того, чтобы узнать возможности всего сервера, клиент должен указать в URI звёздочку — «*». Запросы «OPTIONS * HTTP/1.1» могут также применяться для проверки работоспособности сервера (аналогично «пингованию») и тестирования на предмет поддержки сервером протокола HTTP версии 1.1.

Результат выполнения этого метода не кэшируется.

TRACE

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

CONNECT

CONNECT устанавливает "туннель" к серверу, определённому по ресурсу. Преобразует соединение запроса в прозрачный TCP/IP-туннель, обычно чтобы содействовать установлению защищённого SSL-соединения через нешифрованный прокси.

WEB API

 

API (Application Programming Interface) - интерфейс для программирования приложений.

Набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) для использования во внешних программных продуктах.

API может отдавать данные в отличном от стандартного HTML формате, благодаря чему им удобно пользоваться при написании собственных приложений. Сторонние общедоступные API чаще всего отдают данные в одном из двух форматов: XML или JSON.

 

КОДЫ ОТВЕТОВ HTTP

 

Каждый HTTP-ответ должен содержать код состояния HTTP, сообщающий результат запроса.

Код ответа ( Код состояния, Код возврата, Cause code, Reason code, Status code, Disconnect code и т. д.) — ответ узла (сервера) на запрос в виде цифрового кода.

Характеризует то или иное событие протокола или технологии, произошедшее на отвечающей стороне: успешное или неуспешное выполнение и т. д.

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

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

В зависимости от сферы применения коды завершения могут быть общепринятыми и узкоспециальными.

Коды сгруппированы в 5 классов. Их группируют по первой цифре:

1xx — Информационные – коды этой группы дают понять, что на данный момент запросы обрабатываются в штатном режиме.

2xx —Успешные - коды означают, что те данные, которые браузер запрашивал у сервера, были успешно ему переправлены.

3xx — Перенаправления - коды сообщают пользователю, что для успешного выполнения, поданного пользователем запроса, необходимо сделать еще один запрос к другому URI.

4xx — Ошибка со стороны клиента - коды означают, что в результате неверно сформированного запроса он не может быть обработан сервером

5xx — Ошибка со стороны сервера – коды дают понять, что сбой в обработке корректно сформированного запроса произошел из-за ошибки на сервере.

Полный список кодов ответов HTTP с описаниями:

https://developer.mozilla.org/en-US/docs/Web/HTTP/Status



Поделиться:


Последнее изменение этой страницы: 2021-11-27; просмотров: 65; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.221.85.33 (0.006 с.)