「Hypertext Transfer Protocol」の版間の差分

提供: セキュリティ
移動: 案内検索
(ページの作成:「<!-- vim: filetype=mediawiki --> Hypertext_Transfer_Protocol(HTTP)とは、Webサーバとクライアント(ブラウザ)...」)
 
 
(同じ利用者による、間の11版が非表示)
行1: 行1:
<!--
+
[[Hypertext Transfer Protocol]]([[Hypertext Transfer Protocol|HTTP]])とは、[[Webサーバ]]とクライアント([[ウェブブラウザ]])が通信するときに使う[[通信プロトコル]]です。[[HyperText Markup Language|HTML]]文書や文書に関連付けられた画像、音声、動画などを含めてやり取りできます。
vim: filetype=mediawiki
+
-->
+
  
[[Hypertext_Transfer_Protocol]]([[Hypertext_Transfer_Protocol|HTTP]])とは、[[Webサーバ]]とクライアント([[ブラウザ]])が通信するときに使う[[通信プロトコル]]です。[[HTML]]文書や文書に関連付けられた画像、音声、動画などを含めてやり取りできます。
+
'''読み方'''
 
+
;[[Hypertext Transfer Protocol]]: はいぱーてきすと とらんすふぁー ぷろとこる
読み方
+
;[[Hypertext Transfer Protocol|HTTP]]: えいちてぃーてぃーぴー
 
+
はいぱーてきすと とらんすふぁー ぷろとこる
+
 
+
HTTP えいちてぃーてぃーぴー
+
  
 
__TOC__
 
__TOC__
  
 
== 概要 ==
 
== 概要 ==
 
+
[[HyperText Markup Language|HTML]] や XML で記述されたハイパーテキストの転送を主な目的としています。テキスト以外に、バイナリ形式のデータも扱えます。
[[HTML]] や [[XML]] で記述された[[ハイパーテキスト]]の転送を主な目的としています。テキスト以外に、バイナリ形式のデータも扱えます。
+
  
 
トランスポートプロトコルとして、[[TCP]]を利用します。
 
トランスポートプロトコルとして、[[TCP]]を利用します。
 
HTTPは、サーバ/クライアントモデルで、リクエストレスポンス型のプロトコルです。
 
HTTPは、サーバ/クライアントモデルで、リクエストレスポンス型のプロトコルです。
  
[[World_Wide_Web]] におけるWebページのリソースは、[[Uniform_Resource_Identifier]]によって指定します。
+
World Wide Web におけるWebページのリソースは、Uniform Resource Identifier(URI)によって指定します。
HTTP を使用してリソースにアクセスする場合には、 http: を先頭につけた [[Uniform_Resource_Locator|URL]] を使用します。
+
HTTP を使用してリソースにアクセスする場合には、 http: を先頭につけた [[Uniform Resource Locator|URL]] を使用します。
  
 
  http://www.example.co.jp/index.html
 
  http://www.example.co.jp/index.html
行27: 行20:
 
[[HTTP]] の 規格には、以下のバージョンがあります。
 
[[HTTP]] の 規格には、以下のバージョンがあります。
  
* HTTP/1.0 [[RFC]] 1945
+
* HTTP/1.0 RFC 1945
* HTTP/1.1 [[RFC]] 2616
+
* HTTP/1.1 RFC 2616
* [[HTTP_2.0|HTTP/2.0]] ドラフト
+
* [[HTTP/2]] ドラフト
  
 
主な仕様を以下に示します。
 
主な仕様を以下に示します。
行35: 行28:
 
* デフォルトでは、[[ポート番号]] 80 を使います。
 
* デフォルトでは、[[ポート番号]] 80 を使います。
 
* ステートレスな[[プロトコル]]です。
 
* ステートレスな[[プロトコル]]です。
* ステートレスな[[プロトコル]]であるため、[[Cookie]]を利用してセッションを維持できます。
+
* ステートレスな[[プロトコル]]であるため、[[HTTP Cookie]]を利用してセッションを維持できます。
 
* [[プロキシ]]を利用できます。
 
* [[プロキシ]]を利用できます。
 
 
== HTTPプロトコル ==
 
== HTTPプロトコル ==
 
 
HTTP/1.0 で index.html を取得する場合には、以下のリクエストを送信します。
 
HTTP/1.0 で index.html を取得する場合には、以下のリクエストを送信します。
 
  GET /index.html HTTP/1.0
 
  GET /index.html HTTP/1.0
 
   
 
   
 
 
HTTP/1.1 で index.html を取得する場合には、以下のリクエストを送信します。
 
HTTP/1.1 で index.html を取得する場合には、以下のリクエストを送信します。
 
  GET /index.html HTTP/1.1
 
  GET /index.html HTTP/1.1
 
  Host: foo.com
 
  Host: foo.com
 
  
 
== メソッド ==
 
== メソッド ==
 
 
{| class="wikitable"
 
{| class="wikitable"
 
! メソッド
 
! メソッド
行97: 行85:
 
| o
 
| o
 
|}
 
|}
 +
 +
== HTTPのリクエストとレスポンス ==
 +
* HTTPリクエスト
 +
: [[ウェブブラウザ]](Webクライアント) などから[[Webサーバー]]へのリクエストをいいます。
 +
** HTTPリクエストヘッダー
 +
* [[HTTPレスポンス]]
 +
: [[Webサーバ]]から[[ウェブブラウザ]](Webクライアント)などへのレスポンスです。
 +
** HTTPレスポンスヘッダー
 +
** [[HTTPステータスコード]]
 +
* [[HTTP cookie]]
  
 
== HTTPヘッダフィールド ==
 
== HTTPヘッダフィールド ==
 
 
ヘッダの各要素は、フィールド名と内容で構成されます。
 
ヘッダの各要素は、フィールド名と内容で構成されます。
  
行109: 行106:
  
 
=== リクエストヘッダ ===
 
=== リクエストヘッダ ===
 
+
* HTTPリクエストヘッダー
 
=== レスポンスヘッダ ===
 
=== レスポンスヘッダ ===
 
+
* HTTPレスポンスヘッダー
 
== セキュリティ ==
 
== セキュリティ ==
 +
=== ポリシー ===
 +
* [[同一生成元ポリシー]]
 +
=== 攻撃 ===
 +
* [[コンテンツスニッフィング]]
 +
* [[MIMEスニッフィング]]
 +
=== 脆弱性対策 セキュリティヘッダ ===
 +
* [[有効なセキュリティに関するHTTPヘッダ]]
 +
** [[Strict-Transport-Security]]
 +
** [[X-Frame-Options]]
 +
** [[X-XSS-Protection]]
 +
** [[X-Content-Type-Options]]
 +
** [[X-Content-Security-Policy]]
 +
=== SSL/TLS ===
 +
* [[HTTPS]]
 +
** [[Transport Layer Security]] ([[Transport Layer Security|TLS]])
 +
** [[Secure Sockets Layer]] ([[Transport Layer Security|SSL]])
 +
** [[SPDY]]
  
 
=== 認証 ===
 
=== 認証 ===
 
 
==== Basic認証 ====
 
==== Basic認証 ====
 
+
HTTP/1.1では、[[Basic認証]]が定義されています。
[[HTTP/1.1]]では、[[Basic認証]]が定義されています。
+
 
単純な認証機能を提供します。
 
単純な認証機能を提供します。
 
 
==== Digest認証 ====
 
==== Digest認証 ====
 
 
[[Digest認証]]は、[[Basic認証]]を発展した認証機能を提供します。
 
[[Digest認証]]は、[[Basic認証]]を発展した認証機能を提供します。
 
 
== インストール ==
 
== インストール ==
 
+
* [[Apache HTTP Server]]
* [[Apache_HTTP_Server]]
+
 
+
 
== 使い方 ==
 
== 使い方 ==
 +
* [[Apache HTTP Server]]
 +
== 関連項目 ==
 +
* [[Apache HTTP Server]]
 +
{{http}}
 +
=== 関連技術 ===
 +
* [[Base64]]
 +
* [[TCP]]
  
* [[Apache_HTTP_Server]]
+
* [[ウェブブラウザ]]
 +
* [[Webサーバ]]
 +
* [[HyperText Markup Language]] ([[HTML]])
  
== 関連項目 ==
+
* XMLHttpRequest
 
+
* XMLHttpRequest Level 2 (XHR2)
* [[Apache_HTTP_Server]]
+
* Ajax
* [[HTTPS]]
+
* [[JavaScript]]
* [[Cookie]]
+
* PHP
* [[Tranport_Layer_Security]]
+
* Perl
* [[HyperText_Markup_Language]]
+
<!-- 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 の 規格には、以下のバージョンがあります。

主な仕様を以下に示します。

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リクエスト
ウェブブラウザ(Webクライアント) などからWebサーバーへのリクエストをいいます。
Webサーバからウェブブラウザ(Webクライアント)などへのレスポンスです。

HTTPヘッダフィールド

ヘッダの各要素は、フィールド名と内容で構成されます。

フィールド名: 内容

例えば、Host ヘッダは、以下のように表します。

Host: foo.com

リクエストヘッダ

  • HTTPリクエストヘッダー

レスポンスヘッダ

  • HTTPレスポンスヘッダー

セキュリティ

ポリシー

攻撃

脆弱性対策 セキュリティヘッダ

SSL/TLS

認証

Basic認証

HTTP/1.1では、Basic認証が定義されています。 単純な認証機能を提供します。

Digest認証

Digest認証は、Basic認証を発展した認証機能を提供します。

インストール

使い方

関連項目

関連技術

  • XMLHttpRequest
  • XMLHttpRequest Level 2 (XHR2)
  • Ajax
  • JavaScript
  • PHP
  • Perl