Hypertext Transfer Protocol
Hypertext Transfer Protocolの最新ニュースをまとめて検索!
| アプリケーション層 |
| 9P ·CMIP · DHCP (DHCPv4 · DHCPv6) · DNS · EHRP · FTP · Gopher · GTP · HTTP · IMAP4 · IRC · NNTP · NTP · POP3 · RTCP · RTSP · SDP · SIP · SMTP · SNMP · SOAP · SSH · STUN · TELNET · XMPP |
| プレゼンテーション層 |
| HTML · XML · AFP |
| セッション層 |
| SSL/TLS · RPC |
| トランスポート層 |
| DCCP · IGMP · PPTP · RSVP · RTP · RUDP · SCTP · TCP · UDP · UDP-Lite |
| ネットワーク層 |
| ARP · BGP · ICMP · ICMPv6 · IGP · IP (IPv4 · IPv6) · IPsec · IS-IS · OSPF · RARP · RIP |
| データリンク層 |
| 802.11 · 802.16 · ATM · DTM · EVDO · FDDI · GPRS · HDLC · HSPA · ISDN · L2TP · PPP · SLIP · SMDS · Wi-Fi · WiMAX · アークネット · イーサネット · トークンリング · フレームリレー |
| 物理層 |
| G.709 · OFDM · PLC · SONET/SDH · イーサネット物理層 · ツイストペアケーブル · 同軸ケーブル · 光ファイバー · モデム |
HyperText Transfer Protocol(ハイパーテキスト・トランスファー・プロトコル、略称 HTTP)とは、WebブラウザとWebサーバの間でHTMLなどのコンテンツ送受信に用いられる通信プロトコルであり、RFC 2616で規定されている。ハイパーテキスト転送プロトコルとも呼ばれる。
目次 |
[編集] 概要
HTTP は HTML (HyperText Markup Language) や XML (Extensible Markup Language) によって記述されたハイパーテキストを転送することを主な目的としているが、転送する内容はハイパーテキストに限らず画像、音声などのバイナリデータも含め様々なデータを送ることができる。
HTTP はリクエスト-レスポンス型のプロトコルである。すなわち、クライアントがサーバにリクエストメッセージを送信し、サーバがこれにレスポンスメッセージを返す。レスポンスメッセージを返した時点で基本的にサーバは初期状態に戻る。つまり、サーバがクライアントの状態を保存しない。HTTP においてはトランスポート・プロトコルとして通常TCPを使用する。
World Wide WebにおけるWebページなどの資源は、Uniform Resource Identifierによって指定される。HTTP を使用して資源にアクセスするときは、http: が先頭についた URL を使用する。URL の例をあげる。
http://www.example.co.jp/~test/samples/index.html
最初、HTTP/0.9ではURLのみの簡単なやりとりであったが、HTTP/1.0でNNTPやSMTPのような各種ヘッダが定義され、HTTP cookieなどの利用が可能になった。 HTTP/1.1では複数データを転送するためのキープアライブ(keep-alive)機能やプロキシなどの利用も想定された仕様になった。
このほかの点を箇条書きで示す。
- ポート番号80をデフォルトとして使用する。
- SSL(TLS)で暗号化され、セキュリティを確保したHTTPは、HTTPSと呼ばれる。(httpsは実際にはURIスキームの1つであり、実際のプロトコルにはHTTP over SSL/TLSが用いられる。
- HTTP は基本的にサーバが状態保持しない (stateless) プロトコルだが、データベースなどを使用する Webアプリケーションにおいては状態保持が必要だったため、そのためにいわゆる Cookie とよばれる機構が Netscape Communications Corporation によって導入された。Cookie を使用することによって状態を管理し、"セッション" を維持することが可能になる。
- HTTPの拡張プロトコルとしてWebDAVがある。
- UPnPでは、HTTPをUDP上で使用するHTTPUや、マルチキャストで使用するHTTPMUが規定された。
[編集] 例
下にもっとも単純な、クライアントとサーバ(www.google.co.jp:80)とのHTTPプロトコルのやり取りの例を挙げる。
クライアントのリクエスト:
GET / HTTP/1.0
サーバのレスポンス:
HTTP/1.0 200 OK Cache-Control: private Content-Type: text/html Set-Cookie: PREF=ID=72c1ca72230dea65:LD=ja:TM=1113132863:LM=1113132863:S=nNO7MIp W2o7Cqeu_; expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.google.co.jp Server: GWS/2.1 Date: Sun, 10 Apr 2005 11:34:23 GMT Connection: Close <html><head><meta http-equiv="content-type" content="text/html; charset=Shift_JI S"><title>Google</title><style><!-- ・・・以下省略
上のリクエストのGETにあたる部分をメソッドといい、 HTTP/1.0では、GET, HEAD, PUT, POST, DELETE, LINK, UNLINK、 HTTP/1.1ではさらに、OPTIONS, TRACEがある。 GETメソッドのレスポンスにはヘッダ情報のあとに改行が挟まれ、コンテンツ本体が送られる。 HEADメソッドのレスポンスにはコンテンツサイズや更新日時などの情報を含むヘッダのみが送られる。
また、リクエストの2行目以降はヘッダーを送る。
ヘッダの各要素は
フィールド名: 内容
のペアで構成される。
ブラウザの情報を表すUser-Agent、使用候補言語を表すAccept-Language、他ページへのリンクを辿った場合にそのリンク元ページのURLを表すRefererなどが代表的なフィールドである。
なお、リクエスト時のHostヘッダーはHTTP/1.1では必須であるが、HTTP/1.0では無くても良い。 但し、サーバがバーチャルホストを利用している場合は、Hostヘッダが無いとリソース取得に失敗するので、たとえHTTP/1.0を使用していてもHostヘッダを付加しなければならない。
[編集] 関連項目
- HTTPステータスコード
- FTP
- WebDAV
- Webサーバ
- ウェブブラウザ
- アプリケーションサーバ
- REST
- HTTPヘッダ・インジェクション
- Hyper Text Coffee Pot Control Protocol
- バーチャルホスト
[編集] 外部リンク
- RFC 2818 - HTTP Over TLS
- RFC 2817 - Upgrading to TLS Within HTTP/1.1
- RFC 2616 - HTTP/1.1
- RFC 2068 - HTTP/1.1(初版,RFC 2616 によって obsolete)
- TS X 0085:2004 - ハイパテキスト転送プロトコル HTTP/1.1 標準仕様書(TS)
- RFC 1945 - HTTP/1.0
- HttpTea Freeware HTTP Logger
- Studying HTTP
最終更新 2009年9月15日 (火) 21:16 (日時は個人設定で未設定ならばUTC)。
【Hypertext Transfer Protocol】変更履歴

