揭秘Cookie
为什么要用Cookie?
在HTTP请求中,每个HTTP请求都是独立,没有办法做上下文关联,但是在真正的应用中,很多场景是需要用到这种关联的。最经典也是最常见到使用Cookie的就是登录操作,登录成功后,我们可以在同一浏览器下的不同Tab页面都能访问我们需要登录才可以看到的页面。这就是通过Cookie来实现的。否则每开一个Tab页面登录一次淘宝,估计你也就不想购物了。
所谓的Cookie到底是什么?
从本质上来说,Cookie我们可以理解为,它就是一个存在硬盘的字符串,Cookie可以做很多操作,以登录为例的话,它实际就是存在硬盘中的账号密码,多数会以一种加密的方式存储。
不同浏览器时Cookie是共用的么?
假设电脑上有三种浏览器,谷歌、欧朋、火狐,如果谷歌上打开淘宝并且登录,那么火狐浏览器打开淘宝时一定还是需要登录,其实认真想下就能够想通了,Cookie是存在硬盘中的一个字符串,那么谷歌和火狐浏览器分别安装在不同的目录下,它们存储Cookie的地址一定是不同,所以不同浏览器之间是不可以共用Cookie的。
揭秘Session
为什么要用Session?
在知道Cookie是存在硬盘中的字符串后,如果将存在硬盘中的Cookie盗取,存在登录信息被破解的风险,所以通过Session来避免信息被盗取的风险。
什么是Session?
可以将Session简单的理解为一个对象,这个对象中可以包含很多东西,具体想包含什么是可以由开发人员自定义的。存在服务器中的是一个key,value形式的对象。
Cookie与Session有什么联系?
在WEB应用中,Cookie是可以独立使用的,但是Session必须依赖于Cookie使用,每创建一个Session对象时,都会生成一个唯一的Session_id,它通过Cookie的形式存在浏览器的内存中,随着浏览器关闭则消失,从而保证不留存在硬盘中。
Session的原理是什么?
登录成功后,通过Cookie的形式在浏览器内存中存入一个唯一的Session_id,每一次请求时,都会携带带有Session_id的Cookie信息传到服务器,以Session_id为Key得到唯一的Value信息,则代表发送过来的请求为有效请求。否则为无效请求。