是在服务器端还是客户端生成会话ID?

时间:2008-10-24 14:52:46

标签: asp.net session server-side sessionid client-side

此网页http://www.w3schools.com/ASP/prop_sessionid.asp表明在ServerSide上生成会话ID。

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

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

4 个答案:

答案 0 :(得分:14)

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

答案 1 :(得分:2)

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

客户端的下一个请求将在请求的cookie或GET部分中包含会话ID。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

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

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