首页 > 试题广场 >

简述cookiesession记住登录状态机制原理。

[问答题]

简述cookie/session记住登录状态机制原理。

cookie

  • cookie是客户端的状态保存机制

  • 存储在本地浏览器,且存储数据量有限,不同的浏览器有不同的存储大小,但一般不超过4KB。因此使用cookie只能存储一些小量的数据。

  • 当浏览器访问网站后,这些网站将一组数据存放在客户端,当该用户发送第二次请求的时候,就会自动的把上次请求存储的cookie数据自动携带给服务器,服务器通过浏览器携带的数据就能识别当前用户。

session

  • session是服务端的状态保存机制

  • 存储在服务器,更安全,不被窃取

  • Session是存放在服务器端的类似于HashTable结构(包括key,value)来存放用户数据,当浏览器第一次发送请求时,服务器自动生成了一个HashTable和一个Session ID用来唯一标识这个HashTable。并将其通过响应发送到浏览器。当浏览器第二次发送请求,会将前一次服务器响应中的Session ID放在请求中一并发送到服务器上服务器从请求中提取出Session ID,并和保存的所有Session ID进行对比,找到这个用户对应的HashTable。

编辑于 2020-11-04 15:38:06 回复(0)
cookie是缓存在浏览器中的,在第一次http请求时就夹带在里面,然后只要cookie不过期,就会一直保留

session是缓存在内存中,即将登录信息存放在电脑的内存中。
发表于 2020-03-03 10:15:03 回复(0)
用户登录验证成功后,如果是使用 Cookie 记住登录状态,则服务器会将用户名等信息放在响应头的 Set-Cookie 属性中返回给服务器,之后的 HTTP 请求都会携带这个 Cookie ,实现记住登录。如果是 session 的话,则服务器会将用户名等信息存放在本地,再随机生成一个登录标识通过 Cookie 返回给浏览器,之后浏览器每次发送请求也会携带这个 Cookie,服务器收到后便通过这个标识得到已登录的用户信息。
发表于 2020-03-19 20:46:36 回复(0)
session 是服务端的状态保存机制
cookie 是客户端的状态保存机制
当第一次访问服务器的时候 服务器会开辟一块空间用来存放用户的信息
每一个登录之后的用户信息 都会以key value格式记录在session中
同时服务器会把sessionId(用户信息) 存在cookie中 返回给访问的客户端
客户端就会把sessionID保存在本地的cookie中对应的网站记录下
下次访问的时候会携带这个sessionId
服务器会验证这个cookie的有效性 来判断用户是否登录
发表于 2020-03-20 12:55:15 回复(0)
http是无状态的网络协议,请求响应后,断开了TCP连接,下一次连接与上一次无关。为了识别不同的请求是否来自同一客户,引用HTTP会话机制,而维持这个会话则主要靠session和cookie。简单来说,cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。
发表于 2020-02-20 20:00:51 回复(0)
session是服务器端的状态保存机制
cookie是浏览器端的状态保存机制
当第一次访问服务器的时候,服务器会开辟一块空间用来存放用户的信息
所以说当你第一次登录的时候,你的用户信息都会以keyvalue的形式存放在session中,同时服务器端会将这个sessionid存在cookie中,返回给
访问的客户端,客户端就会把这个sessionid保存在本地的cookie中,下次访问的时候会携带这个sessionid,服务器就会验证这个cookie的有效性,来判断用户是否登录。
发表于 2020-10-11 10:41:17 回复(0)

http请求时无状态,无连接的

  • 无状态,简化了服务器设计,是服务器更容易支持大量并发的http请求

cookie原理:

  • 首次登录,服务器返还一组数据放在用户客户端的cookie中
  • 下次请求,带上cookie数据,则服务器可以据此识别该用户
  • cookie大小是4K,可以设置过期时间,会参与http对话
    • 设置过期时间的cookie存储在硬盘上
    • 不设置过期时间,会话关闭即消失
    • cookie存储在本地

session机制:

  • 用户数据session是存储在服务器端,会返回给客户端一个对应的session ID
    • 服务器中的session是有过期时间的(为了减轻服务器的压力)
  • 下次请求时,客户端会带上该session ID,服务器端会将之与存储的session ID对比
  • session ID在客户端中可以存储在cookie中
发表于 2020-04-06 23:36:36 回复(0)
cookie存与本地浏览器,再次请求时,会将上次的cookie数据携带发给服务器。关闭浏览器则cookie被清理。 session存在服务端,类似哈希表,第一次请求,服务器会在哈希表里带上一个sessionID给客户端,当客户端再次请求时,会携带原来的sessionID供服务端对比。服务端一般20分钟清理一次ID。
发表于 2020-02-17 15:57:38 回复(1)