Можно ли опубликовать данные формы с помощью HTTP-запроса HEAD? - PullRequest
1 голос
/ 15 ноября 2011

Я могу использовать запрос GET для отправки данных формы HTML. Если запрос HEAD функционально идентичен GET, за исключением содержимого в ответе, то могу ли я предоставить данные формы HTML с HEAD?

Первая строка HTTP-запроса может выглядеть примерно так:

HEAD /processdata.php?first=john&last=doe&email=john@doe.com HTTP/1.1

RFC 2616 говорит:

The HEAD method is identical to GET except that the server MUST NOT return a 
message-body in the response.

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

Ответы, основанные на оцененной спецификации. ТИА.

Ответы [ 4 ]

2 голосов
/ 16 ноября 2011

Ваш вопрос связан с HTML, HTTP или серверной реализацией анализатора запросов?

Если вы говорите о HTML, ответ «НЕТ». HTML поддерживает только GET илиСООБЩЕНИЕ.Если вы попытаетесь создать форму, подобную

<form method="HEAD" action="http://ard.de">

, Firefox игнорирует атрибут method и отправит запрос как GET.

Если вы говорите о HTTP, ответэто "ДА" .Вы можете отправить запрос со строкой запроса, как это делает GET-HTML-FORM http://ard.de?param1=value&param2=value.

Он не указан, но, как я понял, в спецификации HTTP также не запрещено отправлять параметр вТело запроса (как обычно это делает POST-HTML-FORM).Это обсуждалось здесь .

Если вы говорите о синтаксическом анализаторе на стороне сервера , вы должны упомянуть об этом.Реализация стека сервлетов J2EE 6 всегда анализирует строку запроса, но она анализирует тело только для запроса POST (даже для запроса PUT).

1 голос
/ 15 ноября 2011

HEAD - это то же самое, что и GET, за исключением ответа, не содержащего полезную нагрузку.

Так что да, вы можете отправлять все, что отправляете с помощью GET.

1 голос
/ 15 ноября 2011

Да, запрос HEAD может принимать параметры. Однако в RFC 2616 также говорится, что запрос HEAD или GET должен быть идемпотентным, то есть существуют очень строгие ограничения на побочные эффекты, разрешенные для такого запроса.

Запрос GET или HEAD должен использоваться только для извлечения данных, а НЕ для хранения данных на сервере.

0 голосов
/ 15 ноября 2011

Полагаю, вы можете, но реализация HttpRequest не поможет вам разобрать тело запроса.И некоторые прокси могут блокировать такой «подозрительный» пакет.

Другими словами, возможно, но не будет соответствовать стандарту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...