抓包工具Charles修改请求Header,浏览器控制台显示仍旧未修改,但Charles显示修改过

我用Charles修改请求头的Origin,结果发现浏览器这边总是显示没有修改成功。但我用Charles看请求详情,看到已经修改。看截图。
左边是Charles,右边Chrome控制台。

image.png

实际上后端读取的是修改后的Origin(修改前接口没数据,修改后有数据。),说明问题出在浏览器控制台。
但为什么浏览器不展示修改过的请求头呢?

自己考虑了一下,一个可能的解释是:请求(只有请求头相关数据)先经过浏览器,再经过Charles,再到后端,然后后端传(只有响应头相关数据和body数据)给Charles,再传给浏览器。

有没有HTTP比较熟悉的朋友出来解释下?

阅读 889
评论
    1 个回答
    • 1.5k

    你的想法是正确的。这个跟熟悉不熟悉HTTP关系不大。

    请求是浏览器发出的,然后经过代理(Charles),然后到服务器,然后再经过代理(Charles),然后到浏览器。

    所以浏览器发出的原始数据,被代理拦截,并修改。浏览器肯定不会知道这事。

    你可以尝试下修改响应头,或响应体。浏览器肯定会展示被篡改的数据。

      撰写回答

      登录后参与交流、获取后续更新提醒

      相似问题
      推荐文章