Hypertext Transfer Protocol
出典: フリー百科事典『ウィキペディア(Wikipedia)』
アプリケーション層 |
---|
DNS, ENRP, FTP, HTTP IMAP, IRC, NNTP, POP3 SIP, rlogin, RTP, SMTP SNMP, SSH, SSL, TELNET CMIP |
トランスポート層 |
DCCP, IL, RSVP, RUDP SCTP, TCP, UDP |
ネットワーク層 |
ARP, BGP, IP(IPv4,IPv6) ICMP, IGMP, IGP, RARP |
データリンク層 |
ATM, DTM, FDDI, PPP SLIP, SMDS, イーサネット Wi-Fi, トークンリング フレームリレー |
Hypertext Transfer Protocol(ハイパーテキスト・トランスファー・プロトコル、略称:HTTP)とは、WebブラウザとWebサーバの間でHTMLなどのコンテンツをやり取りする際に用いられる通信プロトコルであり、RFC 2616で規定されている。ハイパーテキスト転送プロトコルとも呼ばれる。
最初、HTTP/0.9ではURLのみの簡単なやりとりであったが、HTTP/1.0でNNTPやSMTPのような各種ヘッダが定義され、HTTP cookieなどの利用が可能になった。 HTTP/1.1では複数データを転送するためのキープアライブ(keep-alive)機能やプロキシなどの利用も想定された仕様になった。
目次 |
[編集] 特徴
- World Wide Webのプロトコルとしてつくられた。
- 主にWebページのブラウズやファイルのダウンロードに用いられている。
- ポート番号80をデフォルトとして使用する。
- SSL(TLS)で暗号化され、セキュリティを確保したHTTPは、httpsと呼ばれる。(httpsは実際にはURIスキームの1つであり、実際のプロトコルにはHTTP over SSL/TLSが用いられる。
- 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, PATCH
がある。 GET
メソッドはヘッダ情報のあとに改行が挟まれ、データが送られる。 HEAD
メソッドはヘッダのみが送られる。ファイルサイズや更新日時を調べる場合に使われる。 また、リクエストの2行目以降はヘッダーを送る。
ヘッダーにはブラウザの情報をあらわすUser-Agent
、使用する言語をあらわすAccept-Language
、直前に閲覧していたページのURLを表すReferer
などがあり、
フィールド名: 内容
と表される。
ちなみに、リクエスト時のHost
ヘッダーはHTTP/1.0では無くても良いが、HTTP/1.1では必須である。
[編集] 関連項目
- FTP
- WebDAV
- Webサーバ
- Webブラウザ
- Webアプリケーションサーバ
- REST
- HTTPヘッダ・インジェクション
- Hyper Text Coffee Pot Control Protocol
[編集] 外部リンク
- RFC 2616 - HTTP/1.1
- RFC 1945 - HTTP/1.0
- HttpTea Freeware HTTP Logger