Cookies与web缓存

版权声明:本文为博主原创文章,转载请注明博客地址: https://cloud.tencent.com/developer/article/1433326

Cookie

cookie是为了使web站点能更好的的与用户交互而出现的一种技术。通常一个站点都希望能标识用户。HTTP中的cookie正好能够满足要求,他能跟踪用户。cookie有4个组成部件

  • 在HTTP请求报文中有个cookie首部行
  • 在HTTP响应报文中有个cookie首部行
  • cookie是保存在用户客户端的一个文件,并由用户的浏览器进行管理。
  • cookie信息被保存在web站点的数据库中。

cookie是这样跟踪用户的,当用户在第一次访问某个站点的时候,该站点会创建一个唯一的ID,并在数据库中创建一个对应于该ID的表项。这个ID就是用来表示用户信息的。然后在cookie中就会产生这个ID。当用户下一次访问高站点的时候,HTTP请求报文就会包含cookie中的ID,从而网站就会跟踪到你。网站就能使用cookie。这个技术被广泛应用于网络购物车,智能推荐广告信息,或者是智能推荐你喜欢的类别。

但是,cookie会提供给网站一些用户信息,有的时候,你并不希望网站知道你的用户信息。例如:网站可能通过cookie来获取你的电子邮件地址,这就可能泄露你的隐私。并且一些恶意的网站甚至可能将你的个人信息买个第三方机构。

因此,cookie技术是一个备受争议的技术,但是在互联网野蛮发展的今天,绝大多数网站都采用了cookie技术。

web缓存技术

web缓存也叫作代理服务器。它是一种在不向原始服务器发送请求的情形下满足HTTP请求的技术。

可以配置用户浏览器来使得web访问经过缓存,当对象在web缓存中的时候,请求被满足;否则将会请求原始服务器,然后缓存到代理服务器,接着满足请求。代理服务器对于客户端而言是服务器,对于原始服务器而言是客户端。web缓存技术可以减少链路层的数据流量(这是最重要的一点)。因此,web缓存能够大大降低带宽要求,从而降低费用。适合于公司和学校来安装使用。

web缓存技术适用于不经常更改的资源,对于频繁更改的资源,web缓存是不适用的。当然还有一点就是web缓存中的内容可能是陈旧的,这个时候就需要条件GET请求了,在请求报文中包含If-modified-since信息即可。这样代理服务器就能更新它上面的信息(通过访问原始服务器的方式)。