5.1.6 Webブラウザー・コンテンツ
HTTPクライアント・ブラウザーからHTTPサーバーにデータを送信する場合、2つのコンテンツ・エンコーディング方法を使用できます。
どちらの方法も、クライアント・ブラウザーで使用されるバイト・エンコーディングを識別しないため、文字がASCIIの範囲外の場合、クライアント・データからサーバーのエンコーディングに変換すると、問題になることがあります。
一部のブラウザーではcontent-typeのcharset属性を使用して、サーバーにポストされるINPUT形式データに適用される省略値のクライアント・ブラウザー・エンコーディングを上書きすることが観測されています。
HTMLページがcontent-typeのcharset属性を使用してサーバーから提供された場合、この属性にはHTMLドキュメント内のMetaタグと同じ効果があります。
HTTPクライアント・ブラウザーで使用されるバイト・エンコーディングを制御するには、HTMLドキュメントでMetaタグを使用します。
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<head>
charsetの値にutf-8を使用する場合、クライアント・ロケールからのHTML FORMポストは、サーバーによってUTF-8エンコードで受信されます。
メソッド1:multipart/format-data
HTMLソース:
<FORM METHOD="POST" ACTION="http://lansa01:88/cgi-bin/jsmdirect?upload" ENCTYPE="multipart/form-data">
<INPUT NAME="SONUMBER" TYPE="TEXT" VALUE="12345"/></TD></TR>
<INPUT NAME="CUSTNAME" TYPE="TEXT" VALUE="ABC Industries"/></TD></TR>
<INPUT NAME="STREET" TYPE="TEXT" VALUE="123 Main St"/></TD></TR>
<INPUT NAME="CITY" TYPE="TEXT" VALUE="Chicago"/></TD></TR>
<INPUT NAME="POSTCODE" TYPE="TEXT" VALUE="60609"/></TD></TR>
<INPUT NAME="FILE" TYPE="FILE" SIZE ="60"/>
<INPUT TYPE="SUBMIT" VALUE="Send"/>
</FORM>
コンテンツ・タイプ:
multipart/form-data; boundary=---------------------------7d37e321500b2
コンテンツ:
-----------------------------7d37e321500b2
Content-Disposition: form-data; name="SONUMBER"
12345
-----------------------------7d37e321500b2
Content-Disposition: form-data; name="CUSTNAME"
ABC Industries
-----------------------------7d37e321500b2
Content-Disposition: form-data; name="STREET"
123 Main St
-----------------------------7d37e321500b2
Content-Disposition: form-data; name="CITY"
Chicago
-----------------------------7d37e321500b2
Content-Disposition: form-data; name="POSTCODE"
60609
-----------------------------7d37e321500b2
Content-Disposition: form-data; name="FILE"; filename=""
Content-Type: application/octet-stream
-----------------------------7d37e321500b2--
メソッド2:application/x-www-form-urlencoded
HTMLソース:
<FORM METHOD="POST" ACTION="http://lansa01:88/cgi-bin/jsmdirect?upload">
<INPUT NAME="ORDER" TYPE="TEXT" VALUE="12345"/></TD></TR>
<INPUT NAME="CUSTNAME" TYPE="TEXT" VALUE="ABC Industries"/></TD></TR>
<INPUT NAME="STREET" TYPE="TEXT" VALUE="123 Main St"/></TD></TR>
<INPUT NAME="CITY" TYPE="TEXT" VALUE="Chicago"/></TD></TR>
<INPUT NAME="POSTCODE" TYPE="TEXT" VALUE="60609"/></TD></TR>
<INPUT TYPE="SUBMIT" VALUE="Send"/>
</FORM>
コンテンツ・タイプ:
application/x-www-form-urlencoded
コンテンツ:
ORDER=12345&CUSTNAME=ABC+Industries&STREET=123+Main+St&CITY=Chicago&POSTCODE=60609