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

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

image.png

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

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

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

阅读 8.2k
1 个回答

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

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

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏