基础知识:会话 ID 是如何创建的?

9

IIS在收到请求时创建会话ID,该ID保存在服务器端,而不是客户端。

服务器如何识别请求来自同一用户/会话?

2个回答

6
你的第一个问题的答案是肯定的——如果使用了会话,那么就是两者都需要。
cookie是客户端和服务器之间在每个请求/响应中传递的短文本片段。
IIS生成一个会话ID,将其保存并与任何相关数据一起通过cookie传递给客户端(浏览器)。
当客户端发出另一个请求时,它会发送包含会话ID的cookie返回到服务器。服务器可以查看cookie并找到保存在服务器上的会话(以及相关数据)。

有没有网上的链接可以给我更多信息?我想了解cookie是如何在客户端和服务器之间传输的。 - MOZILLA
1
Cookies是通过HTTP请求的头部发送的。 - Kevin Tighe
我有一个疑问,假设我在asp.net Mvc应用程序中创建了一个名为AboutUs的页面,该页面只返回一个View,这是否会为用户请求创建新的会话,或者会话是使用我们应用程序中的代码(如表单身份验证)创建的? - Shaiju T

3
在ASP.net中,有多个地方可以保存会话(session),但它们始终在服务器基础设施内部。
默认情况下,会话(session)保存在IIS进程的内存中。这意味着:如果您重置IIS(或整个PC),甚至仅在IIS中重置应用程序池,所有会话都将被删除,会话数据将永久丢失。此外,如果您有很多会话(session)并在每个会话(session)中存储了大量数据,则该过程将需要大量内存,这可能是一个问题。这称为“In-Proc Sessions”。
主要的替代方法是使用SQL Server数据库。这样,即使重新启动,会话(session)也会被保留,并且每个会话(session)的大小并不重要。主要缺点是增加的延迟:从数据库获取数据比In-Proc解决方案慢当然。
还有一些其他方法可以存储会话(session)(包括编写全新的会话提供程序的选项),但两种常见方法是“服务器内存”和“MS SQL数据库”。

我有一个疑问,假设我在ASP.NET MVC应用程序中刚创建了一个名为AboutUs的页面,该页面只返回一个View,那么这会为用户请求创建一个新的会话吗?还是说会话是使用我们应用程序中的代码(如表单身份验证)创建的? - Shaiju T

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接