我可以使用GET请求提交HTML表单数据。如果HEAD请求在功能上与GET相同,不包括响应中的内容,那么我是否应该能够使用HEAD提交HTML表单数据?
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.
(几乎是this question的欺骗,除了我想知道我是否可以提交HTML表单数据。)
根据受欢迎的规格做出回应。 TIA。
答案 0 :(得分:2)
您是否对请求解析器的HTML,HTTP或服务器实现有疑问?
如果您正在谈论HTML,答案是“否”。 HTML仅支持GET或POST。如果您尝试创建类似
的表单<form method="HEAD" action="http://ard.de">
Firefox忽略method
属性并将请求发送为GET。
如果您在谈论HTTP,答案是“是”。您可以使用查询字符串发送请求,例如GET-HTML-FORM http://ard.de?param1=value¶m2=value
。
没有指定,但正如我所理解的HTTP规范,也不禁止在请求正文中发送参数(如POST-HTML-FORM通常那样)。讨论了here。
如果您正在谈论服务器端解析器,则必须提及它。 J2EE 6 servlet堆栈实现总是解析查询字符串,但它仅针对POST请求解析主体(甚至不用于PUT请求)。
答案 1 :(得分:1)
是的,HEAD请求可以带参数。但是,RFC 2616还说HEAD或GET请求应该是幂等的,也就是说,对这种请求允许的副作用有非常严格的限制。
GET或HEAD请求只应用于检索数据,而不是用于在服务器上存储内容。
答案 2 :(得分:1)
除了没有携带有效载荷的响应外,HEAD与GET相同。
所以是的,你可以通过GET发送任何你想发送的内容。
答案 3 :(得分:0)
我想你可以,但是HttpRequest实现不会帮助你解析请求的主体。一些代理人可能会阻止这样一个可疑的&#34;一揽子贷款。
换句话说,这是可能的,但不符合标准。