REST = Передача представительского состояния
REST - это набор правил, которые при соблюдении позволяют создавать распределенное приложение с определенным набором желаемых ограничений.
REST - это протокол для обмена любыми (XML, JSON и т. Д.) Сообщениями, которые могут использовать HTTP для транспортировки этих сообщений.
Особенности:
Он не имеет состояния, что означает, что в идеале не должно поддерживаться соединение между клиентом и сервером.
Клиент несет ответственность за передачу своего контекста на сервер, а затем сервер может сохранить этот контекст для обработки дальнейшего запроса клиента. Например, поддерживаемый сервером сеанс идентифицируется идентификатором сеанса, переданным клиентом.
Преимущества безгражданства:
- Веб-службы могут обрабатывать каждый вызов метода отдельно.
- Веб-сервисам не нужно поддерживать предыдущее взаимодействие с клиентом.
- Это, в свою очередь, упрощает дизайн приложения.
- HTTP, в отличие от TCP, сам по себе является протоколом без сохранения состояния, поэтому веб-службы RESTful без проблем работают с протоколами HTTP.
Недостатки безгражданства:
- В каждый запрос необходимо добавить один дополнительный слой в форме заголовка, чтобы сохранить состояние клиента.
- В целях безопасности нам нужно добавлять информацию заголовка к каждому запросу.
Методы HTTP, поддерживаемые REST:
GET: / string / someotherstring
Он идемпотентен и в идеале должен возвращать одни и те же результаты при каждом вызове
PUT:
Так же, как GET. Идемпотент и используется для обновления ресурсов.
POST: должен содержать URL и тело
Используется для создания ресурсов. Несколько вызовов должны в идеале возвращать разные результаты и создавать несколько продуктов.
DELETE:
Используется для удаления ресурсов на сервере.
ГОЛОВА:
Метод HEAD идентичен GET, за исключением того, что сервер НЕ ДОЛЖЕН возвращать тело сообщения в ответе. Мета-информация, содержащаяся в заголовках HTTP в ответ на запрос HEAD, ДОЛЖНА быть идентична информации, отправленной в ответ на запрос GET.
ВАРИАНТЫ:
Этот метод позволяет клиенту определять параметры и / или требования, связанные с ресурсом или возможностями сервера, не предполагая действия ресурса или не инициируя извлечение ресурса.
HTTP-ответы
Здесь вы найдете ответы на все вопросы .
Вот несколько важных:
200 - ОК
3XX - требуется дополнительная информация от клиента и перенаправление URL
400 - Неверный запрос
401 - Несанкционированный доступ
403 - Запрещено
Запрос был действителен, но сервер отказывается от действия. Пользователь может не иметь необходимых разрешений для ресурса или ему может потребоваться какая-либо учетная запись.
404 - Не найдено
Запрашиваемый ресурс не найден, но может быть доступен в будущем. Последующие запросы клиента допустимы.
405 - метод не разрешен
Метод запроса не поддерживается для запрошенного ресурса; например, запрос GET для формы, которая требует представления данных через POST, или запрос PUT для ресурса, доступного только для чтения.
404 - Запрос не найден
500 - Внутренняя ошибка сервера
502 - ошибка неверного шлюза