【问题标题】:Chrome extension chrome.webRequest API - Some http request headers not coming in request headersChrome 扩展 chrome.webRequest API - 一些 http 请求标头没有出现在请求标头中
【发布时间】:2016-05-23 04:37:49
【问题描述】:

我正在开发 chrome 扩展,目的是拦截所有 HTTP(S) 请求/响应并将所有标头记录到持久文件中(在磁盘上)。我几乎接近我的目标。但是当我仔细查看一些请求时,我发现在许多请求中,requestHeaders 中缺少“If-None-Match”和“If-Modified-Since”。不过,我可以在开发者工具显示的网络面板中看到它们。

我努力找出导致这种行为的任何模式。但是,不幸的是没有这样的模式。

请大家帮忙。

【问题讨论】:

    标签: google-chrome google-chrome-extension google-chrome-devtools google-chrome-app


    【解决方案1】:

    使用来自chrome.webRequest APIonBeforeSendHeaders 事件需要接收requestHeader 列表。

    onBeforeSendHeaders 的描述中是mentioned 一些标头不可用于读取/处理:

    • 授权
    • 缓存控制
    • 连接
    • 内容长度
    • 主机
    • If-Modified-Since
    • 如果没有匹配
    • If 范围
    • 部分数据
    • 编译指示
    • 代理授权
    • 代理连接
    • 传输编码

    恐怕您将无法读取或修改这些标头,因为这是 API 强制限制。

    【讨论】:

    • 由于您在回答中提到的限制,对于onBeforeSendHeaders 事件,我使用了onSendHeaders 事件,并且在许多请求中我得到If-Modified-SinceIf-None-Match 标头,但不是在所有请求中
    • 问题是在 onSendHeaders 上你只能阅读这些,不能修改。但是你只需要记录它们,它就可以工作。
    • 是的,我不想修改。我只想(持久地)记录每个请求,以便对日志执行模拟。
    • @SalmanPatel onSendHeaders 是访问这些标头的唯一方法。
    • 我已经尝试过了,正如我之前所说,它会产生问题
    猜你喜欢
    • 2017-10-07
    • 2015-07-13
    • 1970-01-01
    • 2019-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-06
    相关资源
    最近更新 更多