ドメイン間、サブドメイン間、サーバ間セッションの読み取り

2018 ワード

まずクッキーについて理解します.クッキーには2つの重要な属性があります.domainとpathdomainはブラウザに現在追加するクッキーのドメイン名の帰属を教え、明確な指示がなければwww.vinceruanなどの現在のドメイン名をデフォルトします.infoが追加したドメイン名のデフォルトはwww.vinceruanです.info、blogにアクセスすることでvinceruan.infoが生成するクッキーのドメイン名がblog.vinceruan.info.pathはブラウザに現在追加するクッキーのパスの帰属を伝え、明確に指定されていない場合はwww.vinceruanにアクセスするなど、デフォルトで現在のパスとする.info/java/hotspot.htmlで追加するクッキーのデフォルトパスは/java/,blog.vinceruan.info/java/hotspot.htmlで生成されたクッキーのパスも/java/です.ブラウザがクッキーを送信するのは、対応するパスの祖先レベルのパスのみを送信するクッキーです.次のようになります.
//./cookie_test.php
setcookie("test", "3");
echo $_COOKIE["test"];
印刷:3
//./test1/cookie_test.php
setcookie("cachetest", "2");
echo $_COOKIE["test"] . "," . $_COOKIE["cachetest"];
印刷:
3,2 domainとpathの生成ルールが明らかになった後、ブラウザがいつ何のクッキーを提出するサーバーを知る必要があります.つまり、ブラウザはどのようなルールでクッキーをフィルタしてサーバーに提出したのかを知る必要があります.
ブラウザからコミットされたクッキーは、次の2つの点を満たす必要があります.
1.現在のドメイン名または親ドメイン名の下のcooke
2.現在のパスまたは親パスの下にあるクッキー
このようなクッキーのドメイン間:1を実現する必要がある.phpページの最初に(任意の出力の前にsession_start()の前に)次の設定を行う限りini_set('session.cookie_path', '/');ini_set('session.cookie_domain', '.vinceruan.com');ini_set('session.cookie_lifetime', '1800');2.php.iniにセッションを設定します.cookie_path =/session.cookie_domain = .vinceruan.comsession.cookie_lifetime = 18003.phpページの最初の場所(条件は同じ)で関数session_set_cookie_params(1800,'/','.vinceruan.com')を呼び出します.ドメイン間でsessionを共有するには、まずsessionメカニズムの原理を理解する必要があります.sessionはサーバ側に保存されていますが、http接続は無状態です.では、サーバはどのようにして複数の独立したhttp接続で同じsessionを維持しますか.これは主にsession id,Session ID,すなわちそのSessionファイルのファイル名に依存し,ランダムに生成される.クライアントがクッキーを無効にしていない場合、クッキーはセッションセッションを開始するときにセッションidとセッションの生存期間を格納する役割を果たします.したがってsessionドメイン間:1を実現する必要がある.各サーバが同じクライアントセッションidを共有するように、クッキーのドメイン間で実現する.データベースを使用してセッションデータを保存することができ、各サーバが同じデータソースに簡単にアクセスし、同じセッションデータを取得することができます.あるいはnfs方式のようなファイル共有方式を通じて.参照先:http://blog.csdn.net/jucrazy/article/details/7162247   http://blog.csdn.net/luka2008/article/details/38385703