Cookie、Session、およびASP.NETでの応用


昨日CookieとSessionの知識をいくつか聞かれ、一部回答しましたが、一部回答していませんでした.今日の午前中にわざわざいくつかの資料を調べて、今見つけたいくつかの良い資料をまとめて、分かち合います.
まずクッキーとセッションの基礎知識を話します.
クッキーはクライアントに保存され、少量の情報、明文を保存し、ユーザーidなどの情報を保存するのによく使われ、よくあるシーンはログイン時の「私を覚えて」です.機密情報の保存は推奨されません.
sessionはセッションレベルであり、サービス側に保存され、各ユーザは一意であり、カートなどを実現するために使用することができ、サービス側に現在のユーザセッションのコンテキスト情報を保存する必要がある.サーバのメモリに保存でき、サーバにまたがることはできません.データベースに保存できます.
上は些細な知識点です.クッキーのsessionidのように、sessionはステータスサーバで保存することもでき、専用のサーバで保存することができます.クッキーの内容は文字列タイプで、セッションの内容はobjectタイプで、セッションの内容は取得後にタイプ変換が必要で、必要なタイプに変換します.
ASP.NETでは、web.configファイルで構成します.
 

  
  
  
  
  1. <configuration> 
  2.     <system.web> 
  3. <sessionState mode="InProc"  
  4.                     timeout="20"  
  5.                     cookieless="true"  
  6.                     stateConnectionString="tcpip=localhost:42424"  
  7.                      sqlConnectionString="" 
  8.                     /> 
  9.      
  10.     </system.web> 
  11.  
  12. </configuration> 

コンフィギュレーションセクションのパラメータ情報については、ASP.を参照してください.NET Session状態の記憶は、詳しく話していて、Cookieを細かく話している文章を見つけて、詳しく話しているような気がします.
 
 
 
問題は二つあります.
1クライアントがクッキーを無効にした後、セッションはまだ使えますか?
2クッキーがクライアントとサービス側でどのように伝達されるか、具体的な伝達プロセス.
 
回答する.
1クライアントがクッキーを無効にした後、セッションはまだ使えますか?
クッキーを無効にした後もsessionを使用できます.
Sessionのステータスは、クライアントとサービス側の2つの場所に格納されます.クライアントはSessionIDを保存し、Session情報はサービス側に保存します.クライアントのSessionIDはCookieに保存されており、ブラウザがcookieを無効にするとsessionのメリットは使用できません.
実はsessionidはurlで渡すこともでき、formで渡すこともでき、カスタマイズして実現することができます.
ASP.NETではsessionには2つのストレージ方式があります.cookieとcookielessです.つまりクッキーを無効にしてセッションを使用することもできます.cookieless=trueに設定した後、セッションをステータス・サービスに格納するか、SQLサーバに格納するかを選択できます.具体的なやり方は最後の参考文献を見ることができます.
 
2クッキーがクライアントとサービス側でどのように伝達されるか、具体的な伝達プロセス.
クッキーのクライアントおよびサーバ側での伝達は、要求および応答のヘッダによって伝達される.
クライアントからサーバ側にクッキーを渡すのは、requestのヘッダにクッキーがあり、そこには伝達された内容があります.
サーバー側からクライアントにクッキーを渡すのは、responseのヘッダにset-cookieがあり、バックグラウンドコードで設定されたクッキーの内容です.
これは、fiddler、httpwatch、firebugなど、多くのパッケージツールで表示できます.
参考文献
1. ASP.NETセッション状態の記憶
2.詳しく言えばCookie
3.クッキーのパスを正しく使う