5

此网页http://www.w3schools.com/ASP/prop_sessionid.asp声明会话 ID 是在服务器端生成的。

如果是这种情况,那么服务器如何知道它在第二个请求响应周期中仍然是同一个客户端?

肯定会在 ClientSide 上生成 SessionId 以便客户端确定将相同的值传递给服务器?

4

4 回答 4

14

SessionID 是在服务器端生成的,但存储在 Cookie 中的客户端上。然后每次客户端向服务器发出请求时,SessionID 都用于验证客户端的现有会话。

于 2008-10-24T14:54:33.137 回答
3

会话 ID 通常在服务器上生成。然后它被发送到客户端,或者作为 HTTP 标头中的 cookie,或者通过将其包含在 HTML 中,即链接变为 href=my.html?sessionid=1234。

然后,客户端的下一个请求将包含会话 ID,无论是在 cookie 中还是在请求的 GET 部分中。

于 2008-10-24T14:55:31.730 回答
0

如果不存在,服务器将生成一个会话 ID。但是一旦生成,客户端就可以将该 id 传递回服务器。如果客户端修改了该 id,您可能会从服务器收到一个错误,并生成一个新的 id。

于 2008-10-24T14:54:56.427 回答
0

ID 在服务器上生成。然后,客户端将其存储在服务器在后续请求中获取的会话 cookie 中。

如果服务器在无 cookie 模式下运行,则会话密钥成为 URL 的一部分,服务器从那里解析它。

添加: ...如果服务器希望使用会话 cookie,但客户端禁用了 cookie,那么从服务器的角度来看,所有请求都是新会话,因为它无法判断这是同一用户。

于 2008-10-24T14:55:12.073 回答