云计算时代下的cookie

在当今的互联网时代,网络对于用户的体验越来越重要,规划部署网络结构,是云计算重要的环节。cookie成功的在互联网世界中应用,将http简单的访问,变得丰富有趣,而云计算下的微服务器在网络路由过程,cookie是一个有效识别身份的方法。接下来我为大家介绍cookie基本概念和使用。

介绍

cookie中文名小型文字档案或小甜餅,由网景公司的前雇员盧·蒙特利在1993年3月发明[2]。最初定协议RFC 2109。目前使用最广泛的 Cookie在网景公司制定的标准上进行扩展后的产物。被浏览器厂商支持,主流浏览器如IE、Netscape、Firefox、Opera等都支持Cookie。

Cookie是解决HTTP无状态性的有效手段,服务器可以设置或读取Cookie中所包含的信息。当用户登录后,服务器会发送包含登录凭据的Cookie到用户浏览器客户端,而浏览器对该Cookie进行某种形式的存储(内存或硬盘)。

分类

Cookie保存在客户端的浏览器,可分为内存Cookie和硬盘Cookie。

内存Cookie:由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时间是短暂的。

硬盘Cookie:保存在硬盘里,有一个过期时间,除非用户手工清理或到了过期时间,硬盘Cookie不会被删除,其存在时间是长期的。按存在时间,可分为非持久Cookie和持久Cookie。

在计算机网络中,session会话式表示网络交互一种方式,“会话”通过tcp三次握手表示一会话,服务器端机制,服务器使用一种类似散列表的结构来保存信息,会话可连续、也可间断。通过cookie把每个会话建立成可识别的,cookie保存在客户端,下次访问时以便服务器识别。参考图

cookie采用unicode作为编码,打开时采用UTF-8字符集,在使用中MaxAg e属性值来决定cookie临时、还是永久。

MaxAge->0 表示删除cookie

MaxAge->负数 表示临时性cookie,关闭浏览器就会释放;

MaxAge->正数 表示永久性cookie,秒数到后则自动失效;

跨域

小编在使用cookie过程也过到跨域的需求如:

A/pathA ->代理服务器(nginx)->B/pathB

A/path通过代理去访问Adomain服务器,是无法获取B Domain的cookie,通常只有一个routeID。正常情况下两个域名服务器是无法交换使用cookie。

在使用domain 和path需注意如下:

domain表示的是cookie所在的域,默认为请求的地址,如网址为www.test.com/test/test.aspx,那么domain默认为www.test.com。而跨域访问,如域A为t1.test.com,域B为t2.test.com,那么在域A生产一个令域A和域B都能访问的cookie就要将该cookie的domain设置为.test.com;如果要在域A生产一个令域A不能访问而域B能访问的cookie就要将该cookie的domain设置为t2.test.com。

path表示cookie所在的目录,默认为/,就是根目录。在同一个服务器上有目录如下:/test/,/test/cd/,/test/dd/,现设一个cookie1的path为/test/,cookie2的path为/test/cd/,那么test下的所有页面都可以访问到cookie1,而/test/和/test/dd/的子页面不能访问cookie2。这是因为cookie能让其path路径下的页面访问。

浏览器会将domain和path都相同的cookie保存在一个文件里,cookie间用*隔开。

---------------------------------------------------

https://zh.wikipedia.org/wiki/Cookie#cite_note-2

https://zhuanlan.zhihu.com/p/27669892

https://www.cnblogs.com/andy-zhou/p/5360107.html#_caption_2

https://blog.shanelee.name/2017/10/16/kubernetes-ingress-and-sticky-sessions/

https://github.com/kubernetes/ingress-nginx.git

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180414G0WOL500?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券