简单了解cookie和session

和上一篇文章,cookie我们也是经常听说,而session与cookie可谓是密切联系。那么这两东西到底有什么用,下面我们就来一探究竟。

cookie与session

cookie英文翻译过来为饼干,不过其在浏览其中充当的角色却大径相庭。

cookie:存放于浏览器文件目录下的文件,用于保存用户的个人信息。每当我们第一次访问服务器的时候,都会将cookie返回到浏览器,并将这些cookie保存在我们本地当中,访问不同的域生成不同的cookie。当我们第二次向同一个服务器发出请求的时候,浏览器会顺带着相应的cookie发送到服务器,服务器会验证cookie中的用户信息并返回到浏览器中如自动登录账号,猜你喜欢等等。

session:我们称之为会话。什么是会话?浏览器发送向服务器发送请求,服务器作出应答直到关闭浏览器,这就是一次会话。在会话的过程中,用户的信息被保存在session对象中,而session是存放在服务器中的。可以简单理解为session就是存放于服务器中的cookie。session的作用很明显,由于HTTP协议是无状态无记忆的(即通过HTTP访问同一个服务器,第一次,第二次,甚至更多次都没有任何联系),那么每次访问用一个服务器时,都需要对用户的信息重新进行操作,十分麻烦。这时有了session,使得每次访问同一个服务器的时候避免了对用户信息的操作,大大减少了开销。

那么有了session为什么还要cookie呢?亦或是反过来说?

两者的优劣

cookie存放于用户本地,不需要占用过多服务器中的资源。不过cookie容易被用户所修改,很容易导致信息泄露,这样显得不太安全。

session存放于服务器端,用户无法直接访问。不过相对应的,过多的用户访问该服务器会产生大量的session,从而大大增加服务器端内存的开销。

不过,结合两者的优势,就能大大减少其劣势!那到底怎么结合呢?

两者结合

结合的两种方法:

浏览器发出安全请求----->服务器作出响应,创建相应的session文件,保存用户信息----->服务器返回请求内容,返回含有唯一session_id的cookie文件。

浏览器第二次发出安全请求(顺带着cookie)------>服务器接收到请求与cookie------->服务器检测到cookie中的session_id------>服务器返回请求内容以及对应的session中的用户信息

浏览器发出安全请求----->服务器作出响应,创建响应的session文件,保存用户信息------>服务器返回请求内容,返回含有加密后的session数据的cookie文件。

浏览器第二次发出安全请求(顺带着cookie)------->服务器接收到请求与cookie-------->服务器检测到cookie中的session数据并进行解密----->服务器返回请求内容以及相应的session中的用户信息

关注不吃亏

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180720G0SYOE00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券