开发者社区 > 博文 > CDN缓存之cookie
分享
  • 打开微信扫码分享

  • 点击前往QQ分享

  • 点击前往微博分享

  • 点击复制链接

CDN缓存之cookie

  • 京东云技术交付部
  • 2021-01-22
  • IP归属:未知
  • 300440浏览

一、HttpSet-Cookie


只有客户端才能设置Cookie,服务端若想让客户端增加一个Cookie项,需要在应答时,在Http头部中,通过使用Set-Cookie,将要设置的Cookie项发送给客户端。

这样客户端,在下次访问时,会带上该Cookie项。


Cookie Web 服务器向用户的浏览器发送的一段ASCII码文本。

一旦收到Cookie,浏览器会把Cookie的信息片断以"/"(name-value pairs)的形式储存保存在本地。

这以后,每当向同一个Web 服务器请求一个新的文档时,Web 浏览器都会发送之站点以前存储在本地的Cookie

创建Cookie的最初目的是想让Web服务器能够通过多个HTTP请求追踪客户。

有些复杂的网络应用需要在不同的网页之间保持一致,它们需要这种会话状态的保持能力。
浏览器与Web服务器通过HTTP协议进行通讯,而Cookie就是保存在HTTP协议的请求或者应答头部(在HTTP协议中,数据包括两部分,一部分是头部,由一些名值对构成,用来描述要被传输数据的一些信息。一部分是主体(body),是真正的数据(如HTML页面等))进行传送的。
HTML文档被发送之前,Web服务器通过传送HTTP 包头中的Set-Cookie 消息把一个cookie 发送到用户的浏览器中。

下面是一个遵循Netscape cookie草案的完整的Set-Cookie 头:

如下:
Set-Cookiecustomer=huangxp; path=/foo; domain=.ibm.com;
expires= Wednesday, 19-OCT-05 23:12:40 GMT; [secure]


每个属性解释如下:
Customer=huangxp
一个"名称=值"对,把名称customer设置为值"huangxp",这个属性在Cookie中必须有。
path=/foo
控制哪些访问能够触发cookie 的发送。
domain=.ibm.com
指定cookie被发送到哪台计算机上。
expires= Wednesday, 19-OCT-05 23:12:40 GMT
指定cookie 失效的时间。

如果没有指定失效时间,这个cookie 就不会被写入计算机的硬盘上,并且只持续到这次会话结束。
secure
如果secure 这个词被作为Set-Cookie 头的一部分,那么cookie 只能通过安全通道传输(目前即SSL通道)。

否则,浏览器将忽略此Cookie

二、CDN中的Set-Cookie


一个cookie的目的就是为了标识这个用户,就是说需要为每一个用户设置一个cookie,而一般源站返回的vary头包含cookie每次刷新cookie的值都在变,所以cacheCDN上不缓存。
例如:
< HTTP/1.1 200 OK
< Server: nginx
< Date: Wed, 31 Oct 2018 06:18:55 GMT
< Content-Type: application/octet-stream
< Content-Length: 147895
< Connection: keep-alive
< Content-Disposition: attachment; filename=update_p743t.up
Set-Cookie: SERVERID=de7bdcc1db6c9c7ec6107e6401ac359d|1540966735|1540966735;path=/
< Age: 0
< Via: http/1.1 ORI-CLOUD-JN-BFP-78 (jcs [cMsSf ]), http/1.1 HB-CT-3-BFP-46 (jcs [cMsSf ])
< Proxy-Connection: keep-alive
< X-Trace: 200-1540966735335-0-0-0-63-63;200-1540966735274-0-0-0-155-155
< Accept-Ranges: bytes
<
{ [data not shown]


在此感谢各位童鞋阅读,如果能够对大家有所帮助,欢迎点赞转发。

同时欢迎扫码关注京东云技术中台团队的公众号:云服务飞行团;更多精彩内容会持续放送!

共0条评论