<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webアプリケーション</anchor>では、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クエリー引数</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要求本体</anchor>で
<code class="MIME" xml:lang="en">application/x-www-form-urlencoded</code> 形式で指定された名前と値の組のことを<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">parameter</rt></rubyb></dfn>と呼ぶことがよくあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサーバー</anchor>が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL query</anchor> や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要求本体</anchor>をどう解釈するかは完全に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サーバー</anchor>依存です。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webアプリケーションフレームワーク</anchor>などで独自の制約を課していることもありますが、
その制約もそれぞれです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> 多くの場合には、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> からの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォームの提出</anchor>を受け取ることを考慮して、
次のように解釈する実装となっているようです。</p><figure class="list"><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <code class="HTTP" xml:lang="en">GET</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メソッド</anchor>のとき、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL query</anchor> があれば、
<code class="MIME" xml:lang="en">application/x-www-form-urlencoded</code> の名前と値の組と解釈します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <code class="HTTP" xml:lang="en">POST</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メソッド</anchor>のとき、<ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <code class="HTTP" xml:lang="en">Content-Type:</code> が <code class="MIME" xml:lang="en">application/x-www-form-urlencoded</code>
なら、その形式の名前と値の組と解釈します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> <code class="HTTP" xml:lang="en">Content-Type:</code> が <code class="MIME" xml:lang="en">multipart/form-data</code>
なら、その形式の名前と値または名前とファイル名とファイル内容の組と解釈します。</li></ul></li></ul></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォームの提出</anchor>だけでなく、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数 (OAuth 1.0)</anchor> や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数 (OAuth 2.0)</anchor>
もこれと整合性のある動作となっています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> 細かい動作には、色々なバリエーションがあります。例えば、
次のような違いがあります。<figure class="list"><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> <code class="HTTP" xml:lang="en">POST</code> でも、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL query</anchor> を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>として解釈する場合があります。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> <code class="HTTP">POST</code> で <code class="HTTP" xml:lang="en">Content-Type:</code> がその他のものであるときに、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL query</anchor> を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>として解釈する場合があります。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> <code class="HTTP">POST</code> のとき、 <code class="HTTP" xml:lang="en">Content-Type:</code>
を無視して <code class="MIME" xml:lang="en">application/x-www-form-urlencoded</code> として解釈する場合があります。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> <code class="MIME" xml:lang="en">application/x-www-form-urlencoded</code> の組の区切りの <code>&amp;</code>
だけでなく、 <code>;</code> も区切りと解釈する場合があります。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> 名前に重複がある時、どれを選択するのか、複数指定とするのかは、それぞれです。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> 決め打ち、その他の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>で決め打ち、
<code>_charset_</code> 依存、独自の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>指定引数依存など、
いろいろな方法が使われています。</li></ul></figure></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> <code>GET</code> (と <code>HEAD</code>) と <code class="HTTP">POST</code> 以外でどう動作するべきかはあまり明確ではありません。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォームの提出</anchor>ではこれら以外の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要求メソッド</anchor>を使いませんから、基準となる動作がありません。
もっとも、これら以外の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要求メソッド</anchor>を使う必要がある場面もそう多くなさそうです。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> 例えば <code class="HTTP">PUT</code> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要求本体</anchor>を本項の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>として解釈するべきではなさそうです。</p></example><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> 保守的に、 <code xmlns="http://www.w3.org/1999/xhtml" class="HTTP" xml:lang="en">POST</code> の時だけ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要求本体</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>として扱い、
それ以外は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL query</anchor> のみ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>とするのが良さそうです。</comment-p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;20</anchor-internal> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> データファイルの <code xmlns="http://www.w3.org/1999/xhtml">param_body</code> 欄が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">真</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要求メソッド</anchor>が、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要求本体</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>として解釈するべきと思われるものです。<refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> <cite xml:lang="en">data-web-defs/http-methods.json at master · manakai/data-web-defs</cite> (<time>2016-06-08 00:17:29 +09:00</time>) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/manakai/data-web-defs/blob/master/data/http-methods.json">https://github.com/manakai/data-web-defs/blob/master/data/http-methods.json</anchor-external><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> ドキュメント: <cite xml:lang="en">data-web-defs/http-methods.txt at master · manakai/data-web-defs</cite> (<time>2016-06-08 00:18:00 +09:00</time>) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/manakai/data-web-defs/blob/master/doc/http-methods.txt">https://github.com/manakai/data-web-defs/blob/master/doc/http-methods.txt</anchor-external></li></ul></li></ul></refs></comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">引数 (HTTP)</title></anchor>構文や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor> の <code class="ABNF" xml:lang="en">param<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">URL param</title></code>
構文とは無関係です。</p></body></html>