クッキーを認識する

2238 ワード

クッキーとは
クッキーは、HTTPが無状態プロトコルであるという特性に対応するために作成された方法で、クライアントに情報を保持し、次の要求でサーバサーバに返信するためのhttp報文にset-cookieフィールドを追加することができます。このフィールドの属性を設定することにより、クライアントストアクッキー情報にクッキー情報が保存されているクライアントは、その後の要求にクッキーフィールドを追加するように制御することができる。
クッキーのプロパティ
キーを除いた値は対外的には必須項目ではなく、各属性の間に1つのセミコロンと1つのスペースで区切られています。
"key=value; expires=Thu, 25 Feb 2016 04:18:00 GMT; domain=ppsc.sankuai.com; path=/; secure; HttpOnly"
  • key=value cookieキーペア
  • expires=DATE cookieの有効期限(デフォルトはブラウザが閉じるまで)は、GMT形式の時間
  • でなければならない。
    expiresはhttp/1.0プロトコルのオプションであり、新しいhttp/1.1プロトコルのexpiresはすでにmax-ageオプションによって代替されており、両者の役割はクッキーの有効時間を制限することである。expiresの値は、一時的なポイント(cookieの失効時刻=expires)であり、max-ageの値は、秒単位の時間帯(cookieの失効時刻=作成時刻+max-age)である。また、max-ageのデフォルト値は-1(すなわち有効期間はセッション)である。max−ageが3つの可能な値を有する場合、負、0、正の値。マイナス数:有効期間セッション;0:クッキーを削除します正の数:有効期間は作成時刻+max-ageです。
  • パスは、クッキーの送信範囲を制限するためのファイルディレクトリ(指定しないとデフォルトはドキュメントがあるファイルディレクトリ)
  • に使用されます。
  • domain=ドメイン名指定クッキー適用対象のドメイン名(指定されていない場合は、cookieをデフォルトで作成するサーバのドメイン名)eg:Set-Cookie:name=value;secure上の例は、HTTPSを使用した場合のみ、クッキーの回収
  • が行われる。
    特に、ドメイン間xhr要求が発生した場合、URLを要求したドメイン名と経路がクッキーのdomainとpathを満たしても、デフォルトではcookieは要求ヘッダに自動的に追加されない。理由を知りたいなら、本文の最後の節を読んでください。特に2:domainはページ自体のドメイン名(ドメイン名)またはページ自体のドメイン名に設定できる親ドメインです。例えば、ページ名がwww.baidu.comであれば、domainは「www.baidu.com」に設定することができ、「baidu.com」に設定することもできるが、「.com」または「com」に設定することはできない。
  • secureは、クッキーがHTTPSセキュリティリンクの下で
  • を使用することを制限するために使用される。
  • HttpOnly機能は、JavaScriptスクリプトがクッキーを獲得できなくなり、XSSがクッキーに関する情報の盗み取りにHttpOnlyという属性を追加することを防止した後、jsの中のdocument.co okieがクッキー値
  • に取れなくなりました。
    サービス側にクッキーを設定する
    レスポンスheaderのset-cookieフィールド設定では、各フィールドはcookieに対応しています。格納フォーマットは、文字列として、サービスエンドでクッキーの全6つの属性を設定することができます。
    クライアント設定クッキー
    document.co okieを使う
    document.cookie = "name=Micheal; max-age=3600; "
    
    クライアントはHttpOnly属性を設定できませんでした。
    どのようなデータがクッキーに適していますか?
    cookieに格納されているデータは毎回ブラウザによってhttp要求に自動的に置かれます。これらのデータが要求ごとにサービス端末に送られるデータではないなら、ブラウザのこの設定自動処理は間違いなくネットワークオーバーヘッドを増加させました。これらのデータが要求ごとにサービス端末に送られるデータ(例えば、アイデンティティ認証情報)であれば、ブラウザの設定自動処理は重複追加操作を大幅に免除されます。その設定については、「要求ごとに携帯する情報(最も典型的なのがアイデンティティ認証情報)」がクッキーに特に適しており、他のタイプのデータは不適切である。
    注意:
    1.ドメイン名のcookieは最大4 kbで、ドメイン名の下に最大20個のcookieがある(ブラウザメーカーによっては違いがあるかもしれない)