双核浏览器切换内核(模式)的行为分析
双核浏览器切换内核(模式)的行为分析
测试的浏览器
360安全浏览器、qq浏览器、搜狗浏览器
约定
- 在没有特别指出某条性质属于具体哪一个浏览器时,表示对于所有测试的浏览器均适用。
- 极速模式指以Webkit为内核的模式,兼容模式指以IE为内核的模式。
结论
对 Cookie 的影响
切换内核时浏览器会自动复制所有的cookie,并且不受secure, httpOnly, path等属性影响,也就是说上述三个属性不论取何值,都会在两种模式(两种内核)中复制。
关于360安全浏览器中的__guid
和monitor_count
在使用360安全浏览器时,不论是在兼容模式还是极速模式,浏览器会自动为你访问的每一个网站增加两个cookie: __guid
和 monitor_count
。
据观察,它们的行为规律如下:
__guid
: 是一个类似于唯一主键的长字符串,在每次用户第一次访问某个域名时,浏览器会生成一个新的 ‘__guid’ ,在用户切换内核时,这个值会被自动复制,保持不变。monitor_count
: 是一个从1开始的自增数字,在极速模式下,每发一次请求,会自增1,每次切换内核(双向均可),也会自增1,但在兼容模式下,每发一次请求不会自增。
上述两个cookie猜测应该是360安全浏览器自身的某种机制,开发者不必太关心它们,修改、删除它们均不会影响cookie在内核之间的复制,开发者只需注意自己的cookie的key在取名的时候要避开它们就可以了。
对 Head 的影响
最重要的是对 User-Agent
的影响,三个浏览器均会在切换内核后改变 User-Agent
,因此如果你的后台程序依赖 User-Agent
,那么请注意这个特性。
其他 Head 也会有很大影响(但不会影响前端自己设定的 Head ),但通常对于后台开发者来说并不重要,因此不过多分析。
对 Storage 的影响
Session Storage
不论是从极速模式切换到兼容模式,还是反过来,Session Storage 都不会复制到另一个模式,也就是说两个模式之间不共享 Session Storage 中的数据。
对于360安全浏览器、qq浏览器,极速模式下,切换到兼容模式并再次切换回极速模式后,之前放入 Session Storage 中的对象依然存在,也就是说,切换内核并不会导致这些对象的丢失;而对于搜狗浏览器,并不存在这条特性,也就是说极速模式切换到兼容模式,会丢失之前保存的对象
兼容模式不会保存 Session Storage 中的对象,在切换内核时,之前保存到 Session Storage 中的对象会立刻丢失,再次切换回兼容模式也已经找不到了。
Local Storage
不论是从极速模式切换到兼容模式,还是反过来,Local Storage 都不会复制到另一个模式,也就是说两个模式之间不共享 Local Storage 中的数据。
兼容模式下,不同的浏览器之间会有限程度地共享 Local Storage 中的信息,表现为:在某个浏览器的兼容模式下放入(或修改、删除)的对象,在其他浏览器的兼容模式下(也包括IE浏览器本身),并不会立刻体现出来,但如果你重新打开这些浏览器,就会看到刚才的新增、修改、删除; 例如在360安全浏览器的兼容模式下,往 Local Storage 中新增一个对象,那么你重新打开IE浏览器之后,会发现在 IE 浏览器的 Local Storage 中也存在刚刚新增的对象。
qq浏览器的极速模式下,会往 Local Storage 自动存入三个key:
white
,date
,black
,因此你在存入对象时一定要注意避开这三个key。
建议
- 不要在 Storage 中存放敏感信息和重要信息,仅建议存放一下无关紧要的数据。
- Cookies 机制可以放心使用,不需要担心切换内核造成状态遗失。
- 对于浏览器自身发送的 Head ,如
User-Agent
,在切换内核时会改变,后台开发者不要将此类 Head 作为用户身份的校验依据。例如在 Apereo Cas 4.1.x 系列,后台会将 User-Agent 与登录令牌绑定起来,如果 User-Agent 改变,后台会认为这是一个新用户。
用于测试的demo
用于测试Storage的demo
https://github.com/rocketk/testmultikernel-storage
用于测试Cookies的demo
https://github.com/rocketk/testmultikernel-cookies
双核浏览器切换内核(模式)的行为分析相关推荐
- html内核模式为ie,电脑如何切换浏览器IE内核模式浏览网页
目前很多流行的浏览器都支持双核浏览模式.在国内大多数的网上银行和支付系统只支持IE的Trident内核,所以在访问支付宝或者网上银行的时候,使用Trident内核的"IE兼容模式&quo ...
- 设置双核浏览器的浏览模式meta name=“renderer” content=“webkit|ie-comp|ie-stand”
今天上知乎看到有人在上邀请我回答这样一个问题:如果访问的页面中有 CSS3 代码,双核浏览器会自动切换到 Webkit 内核吗?http://www.zhihu.com/question/200946 ...
- 用Meta标签代码让360双核浏览器默认极速模式
这篇文章主要介绍了用Meta标签代码让360双核浏览器默认极速模式打开网站不是兼容模式,需要的朋友可以参考下 一个网站,大量采用了html5和css3,希望用户都以webkit内核打开页面,但是测试却 ...
- 设置双核浏览器的浏览模式 meta name renderer content webkit|ie-comp|ie
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 今天上知 ...
- 设置双核浏览器的浏览模式
首先给大家分享一个巨牛巨牛的人工智能教程,是我无意中发现的.教程不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵段子,像看小说一样,哈哈-我正在学习中,觉得太牛了,所以分享给大家!点这里可以跳转 ...
- 设置双核浏览器的浏览模式 meta name renderer content webkit|ie comp|ie
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 今天上知 ...
- 360浏览器切换内核数据丢失
360浏览器切换内核数据丢失 场景: 360浏览器兼容模式与极速模式切换时 localStorage数据丢失 切换内核相当于切换浏览器,localStorage数据会被清除 sessionStorag ...
- linux浏览器切换内核,电脑切换浏览器内核模式浏览网页的详细方法
众所周知,目前很多流行的浏览器都支持双核浏览模式.在国内大多数的网上银行和支付系统只支持IE的Trident内核,所以在访问支付宝或者网上银行的时候,使用Trident内核的"IE兼容模式& ...
- 用Meta标签代码让360双核浏览器默认极速模式打开网站不是兼容模式
我开发了一个网站,大量采用了html5和css3,希望用户都以webkit内核打开页面,但是测试却发现360的以ie内核打开为推荐模式,不知原因为何.其实360给网站开发者设计了一种选择的方法,只要加 ...
- 用Meta标签代码让360双核浏览器默认极速模式不是兼容模式
一个网站,大量采用了html5和css3,希望用户都以webkit内核打开页面,但是测试却发现360的以ie内核打开为推荐模式,不知原因为何.其实360给网站开发者设计了一种选择的方法,只要加入一段M ...
最新文章
- 学python好不好-学历低可以学python吗?好不好就业?
- linux特殊权限位之setuid、setgid和sticky
- qt中使用QCompleter实现查找功能
- C#网络编程(基本概念和操作) - Part.1[转自JimmyZhang博客]
- 【报告分享】2020-2021跨境出口电商增长白皮书.pdf(附下载链接)
- ShadowMap Sample
- 与计算机相关活动主题,计算机文化节活动策划书
- macos复制粘贴快捷键 快速_mac复制粘贴快捷键
- 异数OS 开放式闭源继承人协议
- Word插入脚注只占左下角一栏的方法
- 解决steamcommunity报错443/80端口被占用
- 如何设计qPCR引物序列
- abb机器人常见维故障现象
- 网络安全攻防之IPC$攻击
- 高级转录组调控分析和R语言数据可视化第十三期 (线上线下开课)
- 逻辑推理题:海盗分金币
- 腾讯云安装配置数据库MySQL并且使用SQLyog连接
- Java面试错题集1
- LambdaMart一些浅薄理解
- O(n*logn)排序算法的总结