CookieとSessionの使用、長所と短所と違い
11987 ワード
php簡単ノート
1.0 Cookie
クッキーについての説明 HTTPプロトコルは無状態であるため、サーバはユーザが前回何をしたかを知らないので、対話式Webアプリケーションの実現を大いに阻害している。典型的なオンラインショッピングシーンでは、ユーザーはいくつかのページを閲覧し、クッキー1箱と飲み物2本を買った。最後に決算する時、HTTPの無状態性のため、追加の手段を通じて(通って)ないで、サーバーはユーザーが一体何を買いましたかを知らないで、だからCookieはHTTPの無状態性の“余分な手段”の1つを避けます。サーバは、Cookiesに含まれている情報を設定したり、読み取ったりして、ユーザとサーバのセッション中の状態を維持することができる。 は先ほどのショッピングシーンにおいて、ユーザが第一の商品を選択したとき、サーバーがユーザーにウェブページを送信すると同時に、その商品の情報を記録したCookieを送信しました。ユーザーが別のページにアクセスすると、ブラウザがCookieをサーバに送信します。そこで、サーバーは彼が以前に何を選んだかを知っています。ユーザーは引き続き飲み物を選んで、サーバーはもとのあのCookieの中で新しい商品の情報を追加します。決済時に、サーバーが送信してきたCookieを読み込めばいいです。 Cookieのもう一つの典型的なアプリケーションは、ウェブサイトにログインすると、ユーザーにユーザ名とパスワードの入力を要求し、ユーザーは「次の自動登録」にチェックすることができる。チェックを外すと、今度同じサイトにアクセスすると、ユーザーがユーザ名とパスワードを入力していないことに気づきます。これは、前回ログインしたときに、ログイン証明書(ユーザ名にパスワードを付加する暗号化形式)を含むCookieをユーザのハードディスクに送信したからです。第二次登録時に、このCookieがまだ満期にならないと、ブラウザからCookieが送られてきます。サーバ検証証明書は、ユーザ名とパスワードを入力せずにユーザー登録されます。 クッキー
クッキーは現在の情報とサーバーの交流を維持するためのファイルです。
先端で紹介したsession Strageとlocal Strageも同様の機能です。
内容
クッキー
local Strage
session Strage
ライフサイクル
一般的にサーバによって生成され、失効時間が設定されます。ブラウザ側でクッキーが生成されると、デフォルトでブラウザを閉じて失効します。
削除されない限り、永久に保存します。
現在のセッションのみ有効で、ページまたはブラウザを閉じて削除されます。
データサイズ
4 k
20 M
5 M
サーバと通信する
httpリクエストヘッドに携帯し、クッキーを多すぎるデータを保存すると性能に問題があります。
クライアントすなわちブラウザにのみ保存し、サーバとの通信には参加しません。
クライアントすなわちブラウザにのみ保存し、サーバとの通信には参加しません。
使いやすさ
プログラマが自分でカプセル化する必要があります。
生インターフェースは受け入れられます。また、ObjとArrに対してより良いサポートがあります。
生インターフェースは受け入れられます。また、ObjとArrに対してより良いサポートがあります。
クッキーを使う
明文保存のクッキー設定の値が見られます。
クッキーのパラメータ
クッキーの有効期間 Cookieは、各HTTP要求に付加されるので、知らず知らずのうちに流量 を増加させている。 HTTP要求におけるCookieは平文で伝達されるので、HTTPS を使用しない限り、安全性が問題となる。 Cookieのサイズは4 KBぐらいに制限されています。複雑な記憶需要にとっては足りない です。
2.0セッション
セッションとクッキーの違い sessionはサーバに保存されています。クライアントはその中の情報を知りません。クッキーはクライアントに保存されており、サーバはその中の情報を知ることができる 。 sessionにはオブジェクトが保存されており、cookieには文字列 が保存されている。 sessionは経路を区別できません。同じユーザーが一つのウェブサイトを訪問している間、すべてのセッションはどこでもアクセスできます。クッキーにパスパラメータが設定されている場合、同じウェブサイトの異なる経路におけるクッキーは互いにアクセスできない である。 cookieは安全ではありません。私は当地に保管されているCOOKIEを分析してCOOKIE詐欺を行うことができます。 セッションは一定時間サーバに保存されます。アクセスが増えると、あなたのサーバーの性能を占用します。サーバの性能を軽減するために、COOKIE を使用するべきです。単一のクッキーによって保存されたデータは4 kを超えてはいけません。多くのブラウザは一つのサイトに最大20個のクッキー を保存することを制限しています。セッションは、cookieを通じて動作する です。
phpファイルにセッションを設定します。
セッションの機能を開くには、セッションを使用することができます。最初にサーバに要求を開始したが、これらのパラメータは存在しない。 サーバがsessionIDを作成し、対応するコンテンツ を格納する。サーバ戻りパラメータは、cookieにおいて クライアントは、戻ってきたクッキーの値を返すことによって、 を要求し続ける。サーバは、cookieにおけるsessionIDの値に基づいて、対応するファイル処理関連動作 を見つける。
設定ファイルを変更
セッションの値を読みだします
1.0 Cookie
クッキーについての説明
クッキーは現在の情報とサーバーの交流を維持するためのファイルです。
先端で紹介したsession Strageとlocal Strageも同様の機能です。
内容
クッキー
local Strage
session Strage
ライフサイクル
一般的にサーバによって生成され、失効時間が設定されます。ブラウザ側でクッキーが生成されると、デフォルトでブラウザを閉じて失効します。
削除されない限り、永久に保存します。
現在のセッションのみ有効で、ページまたはブラウザを閉じて削除されます。
データサイズ
4 k
20 M
5 M
サーバと通信する
httpリクエストヘッドに携帯し、クッキーを多すぎるデータを保存すると性能に問題があります。
クライアントすなわちブラウザにのみ保存し、サーバとの通信には参加しません。
クライアントすなわちブラウザにのみ保存し、サーバとの通信には参加しません。
使いやすさ
プログラマが自分でカプセル化する必要があります。
生インターフェースは受け入れられます。また、ObjとArrに対してより良いサポートがあります。
生インターフェースは受け入れられます。また、ObjとArrに対してより良いサポートがあります。
クッキーを使う
// cookie
// setcookie("username", "tylor"); //
// cookie -- $_COOKIE
if(isset($_COOKIE["username"])) {
echo " , ";
}else {
echo " , ~";
setcookie("username", "tylor");
}
?>
chrome:設定=>詳細設定=>コンテンツ設定=>クッキー明文保存のクッキー設定の値が見られます。
クッキーのパラメータ
クッキーの有効期間
// , php (1970-1-1)
// setcookie("username", "tylor", 100);
setcookie("username", "tylor", time() + 10);
//
setcookie("username", "tylor", PHP_INT_MAX);
?>
クッキーの有効ディレクトリ
// cookie
echo $_COOKIE["username"];
// path ,
setcookie("username", "tylor", PHP_INT_MAX, "/day05/down");
// , , , "/"
// Domain: path: secure: https
// cookie
// set-cookie: ds_user_id=3265153328; Domain=.instagram.com; expires=Wed, 13-Feb-2019 14:19:35 GMT; Max-Age=7776000; Path=/; Secure
?>
クッキーを削除
// cookie php
// 1.0
// setcookie("username", ""); ,
setcookie("username", "", PHP_INT_MAX, "/day05/down");
echo "ok";
// 2.0 ,
?>
クッキーの欠陥について2.0セッション
セッションとクッキーの違い
phpファイルにセッションを設定します。
セッションの機能を開くには、セッションを使用することができます。
// !!! php session ,
session_start();
/*
1, sessionID
2, , sess_sessionID
3, cookie, cookie sessionID
*/
// session $_SESSION["name"] = value;
$_SESSION["user"] = Array(
"name" => "dilireba",
"age" => 25
);
?>
請求プロセス設定ファイルを変更
// session.auto_start 0 1
セッションの基本操作セッションの値を読みだします
session_start();
$str = $_SESSION["username"];
?>
セッションの値を削除
session_start();
// session
unset($_SESSION["username"]);
// session
$_SESSION = [];
// session
session_destroy();
?>