Cookie

Cookie

August 14, 2017
Web, Http

由于Http协议本身是没有状态的,每个请求都要建立新的连接。Cookie就是为了弥补这方面的不足而设计的,主要用来跟踪会话。

会话 #

跟同一个机器中的同一个应用在一段时间内的通信交互,我们可以认为是一个会话(Session)。 会话与会话之间需要被隔离开。

形象的理解 #

Cookie就像是你的一张证明,并且,你跟不同的对方打交道用的是不同的证明。你会把这个证明带在身上,你可以在证明上写东西,对方也可以在上面写东西。在有需要的时候,双方都可以打开这个证明来看看里面的内容。 其本质其实就是一个键值对形式的文本信息。

在控制台中,输入命令:alert(document.cookie) 就可以看到你与当前页面应用之间保存的cookie内容。 手机上的浏览器一般不支持cookie。

跨域 #

cookie是以域名作为单位的,同一个域名共享一个cookie。不同域名之间不能操作对方的cookie。 这里就是sso主要要解决的难点。

跨域设置Cookie有几种实现的方式,其中最方便的就是使用jsonp的方式来实现。

jsonp 跨域 #

在JQuery中使用ajax可以处理同一域名下的重定向请求。但是其处理不了跨域名的重定向。

也就是在同一个域名下进行重定向,ajax使得重定向对用户来说是透明的。但如果是跨域的,ajax就会报错。