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