Может ли запрос HTTP PUT иметь приложение /x -www-form-urlencoded как Content-Type?
Допустимо ли отправлять данные формы в запросе HTTP PUT? Если бы вы могли указать мне на спецификацию, это было бы здорово.
Я прошел через спецификацию HTTP 1.1. Но я не нашел, могут ли запросы PUT иметь данные формы или нет.
Я использую Java для создания и доступа к веб-сервисам RESTful. POST поддерживает application/x-www-form-urlencoded
как Content-Type.
Из спецификации я понимаю, что POST предназначен для создания нового ресурса (подресурса ресурса, идентифицируемого URI запроса), а PUT - для создания или обновления ресурса.
Но я сомневаюсь, что метод PUT также может содержать данные формы? Я пытаюсь выяснить, нормально ли это в соответствии со спецификацией. И я не могу найти ничего об этом в спецификации HTTP 1.1.
Ответы
Ответ 1
Да, вы можете использовать application/x-www-form-urlencoded с PUT. Спецификация HTTP не ограничивает какие методы могут использоваться с какими типами носителей.
В настоящее время в спецификации Httpbis значительно расширилось обсуждение PUT http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-14#page-18
Ответ 2
Так как метод PUT используется для хранения заключенной entity в соответствии с предоставленным URI и поле заголовка Content-Type является entity заголовка, законно использовать поле заголовка Content-Type в запросе PUT.
Теперь остается вопрос, сможет ли принимающий сервер обрабатывать такой запрос и информацию Content-Type соответствующим образом. В худшем случае он не может обрабатывать поле заголовка Content-Type и возвращает ответ 501:
Получатель объекта НЕ ДОЛЖЕН игнорировать любой контент- (например, Content-Range), которые он не понимает и не реализует и ДОЛЖЕН возвращать ответ 501 (не реализованный) в таких случаях.
Ответ 3
Вот спецификация 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, пожалуйста, обновите свой вопрос со спецификой