asp.net – 会话存储在客户端或服务器端

我想知道如果HttpContext.Session使用cookie来存储数据。一个工作同事告诉我,在mobi网站,手机一般没有cookie,因此你没有会议。我一直认为会话是存储在服务器端的数据,不依赖于客户端对象,请解释如果我错了。

我读了this

在ASP.NET中;你有一个会话cookie。此cookie用于标识您的会话;但实际上不包含会话信息。

默认情况下,ASP.NET会将会话信息存储在工作进程(InProc)内部的内存中,通常为w3wp.exe。还有其他存储会话的模式,例如Out of Proc和SQL Server。

ASP.NET默认使用cookie;但可以配置为“cookieless”,如果你真的需要它;而是将会话ID存储在URL本身中。这通常有几个缺点;例如链接的维护变得困难,人们为具有过期会话ID的URL设置书签(因此您需要处理过期的会话ID等)。大多数现代手机,甚至非智能手机,都支持cookie。旧手机可能不会。是否需要支持cookieless会话取决于你。

如果您的网址如下所示:

http://www.example.com/page.aspx

无Cookie网址如下所示:

http://www.example.com/(S(lit3py55t21z5v55vlm25s55))/page.aspx

其中lit3py55t21z5v55vlm25s55是会话ID。

您可以了解有关ASP.NET的会话状态here的更多信息

http://stackoverflow.com/questions/6665619/is-session-stored-in-client-side-or-server-side

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:asp.net – 会话存储在客户端或服务器端