一、Cookie简介:
1、什么是cookie:
在程序中,会话跟踪是很重要的事情。理论上,一个用户的所有请求操作都应该属于同一个会话,而另一个用户的所有请求操作则应该属于另一个会话。而Web应用程序是使用HTTP协议传输数据的,HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接,这就意味着服务器无法从连接上跟踪会话,所以就出现了Cookie,Cookie解决了HTTP协议无状态的不足。
Cookie(也叫 Web Cookie或浏览器 Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态。Cookie 使基于无状态的 HTTP 协议记录稳定的状态信息成为了可能。
cookie是网站为了辨别用户身份,进行session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。
简单来说,cookie类似于网站的身份证
Cookie主要用于以下三方面:
(1)会话状态管理(如用户登录状态、购物车、游戏分数或其它需要记录的信息)
(2)个性化设置(如用户自定义设置、主题等)
(3)浏览器行为跟踪(如跟踪分析用户行为等)
二、Session简介
1、Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上,客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。
如果说Cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么Session机制就是通过检查服务器上的“客户明细表”来确认客户身份,Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。
三、cookie和session的区别
1、作用范围不同:
Cookie 保存在客户端(浏览器),Session 保存在服务器端
2、存取方式的不同:
Cookie 只能保存 ASCII,Session 可以存任意数据类型,一般情况下我们可以在Session 中保持一些常用变量信息,比如说 UserId 等
3、有效期不同:
Cookie 可设置为长时间保持,比如我们经常使用的默认登录功能(记住密码功能就是使用永久Cookie写在客户端电脑),Session 一般失效时间较短,客户端关闭或者 Session 超时都会失去
4、隐私策略不同:
Cookie 存储在客户端,比较容易遭到不法获取,早期有人将用户的登录名和密码存储在 Cookie 中导致信息被窃取;Session 存储在服务端,安全性相对 Cookie 要好一些
5、存储大小不同:
单个 Cookie 保存的数据不能超过 4K,Session 可存储数据远高于 Cookie