ホームページ  >  記事  >  バックエンド開発  >  HTTP Cookieの状態管理機構の詳細説明、cookie_PHPチュートリアルの詳細説明

HTTP Cookieの状態管理機構の詳細説明、cookie_PHPチュートリアルの詳細説明

WBOY
WBOYオリジナル
2016-07-12 09:00:48788ブラウズ

HTTP Cookie の状態管理の仕組み、Cookie の詳細説明

「Cookie」とも呼ばれる HTTP Cookie は古くから存在していますが、まだ完全には理解されていません。主な問題は、Cookie がバックドアやウイルスであると考えられたり、Cookie がどのように機能するかを単に理解していないなど、多くの誤解があることです。 2 番目の問題は、Cookie の一貫したインターフェイスが欠如していることです。これらの問題にもかかわらず、Cookie は依然として Web 開発において非常に重要な役割を果たしているため、もし Cookie が代わりに使用されずに消滅すると、私たちのお気に入りの Web アプリケーションの多くが役に立たなくなるでしょう。

1. クッキーの由来

Cookie は 1993 年 3 月に Netscape の従業員 Lou Montulli によって初めて発明され、その後 W3C によって採用されました。現在、Cookie は標準となり、IE、Chrome、Firefox、Opera などのすべての主流ブラウザーでサポートされています。

Cookie の誕生は、HTTP プロトコルの固有の欠陥によるものです。HTTP は、リクエスト/レスポンスが完了すると、クライアントとサーバー間の接続が閉じられ、新しい接続を確立する必要があります。再度データを交換します。これは、サーバーが接続からセッションを追跡できない、つまり、サーバーがどのクライアントであるかを認識できないことを意味します。

ログイン/ショッピングカートなどの一部の一般的なアプリケーションは実装できません。たとえば、ユーザー A がショッピング モールで購入した商品は、ユーザー A がいつ購入しても同じセッションに属しており、ユーザー B またはユーザー C のショッピング カートに入れることはできません。同じセッションに属していません。

基本原理は図の通りです


2. クッキーの操作

Cookieに対する操作には以下が含まれます

1.名前
2.価値
3.ドメイン
4.パス
5.有効期限切れ
6.セキュリティ
7.HttpOnly (サーバー側のみ)

Cookie は主にサーバー側で作成されますが、JS も Cookie を作成できますが、HttpOnly タイプの JS は作成できないことに注意してください。

ブラウザが提供するCookie API(document.cookie)は単純すぎるため、次のようにsetter/getter cookie関数を使用するとより便利です

リーリー

もちろん、より便利な機能を提供する https://github.com/florian/cookie.js もあります。

3. クッキーの種類

1. 通常のCookieはサーバーサイドとJSの両方で作成でき、JSからアクセスできます
2.HttpOnly Cookie はサーバーによってのみ作成でき、主にセキュリティ上の理由から JS によって読み取ることはできません
3. セキュア Cookie (https のみ)、サーバー側と JS の両方を作成できます。JS は HTTPS でのみアクセスできます

たとえば、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 が表示され、アクセスできるようになります

4. クッキーの落とし穴

1. Cookieが大きすぎる、または多すぎる場合、ページにアクセスするとエラーが報告されます

そのため、サイトのCookieは管理する必要があり、自由にCookieを植えることはできません。さらに、Cookie を指定された範囲に制限するパスを指定するようにしてください。

ウェブサイトのブラウザcookielimits.squawky.netは、各ブラウザのCookieサイズを記録します


2. 中国語を保存する場合は Unicode エンコード (encodeURIComponent) が必要です。そうしないと保存された文字が文字化けします

興味があるかもしれない記事:

  • Microsoft の使用。VBS によって実装された Cookie を使用して HTTP リクエストを送信するためのコード
  • .net ブラウザーの Cookie を取得する (HttpOnly を含む) インスタンスの共有
  • httpclient シミュレーション ログイン固有の実装 (Cookie を設定するために JS を使用する) )
  • Python は POST を模倣して HTTP データを送信し、Cookie 値を使用するメソッド
  • http://www.bkjia.com/PHPjc/1091854.html
  • www.bkjia.com
tru​​e

http://www.bkjia.com/PHPjc/1091854.html

HTTP Cookie の状態管理メカニズムの詳細な説明、Cookie の詳細な説明 「Cookie」とも呼ばれる HTTP Cookie は古くから存在していますが、まだ完全には理解されていません。最初の質問...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。