Я пишу модуль RESTful API для приложения на PHP, и я немного запутался в глаголах HEAD
и OPTIONS
.
OPTIONS
Используется для получения доступных HTTP-глаголов для данного ресурса?HEAD
Используется, чтобы определить, доступен ли данный ресурс?
Если бы кто-нибудь мог пояснить * эти глаголы, это было бы очень полезно.
* Уточнение касалось архитектур RESTful API, меняющих назначение HTTP-команд. С тех пор я пришел к выводу, что и то, HEAD
и другое неOPTIONS
должно быть изменено, а вместо этого ведет себя предсказуемо, как и любое приложение HTTP. Ой, как мы растем за 2 года.
Ответы:
Согласно: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
источник
CONNECT
глагол. Было бы плохим выбором использовать этот метод для аутентификации RESTful?CONNECT
туннелирование SSL, но представьте, что произойдет, если у потребителя вашего приложения будет прокси, реализованныйCONNECT
так, как он был указан в RFC, запросы могут не передаваться на ваш применение.OPTIONS
метод возвращает информацию об API (методы / тип содержимого)HEAD
метод возвращает информацию о ресурсе (версия / длина / тип)Ответ сервера
ПАРАМЕТРЫ
HTTP/1.1 200 OK Allow: GET,HEAD,POST,OPTIONS,TRACE Content-Type: text/html; charset=UTF-8 Date: Wed, 08 May 2013 10:24:43 GMT Content-Length: 0
ГОЛОВА
HTTP/1.1 200 OK Accept-Ranges: bytes Content-Type: text/html; charset=UTF-8 Date: Wed, 08 May 2013 10:12:29 GMT ETag: "780602-4f6-4db31b2978ec0" Last-Modified: Thu, 25 Apr 2013 16:13:23 GMT Content-Length: 1270
Вот красивая и краткая статья о том, как HEAD и OPTIONS вписываются в архитектуру RESTful.
источник
OPTIONS сообщает вам такие вещи, как «Какие методы разрешены для этого ресурса».
HEAD получает заголовок HTTP, который вы получили бы, если бы сделали запрос GET, но без тела. Это позволяет клиенту определять информацию кэширования, какой тип контента будет возвращен, какой код состояния будет возвращен. Доступность - это лишь небольшая часть этого.
источник
OPTIONS
было то, что я предполагал, и такая реализация будет легкой с моим существующим подходом. Согласно RFC-цитате sdolgy,OPTIONS
стандарт формата не определен. Предполагается, что формат ответа такой же, как и у других ответов? ( например, JSON, XML и т. д. )