COOKIE和Session的原理及异同

一、Cookie的工作原理

  Cookie分发是通过扩展HTTP协议来实现的,服务器通过在HTTP的响应头上加上一行特殊的指示以提示浏览器按照生成相应的cookie。cookie的使用时有浏览器按照一定的原则在后台自动发送给服务器的。

  Cookie是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器。网络服务器用HTTP头向客户端发送cookies,在客户终端,浏览器解析这些cookies并将它们保存为一个本地文件,它会自动将同一服务器的任何请求缚上这些cookies。

二、Session的工作原理

  Session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构来保存信息。

  程序需要为某个客户端的请求创建一个session时,服务器首先检查这个客户端的请求里是否已包含了一个session标识(称为session id),如果已包含则说明以前已经为此客户端创建过session,服务器就按照session id把这个session检索出来使用(检索不到,会新建一个),如果客户端请求不包含session id,则为此客户端创建一个session并且生成一个与此session相关联的session id,session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个session id将被在本次响应中返回给客户端保存。

三、COOKIE和Session的相同点

①cookie和session都是用来跟踪浏览器用户身份的会话方式。

②二者都是用来存放比较私密的信息的,同样都有生命周期。

四、COOKIE和Session的不同点

①cookie的数据存放在客户的浏览器上;session的数据存放在服务器上。

②cookie不安全,容易被侵入;而session存放在服务器上,不容易被侵入。

③cookie只能保存ASCLL字符串,也不能直接存取Java对象;而session能够存取任何类型的数据,也能够保存JavaBean乃至任何Java类。

④cookie一般的有效期是很长;session的有效期默认-1,只要关闭了阅读器session就会失效。

⑤cookie支持跨域名访问,而session不支持跨域名访问。

posted @ 2019-04-14 19:04  往日  阅读(267)  评论(0编辑  收藏  举报