HTTP_cookie
是非お友達にも!
◇暇つぶし何某◇

[Wikipedia|▼Menu]

この項目では、コンピュータ用語について説明しています。その他の用法については「クッキー (曖昧さ回避)」をご覧ください。

HTTP
主要項目Persistence
Compression(英語版)
HTTPS
HTTP/2
ヘッダーフィールド(英語版)Cookie
ETag
Location(英語版)
Referer
DNT(英語版)
X-Forwarded-For
ステータスコード301 Moved Permanently(英語版)
302 Found(英語版)
303 See Other(英語版)
403 Forbidden
404 Not Found
451 Legal Reasons
503 Service Unavailable










HTTP cookie(エイチティーティーピークッキー、単にクッキーとも表記される)は、RFC 6265などで定義されたHTTPにおけるウェブサーバウェブブラウザ間で状態を管理する通信プロトコル、またそこで用いられるウェブブラウザに保存された情報のことを指す。ユーザ識別やセッション管理を実現する目的などに利用される。


目次

1 概要

2 仕様間の違い

3 用途

3.1 例

3.2 例:MediaWikiにおけるログイン情報


4 クライアント側スクリプトによるクッキーの操作

5 ブラウザの環境設定によるクッキーの操作

6 クッキーの適用範囲と有効期限

7 セキュリティ、プライバシーの問題

7.1 セッションハイジャック

7.2 トラッキング・クッキー


8 類似のトラッキング技術

9 脚注

10 関連項目

11 外部リンク


概要

HTTPは元来ハイパーテキストにおいて単にファイル転送を行うために開発されたため、同じURLへのアクセスならその状況によらず同一の資源[1]を提供することが前提となっている。動的なコンテンツ生成の仕組みとしてフォームが導入されているが、これは要求に直接対応する応答だけに影響をおよぼす。言い換えるとHTTPでは、同じ瞬間に同じ内容の要求を行っていれば、そのクライアントが以前にどのような通信を行っていても区別されない。HTTPはその意味で現在においてもステートレスなプロトコルである。

その一方でWorld Wide Webが普及するにつれ、状況によって異なる内容のページを提供したい[2]というニーズが生まれた。そのようなニーズをHTTPのみで満たすには、IPアドレスによって区別する、状態を表現したユニークなURLを生成するなどの方法がある。しかし、プライベートネットワークからのアクセスを区別できない、本来二度起きない状態が同じURLにアクセスすることで何度も発生する、セキュリティの問題などいずれも容易に解決できない欠点を抱えていた。

そこで、1994年にネットスケープコミュニケーションズ社によってクッキー[3] が提案・実装された。クッキーでは次のようにサーバとクライアント間の状態を管理する。
ウェブサーバがウェブブラウザにその状態を区別する識別子をHTTPヘッダに含める形で渡す。

ブラウザは次にそのサーバと通信する際に、与えられた識別子をHTTPヘッダに含めて送信する。

サーバはその識別子を元にコンテンツの内容をユーザに合わせてカスタマイズし、ブラウザに渡す。必要があれば新たな識別子もHTTPヘッダに含める。
以降2、3の繰り返し。

この仕組みによって、ステートレスなプロトコルであるHTTP上でステートフルなサービスを実現する。ここで注意すべき点は、一度設定されたクッキーは、条件を満たす限り何度でも要求に組み込まれるという点である。HTMLページの要求だけでなく、画像を含むすべての要求が対象となる。

その後クッキーは1997年にRFC 2109で初めて標準化され、2000年のRFC 2965、2011年のRFC 6265で更新された。2007年現在ほとんどのウェブサーバ、ウェブブラウザで利用可能である。
仕様間の違い

前述の通り、HTTP Cookie には幾つか仕様があるが、IETFの標準化した RFC 2109 や RFC 2965 は、ネットスケープ仕様とExpires属性からMax-Age属性への変更等互換性がないため、実際のウェブサイトではほとんど使われていない[4]。一方で、Expires属性等で用いられる日付形式は仕様外の記述が氾濫しているうえ[5]、セキュリティ上の理由からhttponly属性やsecure属性等が事実上追加されており、長らく文書の存在しない状態が続いていたが、RFC 6265 はこれらの問題を解消することを意図して制定されている。
用途

クッキーの最も代表的な用途は、ショッピングサイトにおけるカートやログイン状態の管理である。また、IPアドレスによらないクライアントの識別を可能にするため、ウェブサイト運営者やインターネット広告配信業者などがユーザの詳細なアクセス履歴を取得する用途にも使われる。

クッキーは毎回送られるものであり、またHTTPヘッダの一部なのでASCII文字列になっている必要がある。そのためクッキーでデータを直接扱うよりも、セッションIDを実装する手段として使うことが多い。この場合、実際のデータは、セッションIDをキーとしてサーバが保持することになる。

例えば特定のページの表示回数を、ウェブページ上に表示したいときには、おおむね次のようなやりとりが行われる。
ブラウザがサーバに閲覧を要求する。ここにはクッキーの情報はない。

サーバはブラウザに対し「1」回目というクッキー情報と、「1回目」と表示するようなデータを送信する。

ブラウザがサーバに閲覧を要求する。このときブラウザは、そのサーバから受け取ったクッキーを探して、「1」のクッキー情報をサーバに送信する。

サーバは「1」というクッキー情報に基づき、ブラウザに対し「2」回目というクッキー情報と、「2回目」と表示するようなデータを送信する。

例:MediaWikiにおけるログイン情報

例として、MediaWikiにおけるクッキーの使用をあげる。

MediaWikiソフトウェアでは、ログイン情報をクッキーで実現している。


◇ピンチです!◇
◇暇つぶし何某◇

[次ページ]
[記事の検索]
[おまかせリスト]
[ブックマーク登録]
[mixiチェック!]
[Twitterに投稿]
[オプション/リンク一覧]
[話題のニュース]
[列車運行情報]
[暇つぶしWikipedia]

Size:21 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:FIRTREE