我们生活中广告无处不在,如影随形,到底广告是如何运行的,为什么浏览器总能推送给我们精准的广告?
理论基础
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。
Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份。怎么办呢?就给客户端们颁发一个通行证吧,每人一个,无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了。这就是Cookie的工作原理。Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。
Cookie的不可跨域名性
很多网站都会使用Cookie。例如,Google会向客户端颁发Cookie,Baidu也会向客户端颁发Cookie。那浏览器访问Google会不会也携带上Baidu颁发的Cookie呢?或者Google能不能修改Baidu颁发的Cookie呢?答案是否定的。Cookie具有不可跨域名性。根据Cookie规范,浏览器访问Google只会携带Google的Cookie,而不会携带Baidu的Cookie。Google也只能操作Google的Cookie,而不能操作Baidu的Cookie。Cookie在客户端是由浏览器来管理的。浏览器能够保证Google只会操作Google的Cookie而不会操作Baidu的Cookie,从而保证用户的隐私安全。浏览器判断一个网站是否能操作另一个网站Cookie的依据是域名。Google与Baidu的域名不一样,因此Google不能操作Baidu的Cookie。需要注意的是,虽然网站images.google.com与网站www.google.com同属于Google,但是域名不一样,二者同样不能互相操作彼此的Cookie。
Cookie的有效期
Cookie的maxAge决定着Cookie的有效期,单位为秒(Second)。如果maxAge属性为正数,则表示该Cookie会在maxAge秒之后自动失效。浏览器会将maxAge为正数的Cookie持久化,即写到对应的Cookie文件中。比如说记住密码,一周,那就是设置Coolie的有效期是一周如果maxAge为负数,则表示该Cookie仅在本浏览器窗口以及本窗口打开的子窗口内有效,关闭窗口后该Cookie即失效。maxAge为负数的Cookie,为临时性Cookie,不会被持久化,不会被写到Cookie文件中。Cookie信息保存在浏览器内存中,因此关闭浏览器该Cookie就消失了。Cookie默认的maxAge值为–1。Cookie并不提供修改、删除操作。如果要修改某个Cookie,只需要新建一个同名的Cookie,添加到response中覆盖原来的Cookie。如果要删除某个Cookie,只需要新建一个同名的Cookie,并将maxAge设置为0,并添加到response中覆盖原来的Cookie。
什么是Session
Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。如果说Cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么Session机制就是通过检查服务器上的“客户明细表”来确认客户身份。Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。
Cookie与Session的区别
cookie数据存放在客户的浏览器上,session数据放在服务器上;cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session;session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能。考虑到减轻服务器性能方面,应当使用COOKIE。
Cookie和网络广告联盟
广告联盟:集合中小网络媒体资源,通过联盟平台帮助广告主实现广告投放,并进行数据监测统计。几乎每家互联网巨头都有那么个联盟。比如百度联盟,它给你一段代码嵌入到你的网页,然后用户浏览你的网站的时候,就能看到百度根据你先前的搜索记录分发过来的广告,这也就做到了精准投放。
那么技术上的大体流程是如何的呢?
以百度联盟为例:使用百度的时候,会把你的此次搜索保存到cookie中,并且分配这个浏览器唯一可标识的ID号,当打开人人影视的时候,该页的广告模块就向第三方也就是广告服务商的服务器去请求百度保存在浏览器的cookie,然后就可以知道你最近浏览或者搜索过哪些商品,然后就返回给你相关的广告。从当前域去请求百度的cookie就涉及到cookie的跨域。
大数据的精准广告投放
精准的广告投放,应该还可以分为两种:一种是单个应用或者网站的广告兴趣投放;另外一种则是跨区域广告投放,最简单的例子就是在网上商城查看的商品,却在第三方网页广告推荐给你。总的来说,第一种其实是比较能接受的,在各大企业都在宣传”大数据“概念,利用用户浏览习惯判断用户兴趣爱好以及消费能力,个性化推荐内容或者商品,这种事比较能够理解和接受的。正如在某宝,看看我的搜索记录、购买清单以及日常流量记录,然后在首页推荐和“你可能喜欢”一栏,基本都覆盖我的搜索相关或者已购买的类别。包括今日头条、百度搜索以及具备个性化推荐能力的资讯APP都存在类似的情况。这种用户可能会主动使用,所暴露的习惯行为被相应的内容提供方获取以进行人群画像,大多数人可以接受,一定程度上说还能够提升使用体验。对于第二类,最常见的就是在使用浏览器上网时遇到的状况。例如在某个电商网站浏览某款商品之后,当你随后在浏览到其他的第三方网站时,出现的广告页就精准的推荐了你刚刚浏览过的商品购买链接,而这一切,离不开广告联盟和浏览器Cookies。最常见的就是在使用浏览器上网时遇到的状况。例如在某个电商网站浏览某款商品之后,当你随后在浏览到其他的第三方网站时,出现的广告页就精准的推荐了你刚刚浏览过的商品购买链接,而这一切,离不开广告联盟和浏览器Cookies。
如何看待Cookies
正由于Cookies能够实现这种用户追踪的特性,也找来了许多争议。基本分为两派,一方为广告提供商,认为Cookies的存在可以提升用户体验和营销效果;而浏览器厂商则站在保护用户隐私的角度,提供了DNT(反追踪)服务,通过这项功能能够检测跨站跟踪、Cookies跟踪等行为。但在大多数浏览器中,只是提供了DNT的服务,但默认是关闭的,用户需要根据自己的需要选择打开。Cookies能记录的基本是你或者说你在使用的浏览器在网站上看了什么视频、商品或者其他对判断你的喜好有帮助的内容,一般不会造成严重的密码泄露和个人隐私信息泄露,否则早就被禁用了,而这些可被利用的信息,在广告上看来价值连城,在用户个人看来,有些人可能并不在意,甚至还会当成一种个性化服务的优化。Cookies并没有那么可怕,但也不能完全忽略其存在,毕竟还是有很多黑客利用恶意软件能够捕捉到用户的私密信息,我们需要多场景,多维度的看待Cookie这把双刃剑。
参考文章