双核浏览器切换内核(模式)的行为分析

测试的浏览器

360安全浏览器、qq浏览器、搜狗浏览器

约定

  1. 在没有特别指出某条性质属于具体哪一个浏览器时,表示对于所有测试的浏览器均适用。
  2. 极速模式指以Webkit为内核的模式,兼容模式指以IE为内核的模式。

结论

对 Cookie 的影响

切换内核时浏览器会自动复制所有的cookie,并且不受secure, httpOnly, path等属性影响,也就是说上述三个属性不论取何值,都会在两种模式(两种内核)中复制。

关于360安全浏览器中的__guidmonitor_count

在使用360安全浏览器时,不论是在兼容模式还是极速模式,浏览器会自动为你访问的每一个网站增加两个cookie: __guidmonitor_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

  1. 不论是从极速模式切换到兼容模式,还是反过来,Session Storage 都不会复制到另一个模式,也就是说两个模式之间不共享 Session Storage 中的数据。

  2. 对于360安全浏览器、qq浏览器,极速模式下,切换到兼容模式并再次切换回极速模式后,之前放入 Session Storage 中的对象依然存在,也就是说,切换内核并不会导致这些对象的丢失;而对于搜狗浏览器,并不存在这条特性,也就是说极速模式切换到兼容模式,会丢失之前保存的对象

  3. 兼容模式不会保存 Session Storage 中的对象,在切换内核时,之前保存到 Session Storage 中的对象会立刻丢失,再次切换回兼容模式也已经找不到了。

Local Storage

  1. 不论是从极速模式切换到兼容模式,还是反过来,Local Storage 都不会复制到另一个模式,也就是说两个模式之间不共享 Local Storage 中的数据。

  2. 兼容模式下,不同的浏览器之间会有限程度地共享 Local Storage 中的信息,表现为:在某个浏览器的兼容模式下放入(或修改、删除)的对象,在其他浏览器的兼容模式下(也包括IE浏览器本身),并不会立刻体现出来,但如果你重新打开这些浏览器,就会看到刚才的新增、修改、删除; 例如在360安全浏览器的兼容模式下,往 Local Storage 中新增一个对象,那么你重新打开IE浏览器之后,会发现在 IE 浏览器的 Local Storage 中也存在刚刚新增的对象。

  3. qq浏览器的极速模式下,会往 Local Storage 自动存入三个key:white, date, black,因此你在存入对象时一定要注意避开这三个key。

建议

  1. 不要在 Storage 中存放敏感信息和重要信息,仅建议存放一下无关紧要的数据。
  2. Cookies 机制可以放心使用,不需要担心切换内核造成状态遗失。
  3. 对于浏览器自身发送的 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

双核浏览器切换内核(模式)的行为分析相关推荐

  1. html内核模式为ie,电脑如何切换浏览器IE内核模式浏览网页

    ‍ 目前很多流行的浏览器都支持双核浏览模式.在国内大多数的网上银行和支付系统只支持IE的Trident内核,所以在访问支付宝或者网上银行的时候,使用Trident内核的"IE兼容模式&quo ...

  2. 设置双核浏览器的浏览模式meta name=“renderer” content=“webkit|ie-comp|ie-stand”

    今天上知乎看到有人在上邀请我回答这样一个问题:如果访问的页面中有 CSS3 代码,双核浏览器会自动切换到 Webkit 内核吗?http://www.zhihu.com/question/200946 ...

  3. 用Meta标签代码让360双核浏览器默认极速模式

    这篇文章主要介绍了用Meta标签代码让360双核浏览器默认极速模式打开网站不是兼容模式,需要的朋友可以参考下 一个网站,大量采用了html5和css3,希望用户都以webkit内核打开页面,但是测试却 ...

  4. 设置双核浏览器的浏览模式 meta name renderer content webkit|ie-comp|ie

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 今天上知 ...

  5. 设置双核浏览器的浏览模式

    首先给大家分享一个巨牛巨牛的人工智能教程,是我无意中发现的.教程不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵段子,像看小说一样,哈哈-我正在学习中,觉得太牛了,所以分享给大家!点这里可以跳转 ...

  6. 设置双核浏览器的浏览模式 meta name renderer content webkit|ie comp|ie

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 今天上知 ...

  7. 360浏览器切换内核数据丢失

    360浏览器切换内核数据丢失 场景: 360浏览器兼容模式与极速模式切换时 localStorage数据丢失 切换内核相当于切换浏览器,localStorage数据会被清除 sessionStorag ...

  8. linux浏览器切换内核,电脑切换浏览器内核模式浏览网页的详细方法

    众所周知,目前很多流行的浏览器都支持双核浏览模式.在国内大多数的网上银行和支付系统只支持IE的Trident内核,所以在访问支付宝或者网上银行的时候,使用Trident内核的"IE兼容模式& ...

  9. 用Meta标签代码让360双核浏览器默认极速模式打开网站不是兼容模式

    我开发了一个网站,大量采用了html5和css3,希望用户都以webkit内核打开页面,但是测试却发现360的以ie内核打开为推荐模式,不知原因为何.其实360给网站开发者设计了一种选择的方法,只要加 ...

  10. 用Meta标签代码让360双核浏览器默认极速模式不是兼容模式

    一个网站,大量采用了html5和css3,希望用户都以webkit内核打开页面,但是测试却发现360的以ie内核打开为推荐模式,不知原因为何.其实360给网站开发者设计了一种选择的方法,只要加入一段M ...

最新文章

  1. 学python好不好-学历低可以学python吗?好不好就业?
  2. linux特殊权限位之setuid、setgid和sticky
  3. qt中使用QCompleter实现查找功能
  4. C#网络编程(基本概念和操作) - Part.1[转自JimmyZhang博客]
  5. 【报告分享】2020-2021跨境出口电商增长白皮书.pdf(附下载链接)
  6. ShadowMap Sample
  7. 与计算机相关活动主题,计算机文化节活动策划书
  8. macos复制粘贴快捷键 快速_mac复制粘贴快捷键
  9. 异数OS 开放式闭源继承人协议
  10. Word插入脚注只占左下角一栏的方法
  11. 解决steamcommunity报错443/80端口被占用
  12. 如何设计qPCR引物序列
  13. abb机器人常见维故障现象
  14. 网络安全攻防之IPC$攻击
  15. 高级转录组调控分析和R语言数据可视化第十三期 (线上线下开课)
  16. 逻辑推理题:海盗分金币
  17. 腾讯云安装配置数据库MySQL并且使用SQLyog连接
  18. Java面试错题集1
  19. LambdaMart一些浅薄理解
  20. O(n*logn)排序算法的总结

热门文章

  1. 计算机应用于针灸,中医针灸临床治疗专家系统的研究与实现
  2. uniapp windows 真机调试 ios iphone 踩坑指南 itunes 64位历史版本
  3. plc编程语言是c语言吗,PLC各种编程语言特点你了解多少?
  4. PivotGridControl与ChartControl控件结合使用(一)
  5. 暴力破解之NTscan
  6. KISS保持简单:纪念丹尼斯·里奇
  7. STM32基础教程(CubeMX)—— LCD显示
  8. winpe安装Windows 10系统时efi part有红叉怎么办。
  9. 网络安全学习笔记-入侵检测系统IDS
  10. MobaXterm快捷输入