第38天 说说你对cookie和session的理解
Activity
wenyejie commentedon May 24, 2019
cookie: 可以通过客户端, 服务端设置, 容量小, 可以通过设置domain来实现同步登录, 除了name, value, 它还有多个选项, domain, path, secure, expires, 客户端和服务端可以通过cookie来通讯, 传递信息
session: 由服务端设置并发起, 是服务端对于用户行为的一种凭证, 通常也是由cookie来维持这种关系, 比如session_id, 或者现在webstorm设置的
Webstorm-bb00fc34
等! 通过这种维持两者的关系,rocky-191 commentedon May 24, 2019
一般cookie在客户端产生存储,当然服务端也可以生成cookie。session在服务端产生,二者都可以用来鉴权,服务端产生session,以及对应的sessionid,传给客户端,可以存在cookie里面或者localstorage里面,每次请求携带sessionid,服务端去判定是否有权限访问。现在鉴权的方式一般cookie、session鉴权,token鉴权或者jwt鉴权
tzjoke commentedon May 28, 2019
cookie:
name=value
形式,可以设置过期时间,一般用来保持状态,不然每次都要登录session:也是保存状态,在服务端产生,一些敏感信息放在服务端session,然后产生一个 sessionId,通过 cookie 传到客户端,然后每次客户端请求会带cookie,服务端从cookie中获取sessionID,从而获取敏感信息。不过浏览器一关就没了,不关过一会儿也会失效
把session放入cookie中便有了session cookie 2223
Vi-jay commentedon Jul 29, 2019
cookie存在客户端 session存在服务端 在创建session时会生成一个id 在请求中返回给客户端 存在cookie中 每次请求时 将id带给服务端 服务端拿到session中对应的值作为该用户信息
Konata9 commentedon Sep 16, 2019
由于 http 是无状态的,服务端没法记录客户端的状态。因此
cookie
和session
本身就是为了记录客户端的状态。只是
cookie
是存放在客户端而session
是记录在服务端。cookie
可以在客户端生成也可以由服务器生成传给客户端,通过name=value
的形式存储数据。一般
cookie
会记录一个由服务端生成的 token,session
同样会记录这个 token。服务端就可以通过 token 来鉴别身份。canwdev commentedon Nov 11, 2019
cookie 是服务端在响应头部(字段名为
Set-Cookie
)向客户端返回数据时携带的内容,用于区分不同的用户或在前端保存用户状态,一般都是服务端控制生成的,不需要在浏览器端设置。session 是指会话,由服务端生成一个 token 并记录在服务器中,通过 cookie 保存到浏览器中,这样服务端就可以使用这个 token 来鉴别身份。
xuxihua commentedon Jan 8, 2020
两者作用:会话保持的功能,为了解决http无状态的问题
cookie:用户通过HTTP第一次访问一个服务器的时候,服务器就会把一个cookie返回给客户端,保存在客户端的内存或者硬盘中,同一个用户下次再访问服务器时,就把cookie带上,这样服务器就认出这个用户了。
session理解:有了session之后,用户只需要携带一个默认名为 JSEESIONID 的cookie去访问服务器,它的 value 是每个用户的唯一ID。用户第一次访问服务器,会生成这个cookie,并且在服务器端实例化一个 HttpSession 对象,这个对象其实就是个Map,可以用来保存用户的信息。下一次用户再访问服务器,就可以根据ID找到这个session,并读取其中保存的用户信息。
区别:
安全性:cookie保存在客户端,可在本地查看修改,安全性不高。session的用户信息保存在服务器端,发给客户端的只是一个用户id,相对更安全
限制:cookie有大小和数量限制,session没有大小限制,只有时间限制
lizhesystem commentedon Apr 20, 2020
因为
http
是一种无状态请求,默认情况下第一次请求和下一次没什么关系,这种无状态的的好处是快速。cookie
是一种基于客户端(浏览器)的会话技术特点:
作用:
session
是服务端的会话技术,在一次会话的多次请求间共享数据,Session
是保存在服务端的,有一个唯一标识,在服务端保存Session
的方法很多,可以通过内存、数据库、文件都有,集群的时候也要考虑Session
的转移,在大型的网站,一般会有专门的Session
服务器集群。特点:
区别session与Cookie:
blueRoach commentedon Jul 9, 2020
cookie和session都是用来解决http无状态协议的不足的
一般来说他们的作用,cookie一般是在客户端来记录用户信息,而session是在服务起端来记录用户信息的
由于cookie是保存在客户端,所以说一般是不会保存一些比较敏感的数据的,而session呢相对来说比较安全
cookie的大小是有限制的4KB,同一个域名下的数量也有限制20个;而session是没有限制的的
使用:
1.在用户登录后,服务器发送一个token给前端,前端通常会保存下来,在与后端通信的时候将token传给服务起端来鉴别用户的身份。
2.用户登录后,将账号和加密的密码保存在cookie里,以便下次访问时不用输入账号密码(通常都会设置一个期限大概30天)
当然,session对比cookie来说,几乎所有的点都比cookie要优秀,更安全、没有大小的数量的限制,唯一不足就是会增加服务起的负担
smile-2008 commentedon Oct 28, 2020
cookie: 可以通过客户端, 服务端设置, 容量小, 可以通过设置domain来实现同步登录, 除了name, value, 它还有多个选项, domain, path, secure, expires, 客户端和服务端可以通过cookie来通讯, 传递信息
session: 由服务端设置并发起, 是服务端对于用户行为的一种凭证, 通常也是由cookie来维持这种关系, 比如session_id, 或者现在webstorm设置的Webstorm-bb00fc34等! 通过这种维持两者的关系,
chenshijin1 commentedon Dec 6, 2020
https://juejin.cn/post/6844903957916024839
https://juejin.cn/post/6844903953029677064