「Hypertext Transfer Protocol」の版間の差分
提供: セキュリティ
(同じ利用者による、間の3版が非表示) | |||
行8: | 行8: | ||
== 概要 == | == 概要 == | ||
− | [[HyperText Markup Language|HTML]] や | + | [[HyperText Markup Language|HTML]] や XML で記述されたハイパーテキストの転送を主な目的としています。テキスト以外に、バイナリ形式のデータも扱えます。 |
トランスポートプロトコルとして、[[TCP]]を利用します。 | トランスポートプロトコルとして、[[TCP]]を利用します。 | ||
HTTPは、サーバ/クライアントモデルで、リクエストレスポンス型のプロトコルです。 | HTTPは、サーバ/クライアントモデルで、リクエストレスポンス型のプロトコルです。 | ||
− | + | World Wide Web におけるWebページのリソースは、Uniform Resource Identifier(URI)によって指定します。 | |
HTTP を使用してリソースにアクセスする場合には、 http: を先頭につけた [[Uniform Resource Locator|URL]] を使用します。 | HTTP を使用してリソースにアクセスする場合には、 http: を先頭につけた [[Uniform Resource Locator|URL]] を使用します。 | ||
行20: | 行20: | ||
[[HTTP]] の 規格には、以下のバージョンがあります。 | [[HTTP]] の 規格には、以下のバージョンがあります。 | ||
− | * HTTP/1.0 | + | * HTTP/1.0 RFC 1945 |
− | * HTTP/1.1 | + | * HTTP/1.1 RFC 2616 |
* [[HTTP/2]] ドラフト | * [[HTTP/2]] ドラフト | ||
行28: | 行28: | ||
* デフォルトでは、[[ポート番号]] 80 を使います。 | * デフォルトでは、[[ポート番号]] 80 を使います。 | ||
* ステートレスな[[プロトコル]]です。 | * ステートレスな[[プロトコル]]です。 | ||
− | * ステートレスな[[プロトコル]]であるため、[[Cookie]]を利用してセッションを維持できます。 | + | * ステートレスな[[プロトコル]]であるため、[[HTTP Cookie]]を利用してセッションを維持できます。 |
* [[プロキシ]]を利用できます。 | * [[プロキシ]]を利用できます。 | ||
− | |||
== HTTPプロトコル == | == HTTPプロトコル == | ||
HTTP/1.0 で index.html を取得する場合には、以下のリクエストを送信します。 | HTTP/1.0 で index.html を取得する場合には、以下のリクエストを送信します。 | ||
行38: | 行37: | ||
GET /index.html HTTP/1.1 | GET /index.html HTTP/1.1 | ||
Host: foo.com | Host: foo.com | ||
− | + | ||
== メソッド == | == メソッド == | ||
{| class="wikitable" | {| class="wikitable" | ||
行88: | 行87: | ||
== HTTPのリクエストとレスポンス == | == HTTPのリクエストとレスポンス == | ||
− | * | + | * HTTPリクエスト |
: [[ウェブブラウザ]](Webクライアント) などから[[Webサーバー]]へのリクエストをいいます。 | : [[ウェブブラウザ]](Webクライアント) などから[[Webサーバー]]へのリクエストをいいます。 | ||
− | ** | + | ** HTTPリクエストヘッダー |
* [[HTTPレスポンス]] | * [[HTTPレスポンス]] | ||
: [[Webサーバ]]から[[ウェブブラウザ]](Webクライアント)などへのレスポンスです。 | : [[Webサーバ]]から[[ウェブブラウザ]](Webクライアント)などへのレスポンスです。 | ||
− | ** | + | ** HTTPレスポンスヘッダー |
** [[HTTPステータスコード]] | ** [[HTTPステータスコード]] | ||
* [[HTTP cookie]] | * [[HTTP cookie]] | ||
行107: | 行106: | ||
=== リクエストヘッダ === | === リクエストヘッダ === | ||
− | * | + | * HTTPリクエストヘッダー |
− | + | ||
=== レスポンスヘッダ === | === レスポンスヘッダ === | ||
− | * | + | * HTTPレスポンスヘッダー |
− | + | ||
== セキュリティ == | == セキュリティ == | ||
=== ポリシー === | === ポリシー === | ||
行133: | 行130: | ||
=== 認証 === | === 認証 === | ||
==== Basic認証 ==== | ==== Basic認証 ==== | ||
− | + | HTTP/1.1では、[[Basic認証]]が定義されています。 | |
単純な認証機能を提供します。 | 単純な認証機能を提供します。 | ||
− | |||
==== Digest認証 ==== | ==== Digest認証 ==== | ||
[[Digest認証]]は、[[Basic認証]]を発展した認証機能を提供します。 | [[Digest認証]]は、[[Basic認証]]を発展した認証機能を提供します。 | ||
− | |||
== インストール == | == インストール == | ||
* [[Apache HTTP Server]] | * [[Apache HTTP Server]] | ||
− | |||
== 使い方 == | == 使い方 == | ||
* [[Apache HTTP Server]] | * [[Apache HTTP Server]] | ||
− | |||
== 関連項目 == | == 関連項目 == | ||
* [[Apache HTTP Server]] | * [[Apache HTTP Server]] | ||
行156: | 行149: | ||
* [[HyperText Markup Language]] ([[HTML]]) | * [[HyperText Markup Language]] ([[HTML]]) | ||
− | + | * XMLHttpRequest | |
− | * | + | * XMLHttpRequest Level 2 (XHR2) |
− | * | + | * Ajax |
− | * | + | |
* [[JavaScript]] | * [[JavaScript]] | ||
− | * | + | * PHP |
− | * | + | * Perl |
− | + | ||
<!-- vim: filetype=mediawiki | <!-- vim: filetype=mediawiki | ||
--> | --> |
2015年9月22日 (火) 00:58時点における最新版
Hypertext Transfer Protocol(HTTP)とは、Webサーバとクライアント(ウェブブラウザ)が通信するときに使う通信プロトコルです。HTML文書や文書に関連付けられた画像、音声、動画などを含めてやり取りできます。
読み方
- Hypertext Transfer Protocol
- はいぱーてきすと とらんすふぁー ぷろとこる
- HTTP
- えいちてぃーてぃーぴー
目次
概要
HTML や XML で記述されたハイパーテキストの転送を主な目的としています。テキスト以外に、バイナリ形式のデータも扱えます。
トランスポートプロトコルとして、TCPを利用します。 HTTPは、サーバ/クライアントモデルで、リクエストレスポンス型のプロトコルです。
World Wide Web におけるWebページのリソースは、Uniform Resource Identifier(URI)によって指定します。 HTTP を使用してリソースにアクセスする場合には、 http: を先頭につけた URL を使用します。
http://www.example.co.jp/index.html
HTTP の 規格には、以下のバージョンがあります。
主な仕様を以下に示します。
- デフォルトでは、ポート番号 80 を使います。
- ステートレスなプロトコルです。
- ステートレスなプロトコルであるため、HTTP Cookieを利用してセッションを維持できます。
- プロキシを利用できます。
HTTPプロトコル
HTTP/1.0 で index.html を取得する場合には、以下のリクエストを送信します。
GET /index.html HTTP/1.0
HTTP/1.1 で index.html を取得する場合には、以下のリクエストを送信します。
GET /index.html HTTP/1.1 Host: foo.com
メソッド
メソッド | HTTP/0.9 | HTTP/1.0 | HTTP/1.1 |
---|---|---|---|
GET | o | o | o |
POST | o | o | |
PUT | △ | o | |
HEAD | o | o | |
DELETE | △ | o | |
OPTION | o | ||
TRACE | o | ||
CONNECT | o |
HTTPのリクエストとレスポンス
- HTTPリクエスト
- HTTPリクエストヘッダー
- HTTPレスポンス
- HTTPレスポンスヘッダー
- HTTPステータスコード
- HTTP cookie
HTTPヘッダフィールド
ヘッダの各要素は、フィールド名と内容で構成されます。
フィールド名: 内容
例えば、Host ヘッダは、以下のように表します。
Host: foo.com
リクエストヘッダ
- HTTPリクエストヘッダー
レスポンスヘッダ
- HTTPレスポンスヘッダー
セキュリティ
ポリシー
攻撃
脆弱性対策 セキュリティヘッダ
SSL/TLS
認証
Basic認証
HTTP/1.1では、Basic認証が定義されています。 単純な認証機能を提供します。
Digest認証
Digest認証は、Basic認証を発展した認証機能を提供します。
インストール
使い方
関連項目
- Apache HTTP Server
- Hypertext Transfer Protocol (HTTP)
- HTTPS
- HTTP cookie
- 同一生成元ポリシー
関連技術
- XMLHttpRequest
- XMLHttpRequest Level 2 (XHR2)
- Ajax
- JavaScript
- PHP
- Perl