HTTP методы

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

Метод указывается в начале HTTP-запроса (стартовой строке).

Основные методы

  • GET — запрашивает ресурсы у сервера. Получение данных в любом формате: HTML, TXT, JSON и так далее.
  • HEAD — запрашивает ресурсы у сервера также как GET, но ожидает в ответе только заголовки. Используется для проверки возвращаемых сервером заголовков (headers). Не допускается в HTML-формах.
  • POST — отправка данных на сервер для создания ресурсов. При разработке сайтов обычно используется и для сохранения и для обновления ресурсов, а также других команд для исполнения на сервере. При разработке RESTFul-приложений рекомендую использовать этот метод только для создания ресурсов.
  • PUT — используется для создания и обновления (замены) ресурсов при разработке RESTFul-приложений. Не допускается в HTML-формах.
  • PATCH — используется для обновления ресурсов (их частей) при разработке RESTFul-приложений. Не допускается в HTML-формах.
  • DELETE — используется для удаления ресурсов при разработке RESTFul-приложений. Не допускается в HTML-формах.
  • TRACE — служебный метод, используется для проверки обратной связи до выбранного ресурса. Не допускается в HTML-формах.
  • OPTIONS — служебный метод, используется для получения информации о сервере и функционале, например, допустимых методах обращения (GET, POST и так далее), требованиям к данным (имеется ввиду валидация на сервере) и так далее.
  • CONNECT — служебный метод, используется для создания туннеля с сервером через HTTPS. Не допускается в HTML-формах.

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

При изучении HTTP-методов вы, скорее всего, встретите понятие идемпотентности. Вкратце, оно означает, что идемпотентный HTTP-метод не меняет состояние сервера. Проще говоря, такие методы можно вызывать множество раз подряд и они ничего не сломают. К ним относятся: GET, HEAD, PUT, DELETE, OPTIONS и TRACE. К неидемпотентным, соответственно, относятся: POST, CONNECT и PATCH.

Три метода из идемпотентных являются безопасными (GET, HEAD, OPTIONS) — они только запрашивают данные, ничего не меняя на сервере.

Полезные ссылки

28.01.2020

Категория(-и): Разработка

#

Добавить комментарий