当浏览器第一次向服务器发送请求时,它如何决定应该应用哪个版本的 HTTP?HTTP RFC 规范说:
HTTP 客户端应该发送等于客户端至少有条件兼容的最高版本的请求版本
但根据我在 Chrome 检查器中的实验,Chrome 在向某些网站发送请求时使用 HTTP 2,但在其他情况下也使用 HTTP 1.1。
我想知道 Chrome 如何知道它应该使用哪个版本的 HTTP 请求?我知道服务器应该使用它支持的最高版本的 HTTP 进行响应,那么 Chrome 是否会默认使用 http2 向每个网站发送第一个请求,然后保存网站支持的 HTTP 版本并从此使用该版本?
任何解释将不胜感激。
| 地点 | 报告的UA |
|---|---|
| https://duckduckgo.com/?q=what+is+my+user+agent&ia=answer | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.81 Safari/537.36 Vivaldi/5.2.2623.26 |
| https://www.whatismybrowser.com/detect/what-is-my-user-agent/ | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.81 Safari/537.36 |
| https://httpbin.org/get | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.81 Safari/537.36 |
只有 DuckDuckGo 自己的机制检测到我实际上正在运行 Vivaldi,因为它具有 Vivaldi/5.2.2623.26其他两个所缺少的部分。
怎么会这样?这确实令我困惑。
好的,我已经完成了悬停广告。我已经完成了,我开始避免使用实现它们的网站,即使我(曾经)喜欢这些网站。
显然,阻止悬停广告比阻止弹出式广告或背后弹出式广告要困难得多。据我所知,AdBlock 并没有阻止他们,那又怎样?
我的问题是:如何避免或阻止悬停广告?你知道有什么技巧可以做到这一点吗?
在 Chrome 的浏览器设置页面中取消选中启用网络钓鱼和恶意软件保护不会阻止 Chrome 与safebrowsing.clients.google.com和safebrowsing-cache.google.com通信(根据使用 Wireshark 捕获的数据包)。
如何禁用此功能?
我对属于不同域的 URI 进行 AJAX 调用。通常在 IE 中,我可以通过 jQuery 的 CORS 支持来做到这一点。但是,无论是否设置了 CORS 支持,这在 Google Chrome 中都会失败。
现在我收到一条错误消息,内容如下:
XMLHttpRequest 无法加载。原产地
http://localhost:8000不被访问控制允许来源允许的。
Google Chrome 中是否有禁用Access-Control-Allow-Origin限制的设置?
我的默认网络浏览器是 Opera。这是一般浏览所需的行为。
但是,我更希望域中的 URL 在 Internet Explorer 中打开,其中该域的内容与 Internet Explorer 的兼容性比与 Opera 的兼容性更高。
例如,这个链接:
http://ssrs/Reports
Run Code Online (Sandbox Code Playgroud)
应该在 Internet Explorer 中打开,因为该位置在ssrs域中。在我的组织中,此域中的内容由 SQL Server Reporting Services 提供服务,该服务仅适用于 Internet Explorer。
这个链接:
http://fogbugz/default.asp
Run Code Online (Sandbox Code Playgroud)
应该在 Internet Explorer 中打开,因为该位置在fogbugz域中。在我的组织中,此域中的内容由 FogBugz 提供服务。FogBugz 的几个功能在 Opera 中已损坏或有问题。
任何其他域都应该在 Opera 中打开。
如何使用这些规则配置 Windows 7?
我从 MSDN 安装了 Windows 8 Pro 的新副本。我安装了谷歌浏览器(稳定频道),它被设置为我的默认浏览器。我什至进入“控制面板”>“默认程序”以确保 Chrome 具有所有默认设置。
当其他桌面应用程序尝试启动我的浏览器时,它们总是失败。例如,在尝试为 Windows 安装 Android SDK 时,安装程序准确地检测到我没有安装 JDK。它提供了一个友好的按钮来访问 java.oracle.com。当按下这个按钮时,什么也没有发生。
你可以在这里看到:http: //youtu.be/XXL8GhuWWg0
如果只是那个应用程序出现问题,我不会考虑任何问题,但我到处都遇到了类似的问题。最令人恼火的可能是visual studio有更新;单击更新按钮什么也不做。
http://www.youtube.com/watch?v=zwd1mn3TId0
您可以在该截屏视频中看到,无论我单击什么,Visual Studio 都无法启动浏览器。更新按钮不执行任何操作,更新描述中的两个链接也不执行任何操作。
有什么建议?我假设这是一个 Windows 问题,因为它发生在多个应用程序中。
更新:将 IE 设置为默认浏览器可解决此问题。所以这与它无法以编程方式启动 Chrome 有关系。是否有可能解决这个错误,或者我现在必须忍受 IE 作为默认设置?
由于 Google 在版本 33 中分发了 Chrome,因此无法再使用该custom.css文件来设置已访问链接的颜色。Chrome 33 还有另一种可能性吗?
Microsoft的Edge 网络浏览器是否可以在多个平台(即 Linux、Mac、Windows)上运行?Edge 是跨平台的吗?
有没有办法根据访问的站点更改浏览器(Firefox 和/或 Chrome)中的首选语言?
大多数时候我希望网站以英文显示,但是当我访问一个有英文版本的法语网站时,它会显示英文版本,即使我更喜欢用法语看到它(因为我是法国人) .
是否有扩展可以让我在每个站点的基础上控制该设置?