ホームページ >バックエンド開発 >PHPチュートリアル >HTTP 状態管理メカニズム Cookie、状態メカニズム cookie_PHP チュートリアル
Cookie は 1993 年 3 月に Netscape の従業員 Lou Montulli によって初めて発明され、その後 W3C によって採用されました。現在、Cookie は標準となり、IE、Chrome、Firefox、Opera などのすべての主流ブラウザーでサポートされています。
Cookie の誕生は、HTTP プロトコルの固有の欠陥によるものです。HTTP は、リクエスト/レスポンスが完了すると、クライアントとサーバー間の接続が閉じられ、新しい接続を確立する必要があります。再度データを交換します。これは、サーバーが接続からセッションを追跡できない、つまり、サーバーがどのクライアントであるかを認識できないことを意味します。
ログイン/ショッピングカートなどの一部の一般的なアプリケーションは実装できません。たとえば、ユーザー A がショッピング モールで購入した商品は、ユーザー A がいつ購入しても同じセッションに属しており、ユーザー B またはユーザー C のショッピング カートに入れることはできません。同じセッションに属していません。
基本原理は図の通りです
Cookieに対する操作には以下が含まれます
Cookie は主にサーバー側で作成されますが、JS も Cookie を作成できますが、HttpOnly タイプの JS は作成できないことに注意してください。
ブラウザが提供するCookie API(document.cookie)は単純すぎるため、次のようにsetter/getter cookie関数を使用するとより便利です
。 リーリーもちろん、より便利な機能を提供する https://github.com/florian/cookie.js もあります。
たとえば、Sina Cloud のページ http://snandy.sinaapp.com/php/cookie.php をテストするとき、c1、c2、c3 という 3 つの Cookie を植えました
リーリーFirefoxでアクセス
私は3種類の品種を持っていますが、サウトは新浪雲で栽培されています。
Firebug コンソールに document.cookie と入力します
c2 と c3 にアクセスできないことがわかります。 c2 は安全な Cookie であり、https プロトコルでアクセスする必要があります。c3 は httpOnly であり、JS ではアクセスできないことに注意してください。
アクセスプロトコルを https: https://snandy.sinaapp.com/php/cookie.php に変更し、firebug コンソールに切り替えて document.cookie と入力すると、c2 が表示され、アクセスできるようになります
そのため、サイトのCookieは管理する必要があり、自由にCookieを植えることはできません。さらに、Cookie を指定された範囲に制限するパスを指定するようにしてください。
ウェブサイトのブラウザcookielimits.squawky.netは、各ブラウザのCookieサイズを記録します
2. 中国語を保存する場合は Unicode エンコード (encodeURIComponent) が必要です。そうしないと保存された文字が文字化けします