HTTP (Hypertext Transport Protocol)

目次

Request (リクエスト)

メソッド名 パス名 HTTP/バージョン

パス名には、Hostヘッダに続くパスを指定します。バージョンには1.0と1.1がありますが、現在では1.1が主流です。

HTTP Method (メソッド )

メソッド一覧 (一部)
Method 説明
HEAD ヘッダのみの情報を要求する
GET 情報を要求する
POST 情報をサーバに転送する

HEAD

GET

クエリの最大長

GETメソッドではクエリをURLに含めて指定するため、そのサイズがURLの最大長によって制限されます。このURLの最大長はサーバやブラウザによって異なりますが、2000文字程度に抑えるべきです。http - What is the maximum length of a URL in different browsers? - Stack Overflow

    最大
サーバ Apache 8,192byteまで
IIS 16,384文字まで
Perl HTTP::Daemon 8,000文字まで
ブラウザ Internet Explorer 8 2,083文字まで
Firefox 1.5 100,000文字以上
Safari 80,000文字以上
Opera 190,000文字以上
WWW FAQs: What is the maximum length of a URL? (2006/10/13)

サーバによっても異なりますが、制限を超えた場合にはステータスコード414で、「Request-URI Too Large」のように返されます。

長いURLでリクエストしたときの、サーバの応答を確認できます。

※Internet Explorerは2083文字の制限に自動で切り詰めるため、サーバの応答を正しく確かめられません。

URLエンコード (パーセントエンコード) により予期せず文字数が増えることがあるため、ASCII以外の文字には特に注意が必要です。

POST

POSTメソッドは、サーバにデータを送信する場合に使用します。GETでもデータの送信は可能ですが、POSTではより大きなデータを扱えます。HTTP Methods GET vs POST

データの送信方法として、

  • multipart/form-data
  • application/x-www-form-urlencoded

の2種類があります。

multipart/form-data
Content-Disposition: form-data; name="NAME"
multipart/form-data - Forms in HTML documents
application/x-www-form-urlencoded

Formから送信されるときの既定のコンテンツタイプで、次の規則に従います。

  • データの名前と値はエスケープされる。
  • 空白は「+」に、予約されている文字はRFC1738のsection 2.2に従いエスケープされる。
  • 英数字ではない文字は、パーセント記号とASCIIコードの2桁の16進記号に置き換えられる。たとえば"CR LF"は、"%0D%0A"となる。
  • データの名前と値は「=」で区切られ、複数のデータは「&」で区切られる。
application/x-www-form-urlencoded - Forms in HTML documents

Response (レスポンス)

HTTP/バージョン ステータスコード メッセージ

メッセージは、ステータスコードを説明するものです。

Connection

Connection 説明
Keep-Alive 持続的接続をする
close 接続を閉じる
複数の技術系サイトから、まとめて検索