问题:
为何在百度搜索之后,一些网站总能够推荐我刚刚搜索过的东西?
百度会记录你的搜索信息,同时会在你本地保存一个标识本地的cookie,
而当你打开第三方网站时,第三方网站嵌入了百度广告的JS代码,里面有请求百度广告的请求,而发这个请求时会把原来保存在本地的cookie上传给百度,而百度在服务器根据你的机器标识和你曾经的搜索来推送不同的广告给你。
于是诞生了百度广告联盟
网络臭虫:
比如说有一个臭虫网站,域名为www.abc.com
当用户打开一个页面时www.test.com ,浏览器会请求页面上的图片,js,css等文件。如果某个页面默认写入了一段实际上对应臭虫网站接口的资源,那么用户打开时,就会向这个接口发送请求。
<img src="http://www.abc.com/test?附加信息 height="1" width="1"/>
这时,abc站点就会收到用户的请求,收集到用户的相关信息,与普通HTTP请求类似,比如:ip,浏览器类型,来源网站:referer: https://www.test.com,以及适当的cookie(与请求域相关的cookie)
臭虫网站获取到这些信息后,就能做很多事情,比如发送垃圾邮件后,当用户点开邮件,就会发送响应给到垃圾邮件的系统,表明当前这个邮箱还出于活跃状态,可以继续骚扰。又或者,之前百度埋的cookie信息发送到百度之后,cookie中可能包含了最近搜索的词语,那么百度就能返回一些广告信息,在当前访问的页面展示出来。
如果电商网站和百度进行勾结,那么你在百度搜索之后,再登录购物网站,就会推荐一些你搜索过的内容出来。
这个过程,并不是电商网站直接读取了百度埋的cookie,而是埋了一段与百度信息沟通的js代码等,能够将百度之前埋的cookie再发给百度,然后百度返回适当的推荐关键词到购物网站,然后购物网站进行排序优化。
注意,这里浏览器cookie的发送原则:
HTTP规范约束,禁止跨域读写cookie。虽然浏览器收到了服务器发送的cookie(非法的),但是它直接忽略了它。
比如域名www.test.com,当用户访问时,它返回结果想写一个cookie关联到域名www.baidu.com,这肯定是不行的,浏览器直接忽略了。
而且方用户访问www.test.com时,浏览器只会发送与.test.com相关的cookie到服务端。
参考文档:
web beacon : https://www.cnblogs.com/jvava/p/3926539.html
cookies: https://www.cnblogs.com/wenjia-hao/p/7365569.html
原文地址:https://www.cnblogs.com/shuhe-nd/p/10951659.html