gpt4 book ai didi

javascript - 在 Chrome 扩展中使用 AJAX 请求检测 URL 是否支持 HTTP2?

转载 作者:可可西里 更新时间:2023-11-01 01:26:17 26 4
gpt4 key购买 nike

我希望用户能够将他们的网站 URL 输入到作为 Chrome 扩展的一部分的输入框中,并且 Chrome 扩展将使用 AJAX 请求或类似的东西来检测并告诉用户 URL 后面的服务器是否支持通过 HTTP2 发送响应。这可能吗?

也许 WebRequest 有办法获取这些信息?还是新的 Fetch API?您的请求能否以某种方式告诉服务器只理解 HTTP2 回复?我看不到明显的方法。

我知道您可以使用 window.chrome.loadTimes().connectionInfo 获取当前页面的协议(protocol),但这需要加载整个页面,我不想这样做。

示例网址:

通过 HTTP2 传送:https://cdn.sstatic.net/

通过 HTTP 1.1 交付:https://stackoverflow.com/

最佳答案

HTTP/2 响应需要“状态”响应 header - https://http2.github.io/http2-spec/#HttpResponse ,因此要检查响应是否使用 HTTP/2,您可以使用 chrome.webRequest.onHeadersReceived extraInfoSpec 中带有 "responseHeaders" 的事件。例如,对于您的测试用例:

chrome.webRequest.onHeadersReceived.addListener(function(details) {
var isHttp2 = details.responseHeaders.some(function(header) {
return header.name === 'status';
});
console.log('Request to ' + details.url + ', http2 = ' + isHttp2);
}, {
urls: ['https://cdn.sstatic.net/*', 'http://stackoverflow.com/*'],
types: ['xmlhttprequest']
}, ['responseHeaders']);

// Tests:
fetch('http://stackoverflow.com');
fetch('https://cdn.sstatic.net');

关于javascript - 在 Chrome 扩展中使用 AJAX 请求检测 URL 是否支持 HTTP2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41251286/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com