会话使用cookie吗?
这是一个月前提出的面试问题….
会话使用cookie吗? 如果是这样,他们是如何做到的?
假设Session["UserId"]=1
该会话变量如何在内部使用cookie? 如果是这样,cookie的名称是什么,该cookie的价值是什么……
虽然数据本身存储在服务器上(或者如果以这种方式配置在SQL中),但需要有一种方法将会话数据与特定用户相关联。
默认情况下,这是通过cookie完成的,但您可以配置cookieless,在这种情况下,唯一ID存储在URL中。
来自微软:
ASP通过向客户端提供在会话开始时分配给用户的唯一密钥来维护会话状态。 此密钥存储在客户端在每个请求上发送到服务器的HTTP cookie中。 然后,服务器可以从cookie中读取密钥并重新膨胀服务器会话状态。
每个会话都有SessionID。 会话ID是一个唯一的号码,服务器在访问(会话)期间分配给特定用户。 并且默认情况下,会话ID附加到cookie,并且该cookie将在其请求/响应期间从客户端到服务器(以及服务器到客户端)共享。 服务器将根据从cookie检索的会话ID识别会话。
对于无cookie,如果您的浏览器不支持cookie或禁用cookie,则将使用cookieless。 由于它是Cookieless,asp.net无法创建cookie来保存会话ID。 相反,会话ID将在查询字符串中传递…
不,存储在tmp文件夹中的某个服务器上。 会话是服务器端,cookie是客户端。