默认形式的HTTP方法是什么?


147

当提交HTML表单而不指定方法时,使用的默认HTTP方法是什么?GET还是POST?

在HTML标准之间,这种行为是否发生过变化?

请尽可能引用W3C标准文档。


1
已经出色地回答了这里(与W3C规范,所有):stackoverflow.com/questions/2225735/...
佩卡·

Answers:


171

是GET。

看一下W3C取代的建议书17.3 FORM元素

摘抄:

<!ATTLIST FORM
  %attrs;                              -- %coreattrs, %i18n, %events --
  action      %URI;          #REQUIRED -- server-side form handler --
  method      (GET|POST)     GET       -- HTTP method used to submit the form--
  enctype     %ContentType;  "application/x-www-form-urlencoded"
  accept      %ContentTypes; #IMPLIED  -- list of MIME types for file upload --
  name        CDATA          #IMPLIED  -- name of form for scripting --
  onsubmit    %Script;       #IMPLIED  -- the form was submitted --
  onreset     %Script;       #IMPLIED  -- the form was reset --
  accept-charset %Charsets;  #IMPLIED  -- list of supported charsets --
  >

好读

HTML表单中的GET和POST方法-有什么区别?



9

如果未指定,则默认为GET。我没有迹象表明这种行为曾经有所不同。GET是默认值,因为它指定应将方法用于没有副作用的操作,这是有道理的。

http://www.faqs.org/faqs/www/cgi-faq/section-37.html

来自http://www.w3.org/TR/html401/interact/forms.html#h-17.3的引用:

method = get | post [CI]
此属性指定将使用哪种HTTP方法提交表单数据集。可能的(不区分大小写)值是“ get”(默认值)和“ post”。有关用法信息,请参阅表单提交部分。

17.13.1表单提交方法元素
的method属性FORM指定用于将表单发送到处理代理的HTTP方法。此属性可以采用两个值:

  • get:使用HTTP“ get”方法,将表单数据集附加到由action属性指定的URI(带有问号(“?”)作为分隔符),并将此新URI发送到处理代理。

  • post:使用HTTP“ post”方法,表单数据集包含在表单主体中,并发送到处理代理。

当形式是幂等时(即不引起副作用),应使用“ get”方法。许多数据库搜索没有明显的副作用,因此是“ get”方法的理想应用。



0

(更完整的答案,也涉及动作和编码)

HTML表单的默认“方法”,“操作”和“编码类型”(如果未指定)
分别是GET,当前URL和application/x-www-form-urlencoded
(即,默认情况下,表单使用输入的参数来请求当前页面。)

除了“动作”(在HTML 4中是必需的)之外,此行为从未改变。引文:

方法:“ 方法属性的默认缺失值是... GET状态。”
行动:

如果元素是“提交按钮”且具有这样的属性,则元素的动作是元素的formaction属性的值;如果元素有一个,则其行为是其表单所有者的action属性的值,否则为空字符串。<...>如果采取行动为空字符串,则让action为表单文档的文档URL。

enctype:“ 默认缺少值 enctype属性的是... application/x-www-form-urlencoded状态。”

方法:“可能的(不区分大小写)值是'get'(默认值)和'post'。”
行动:没有默认值,DTD要求它使用
enctype:“此属性的默认值为'application / x-www-form-urlencoded'。”

<!ATTLIST FORM
  %attrs;                              -- %coreattrs, %i18n, %events --
  action      %URI;          #REQUIRED -- server-side form handler --
  method      (GET|POST)     GET       -- HTTP method used to submit the form--
  enctype     %ContentType;  "application/x-www-form-urlencoded"

方法:“可以是GET或POST,默认为GET。”
行动:没有明确的句子,仅在DTD 编码中
:“默认为application / x-www-form-urlencoded。”

<!ATTLIST FORM
        action %URL #IMPLIED  -- server-side form handler --
        method (%HTTP-Method) GET -- see HTTP specification --
        enctype %Content-Type; "application/x-www-form-urlencoded"

方法:无显式语句,仅在DTD中
操作:“表单的操作URI默认为文档的基本URI
”编码类型:“所有表单的默认编码为“ application / x-www-form-urlencoded”。

<!ATTLIST FORM
        ACTION CDATA #IMPLIED
        METHOD (%HTTP-Method) GET
        ENCTYPE %Content-Type; "application/x-www-form-urlencoded"
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.