デフォルトのフォームHTTPメソッドとは何ですか?


147

メソッドを指定せずにHTMLフォームを送信すると、デフォルトのHTTPメソッドはどのように使用されますか?GETまたはPOST?

この動作はHTML標準間で変更されたことがありますか?

可能であれば、W3C標準ドキュメントを引用してください。


1
すでに(W3C仕様とすべてで)見事にここで回答されていますstackoverflow.com/questions/2225735/...
ペッカ

回答:


171

GETです。

W3C Superceded Recommendation 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メソッドを指定します。この属性は、次の2つの値を取ります。

  • get:HTTPの「get」メソッドを使用すると、フォームデータセットがaction属性で指定されたURIに(疑問符( "?")をセパレーターとして)追加され、この新しいURIが処理エージェントに送信されます。

  • post:HTTPの「post」メソッドを使用すると、フォームデータセットがフォームの本文に含まれ、処理エージェントに送信されます。

"get"メソッドは、フォームがべき等である(つまり、副作用を引き起こさない)場合に使用する必要があります。多くのデータベース検索には目に見える副作用はなく、「get」メソッドの理想的なアプリケーションになります。



0

(詳細な回答、アクションとenctypeについても)

HTMLフォームのデフォルトの「メソッド」、「アクション」、「enctype」は、指定されていない場合、
それぞれGET、現在のURL application/x-www-form-urlencodedです。
(つまり、デフォルトでは、フォームは入力されたパラメーターを使用して現在のページを要求します。)

この動作は、「アクション」を除いて変更されていません(HTML 4では必須でした)。引用:

method: " メソッド属性のデフォルト欠落値は... GET状態です。"
アクション:

要素のアクションは、要素が送信ボタンでそのような属性を持つ場合、要素のformaction属性の値、またはフォーム所有者のaction属性の値(ある場合)、または空の文字列です。<...> 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
enctype のみ:「デフォルトでは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になります」
enctype:「すべてのフォームのデフォルトのエンコーディングは「application / x-www-form-urlencoded」です。」

<!ATTLIST FORM
        ACTION CDATA #IMPLIED
        METHOD (%HTTP-Method) GET
        ENCTYPE %Content-Type; "application/x-www-form-urlencoded"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.