默认的表单 HTTP 方法是什么?

如果提交 HTML 表单时没有指定方法,默认的 HTTP 方法是什么? GET 还是 POST?

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

如果可能的话,请引用 W3C 标准文档。

116243 次浏览

这里 是 W3C 引用,它说 GET 是默认值。

是 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-有什么区别?

根据您要求的 W3C 标准,默认值应该是 GET。

如果未指定,则默认值为 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表格递交方法
FORM元素的 method 属性指定 HTTP 方法 用于将表单发送给处理代理。此属性可以有两个值:

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

  • Post: 使用 HTTP“ post”方法,表单数据集包含在表单正文中,并发送给处理代理。

当窗体是幂等的时候,应该使用“ get”方法 (即无副作用)。 许多数据库搜索没有可见的副作用 并为“ get”方法提供理想的应用。

(更全面的回答,也是关于 action 和 enctype)

HTML 表单的默认“ method”、“ action”和“ enctype”,如果未指定,则为 ,
< br > (也就是说,默认情况下,一个表单用输入的参数请求当前页面)

这种行为从未改变,除了“操作”(在 HTML 4中它是必需的)。引用:

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

如果元素是一个 Submit Button 并且有这样一个属性,那么元素的 action 就是元素的 formaction 属性的值,如果元素有这样一个属性,那么元素的 action 就是它的 form owner 的 action 属性的值,否则就是空字符串。< ... > 如果 开拍是空字符串,那么让 开拍成为表单文档的文档 URL。

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

方法: “可能(不区分大小写)的值是‘ get’(默认值)和‘ post’。”
操作: 没有默认值,DTD 需要它
Enctype: “此属性的默认值是‘ application/x-www-form-urlencode’。”< br >

<!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 中使用
Enctype: “它默认为 Application/x-www-form-urlencode。”

<!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 中使用
Action: “表单的 action URI 默认为文档的基 URI”
Enctype: “所有表单的默认编码是‘ application/x-www-form-urlencode’。”

<!ATTLIST FORM
ACTION CDATA #IMPLIED
METHOD (%HTTP-Method) GET
ENCTYPE %Content-Type; "application/x-www-form-urlencoded"