セッションとクッキーの役割を理解するために詳細な分析

Web開発におけるセッションクッキーと私たちは多くを使用し、その後、あなたはそれのセッションとクッキー深い理解について持っていますか?今日は、クッキーの役割セッションの詳細な分析と理解した上での例を見てみましょう。

歴史の中でWeb開発、セッションとクッキーは偉大な存在している、その本来の目的は他の選択肢場合は、ウェブサイト上で閲覧情報にユーザーを覚えておくことで、ほとんどすべてのWebサイトでは、セッションとクッキーから不可分です。

なぜ私たちが必要なのです

HTTPプロトコルは、サーバがウェブを閲覧している人言うことができない原因になります、ステートレスです。なログインとサイトのユーザー、ショッピング・カートなどの状態を維持するためには、隠されたフォームフィールド、URL書き換え、クッキー、セッションの4つの技術であっ登場しているされています。

クッキー

この問題を解決するためのHTTPプロトコルは、1994年に状態を維持することができないでは、ネットスケープ・コミュニケーションズルー・モントゥリの従業員「マジッククッキー」の概念は、Web通信に適用されます。彼が最初になりましショッピングカートのウェブサイトの柱となっている、ショッピングカートのWebアプリケーションを解決しようとしました。彼の元のドキュメントは、最終的にはRFC 2965に含まれるよう、文書が後にRFC 2109仕様(ほとんどのブラウザの実装参照文書)に組み込まれたクッキーの作品についての基本的な情報を提供します。Montulliはまた、米国特許クッキーを受賞しました。その最初のバージョンではNetscapeブラウザは現在、すべてのWebブラウザがクッキーをサポートし、クッキーをサポートするために始めました。(ここだけのクッキーとセッション)

何ですか

クッキーは、ユーザーがサイト上で必要な情報を保存するために、ユーザーのコンピュータ上のブラウザに保存された小さなテキストファイルです。ウェブページサーバーは、情報が自動的にサーバ、異なるユーザによるサーバ情報の決意にHTTPリクエストヘッダに付加され、ブラウザまたは特定の仕様に応じて格納された情報、及び全ての後続の要求を伝えます。そして、クッキー自体は安全です。

作成方法

セット - クッキーを送信することによって、ウェブサーバーがクッキーを作成するために、HTTPメッセージのヘッドと呼ばれる、Set-Cookieヘッダーは次のようにフォーマットされた文字列、(括弧部分に任意である)です。

Set-Cookie:値[; 有効期限が切れる=日付] [。ドメイン=ドメイン] [。パス=パス] [。セキュア]

通常、文字列の名前=値の形式で値が、。実際には、このフォーマットは、元の仕様で指定された形式ですが、ブラウザが確認するために、この形式のクッキー値を持っていません。実際には、あなたが文字列の等号が含まれていませんを指定することができ、それはまた、保存されます。しかし、最も一般的な用途は、(ほとんどのインタフェースにのみ、このフォーマットをサポートする)名前=値のフォーマットに従ってクッキーの値を指定することです。

クッキーは、値のみが設定をクッキーやクッキーのための他のオプションが含まれていない、とブラウザがクッキーに変更を加えることはありません含まれているサーバに送り返され、サーバーはバックそのまま送信されます。複数のクッキーがある場合、セミコロンとスペースで区切って:

クッキー:名前=値; NAME1 = VALUE1。NAME2 =値2 / PRE>

クッキーの有効期限

あなたはクッキーの有効期限を設定しない場合、クッキーはセッションクッキーと呼ばれる、セッションの終了時に破棄されます。あなたが永続的なクッキーセッションクッキーとして設定したい場合は、単純にこのオプションの値を見るためにクッキーの有効期限を設定するには、あることWDY、HH DD-MON-YYYY:MM:SS GMT値の日付形式。この有効期限は、クッキーのアイデンティティのための-確保名ドメインパスと相関していることに注意してください。クッキーの有効期限を変更するには、同じ組み合わせを指定する必要があります。

永続的なクッキーは、クッキーを削除しない限り、セッションクッキーを変更し、このクッキーを再作成することはできません。

ドメインオプション

domianオプションは、Cookieドメイン、このドメインへのHTTP要求にこれらのクッキーを運ぶだけで髪をセットします。一般ドメインにどこクッキーのドメイン名ページを作成するために設定されます。

Yahooなどの大規模なサイトでは!(:my.yahoo.com、finance.yahoo.com、などなど)name.yahoo.comサイトの多くの形態があるでしょう。一つのオプションは、Cookieドメインyahoo.comに設定されている、あなたはすべてのこれらのサイトにCookieの値を送信することができます。ブラウザの値は、(すなわち、文字列比較の開始端からの)比較尾を作るために、ドメイン名を要求し、サーバへのマッチングクッキーます。

パスオプション

パスオプションと似たドメインオプションは、HTTP要求はこれらのクッキーを運ぶために指定されたパスが含まれています。この比較は、通常、比較が行わによって文字ゼロからスタートするURLリクエストのパスオプションの値です。文字が一致する場合、Cookieヘッダは、例えば、送信されます。

Set-Cookie:のNameValue;パス= /ブログ

これは、クッキー情報を運ぶ/ブログhttpリクエストを含んでいます。

安全なオプション

このオプションは、フラグであり、値はありません。要求は、クッキーが安全なオプションを含めることができる場合にのみ、SSLまたはHTTPSによって作成されたときにサーバーに送信されます。プレーンテキスト形式で渡された場合は、このクッキーは、価値の高いコンテンツを持っている、改ざんされる可能性が高いです。

オリジナルクッキーの機構全体が危険であるため、実際には、機密情報や機密情報は、クッキーに保存されていないか、送信することは絶対に避けてください。デフォルトでは、クッキーの送信でHTTPSリンクは、自動的に安全なオプションに追加されます。

HTTPのみ

HTTP専用ブラウザのクッキーdocument.cookieプロパティはJavaScriptをアクセスすることはできません発表することを意味しました。この設計上の特徴は、防止JavaScriptがCookie動作を盗む(XSS)、クロスサイトスクリプティング攻撃によって開始され、ヘルプにセキュリティ対策を提供することを意図しています。

JavaScriptのクッキーの操作

JavaScriptでdocument.cookieプロパティによって、あなたは、作成、保守、およびクッキーを削除することができます。クッキーの属性を作成する場合は、Set-Cookieヘッダに相当し、読み出しがクッキーCookieヘッダに相当する場合。

削除クッキー

セッションは、(セッションクッキー)をクックセッションの終了時(ブラウザを閉じている)が削除されます。

有効期限が到着したときに永続的なCookie(クッキー永続)が削除されます。

ブラウザの制限でクッキーの数に達した場合、クッキーは新しいクッキーそのスペースを作成するために削除されます。

セッション

セッションクッキーと問題を解決するための役割、ほぼ同様のHttpプロトコルは、状態を維持することはできません。それは比較的比較的安全なクッキー、セッションですので、しかし、セッションが、それだけがネットワークに送信されることはありませんサーバー側に保存されています。しかし、セッションは、ユーザーがアクセスしたサイトのは、サーバがこのユーザのためのユニークなSESSION_IDを生成しますクッキー、クッキーの形でクライアントに送信され、このSESSION_IDに依存して、クライアントの後にすべての要求は、自動的に(このクッキーを運ぶでしょうブラウザがサポートすることを提供して)クッキーを無効にしません。

セッションクッキーが無効になっているの使い方

時には、ブラウザの無効クッキーを確保するために、あなたは道でパラメータを渡すことができますいつものように、サーバ、セッションの作業に送らSESSION_ID。

削除セッション

セッションが閉じられた後、セッションは手動でセッションを削除する場合は、サーバー側のプログラミングで実装することができ、自動的に期限切れになります。PHPがやっているように

$ _SESSION =配列();

session_destory();

おすすめ

転載: www.cnblogs.com/ko88/p/12147990.html