Httpセッションとクッキーの違いは?

883 ワード

最近cookieとsessionを話す文章を見て、厳密に言えばstackoverflowの答えで、とてもはっきりしていて面白いです.
Cookieは、クライアントとサービス側で往復する構造が簡単で短いテキストです.例えば、name=bob&password=asdfをクッキーに繰り返し送信して自分の身分を示すと、記憶に問題がある(7 s記憶時間?魚)銀行員と付き合っていることを想像することができます.1時間に1回彼女を探しに行っても、しかし、ビジネスを行うたびにあなたを知らないで身分を証明する必要があります.毎回身分証明書を渡して、あなたが誰かであることを証明しなければなりません.この身分証明書は敏感な情報に満ちたクッキーのように、もちろんクッキーでこのような敏感な情報を保存するのは非常に安全ではありません.クッキーの長さには制限があります.今、このカウンターマンは自分の記憶に問題があることを知っていて、そこであなたの情報を1つのメモに書いて、短いIDを割り当ててあなたにあげて、このように仕事をするたびに身分証明書を提出して自分を証明する必要はありません.あなたは私がclient 12だと言って、この例をネットサービスに翻訳します:サービス側はセッションの対象(メモ)に関連する情報を保存します.そして、セッションIDを生成します.このIDはクライアントに返され、クッキーに格納されます.クライアントが次にクッキーを送信すると、サービス側はクッキーのidに基づいてseesionオブジェクトを探すことができます.見つかったら、あなたの身分が確定します.
はっきりして面白いのではないでしょうか.次に、サービス側がクライアントのクッキーにどのように情報を格納するかを聞く人がいます.
サーバ側はresponse headerにSet-Cookieの属性を加えるだけでよい.例は以下の通りである.
Set-Cookie: JSESSIONID=xxxxxx

完了!