ネットワーク用語 > HTTP
HTTP †
HTTP = Hypertext Transfer Protocol
HTTP えいちてぃてぃぴぃ
Hypertext Transfer Protocol=ハイパーテキスト転送プロトコル。
つまり、ブラウザとサーバの間でHTML(もしくはウェブ文書)を送受信する為のプロトコル(取り決め)
2005年3月現在では、RFC2616 に HTTP/1.1 として仕様が纏められている。
Hypertext Transfer Protocol - Wikipedia
HyperText Transfer Protocol(ハイパーテキスト・トランスファー・プロトコル、略称 HTTP)とは、WebブラウザとWebサーバの間でHTMLなどのコンテンツの送受信に用いられる通信プロトコルである。
RFC 2616で規定されている。ハイパーテキスト転送プロトコルとも呼ばれる。
概要
HTTP は HTML (HyperText Markup Language) や XML (Extensible Markup Language) によって記述されたハイパーテキストを転送することを主な目的としているが、転送する内容はハイパーテキストに限らず画像、音声などのバイナリデータも含め様々なデータを送ることができる。
HTTPはリクエスト-レスポンス型のプロトコルである。
すなわち、クライアントがサーバにリクエストメッセージを送信し、サーバがこれにレスポンスメッセージを返す。
レスポンスメッセージを返した時点で基本的にサーバは初期状態に戻る。
つまり、サーバがクライアントの状態を保存しない。
HTTP においてはトランスポート・プロトコルとして通常TCPを使用する。
基本的な考え方は非常に単純であり「何を」「どうして」ほしいのかを相手に要求する。
「何を」に当たるのがURL、「どうして」がメソッドにあたる。
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をデフォルトとして使用する(送信時は8080)。
- 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が規定された。
メソッド †
HTTPでは8つのメソッドが定義されている。
ただし実際のHTTP通信ではGETとPOSTメソッドだけで殆どを占める。
メソッド | HTTP/0.9 | HTTP/1.0 | HTTP/1.1 |
GET | ○ | ○ | ○ |
POST | ○ | ○ | |
PUT | △ | ○ | |
HEAD | ○ | ○ | |
DELETE | △ | ○ | |
OPTION | ○ | ||
TRACE | ○ | ||
CONNECT | ○ |
- GET
指定されたURIのリソースを取り出す。
HTTPの最も基本的な動作で、HTTP/0.9では唯一のメソッド。
- POST
GETとは反対にクライアントがサーバにデータを送信するメソッドである。
Webフォームや電子掲示板、Wikiなどに投稿する。
GETの場合と同じくサーバはクライアントにデータを返すことができる。
- PUT
指定したURIにリソースを保存する。
URIが指し示すリソースが存在しない場合は、サーバはそのURIにリソースを作成する。
画像のアップロードなどが代表的。
- DELETE
指定したURIのリソースを削除する。
- OPTION
サーバを調査するメソッド。
例えばサーバがサポートしているHTTPのバージョンなどを調査できる。
- HEAD
GETと似ているがサーバはHTTPヘッダのみ返す。
クライアントはWebページを取得せずともそのWebページが存在するかどうかを知ることが出来る。
例えばWebページのリンク先が生きているか検証するときなどにリンク先のデータを全て取得することなく調査することが出来る。
- TRACE
サーバまでのネットワーク経路をチェックできる。
サーバは受け取ったメッセージのそれ自体をレスポンスのデータにコピーして応答する。
WindowsのTracertやUNIXのTracerouteとよく似た動作。
- CONNECT
暗号化したメッセージをプロキシで転送する際に用いる。
リンク †
Studying HTTP
http://www.studyinghttp.net/