Может ли HTTP-запрос PUT иметь application / x-www-form-urlencoded в качестве Content-Type? - PullRequest
13 голосов
/ 10 июня 2011

Допустимо ли отправлять данные формы в запросе HTTP PUT? Если бы вы могли указать мне спецификацию, это было бы здорово.

Я прошел спецификацию HTTP 1.1. Но я не нашел, могут ли запросы PUT иметь данные формы или нет.

Я использую Java для создания и доступа к веб-сервисам RESTful. POST поддерживает application/x-www-form-urlencoded в качестве Content-Type.

Из спецификации я понимаю, что POST предназначен для создания нового ресурса (подресурса ресурса, идентифицируемого URI запроса), а PUT - для создания или обновления ресурса.

Но я сомневаюсь, что метод PUT также может содержать данные формы? Я пытаюсь выяснить, нормально ли это в соответствии со спецификацией. И я не могу найти ничего об этом в спецификации HTTP 1.1.

Ответы [ 3 ]

7 голосов
/ 10 июня 2011

Да, вы можете использовать application / x-www-form-urlencoded с PUT. Спецификация HTTP не ограничивает какие методы могут использоваться с какими типами носителей.

В текущей спецификации Httpbis значительно расширено обсуждение PUT http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-14#page-18

3 голосов
/ 10 июня 2011

Поскольку метод PUT используется для хранения вложенного объекта под предоставленным URI, а поле заголовка Content-Type равно поле заголовка объекта , допустимо использовать поле заголовка Content-Type в запросе PUT.

Теперь остается вопрос, может ли принимающий сервер обработать такой запрос и Content-Type соответствующим образом. В худшем случае он не может обработать поле заголовка Content-Type и возвращает ответ 501:

Получатель объекта НЕ ДОЛЖЕН игнорировать любое содержимое - * (например, Content-Range ) заголовки, которые он не понимает или не реализует и ДОЛЖЕН вернуть ответ 501 (не реализован) в таких случаях.

0 голосов
/ 10 июня 2011

Вот HTTP-спецификация от wc3

http://www.w3.org/Protocols/rfc2616/rfc2616.html

Кроме того, вот страницы для Content-Type

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17

и PUT

http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.6

Если есть конкретный язык, с которым вам нужна помощь в отношении HTTP PUT, обновите ваш вопрос, указав

...