页次: 1
cookie 的工作原理是什么?
由于http协议, 用户和服务器的交流是, 用户发出请求服务器做出应答。 服务器本身不能知道请求是谁发出的。
比如一个博客程序,用户登录以后就可以写博客, 没有登录就不能写博客。
用户是否登录,这个问题的解决可以通过 cookie 来完成,也可以通过session来完成。
或者可以这样说 session 也是通过 cookie 来完成的, 当然也可以是基于其他的方式,不是在url中添加特定的值。
cookie 比较简单, 按照http协议, 服务器给浏览器发送信息的时候,会发送的消息头,如果发送的有cookie ,那么cookie就在这里面。
看看打开百度首页 http 头信息都有什么
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Encoding gzip, deflate Accept-Language zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3 Connection keep-alive Cookie bdshare_firstime=1392090020548; BAIDUPSID=BEC26CB1DFB03B128BA3C84119102D0F; Hm_lvt_f5127c6793d40d199f68042b8a63e725=1416185143,1416185608,1416280826,1416618718; Hm_lvt_f5127c6793d40d199f68042b8a63e725=1416185143,1416185608,1416280826,1416618718; BD_UPN=13314352; ATS_PASS=0; Hm_lpvt_f5127c6793d40d199f68042b8a63e725=1416620190; BD_HOME=0; Hm_lpvt_f5127c6793d40d199f68042b8a63e725=1416620155; re__f=%20; H_PS_645EC=e380VnS4jnrMr47Rcw%2BE7szBiiv9tmO4tWKUKP0lYpfBlOWoZh5aKs51PGlqpIor86mXr7TD; H_PS_BABANNER=5; BD_CK_SAM=1; BAIDUID=62EC95D58F0DFA05DFA6947913143B6E:FG=1; BDRCVFR[JtfIirWHSAc]=mk3SLVN4HKm; H_PS_PSSID=7419_10161_1433_9993_9475_10032_10121_10017_9498_10051_10008_9978_9024; BDSVRTM=104 Host www.baidu.com User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0
这里可以看到有个就"加密的cookie" , 简单的cookie 也就是一段很小文本, 正是用这个来区分不同的客户端。
原理是 这里所有值 host , 如果你再次向 www.baidu.com 发出请求其他的网页, 这个cookie 的值是回一起发送的。这样服务器就知道是谁发的请求的了。
ipbbs.net
离线
页次: 1