一、场景
使用 Fiddler进行监听时,想要获取的请求没有返回想要的数据,状态为304
二、问题描述
304状态码分析:
为了验证部分场景,需要对接口返回的数据进行修改来验证前端代码逻辑处理,发现同一域名下其他接口都正常返回,但是某个端口返回304状态码。
操作步骤:页面打开后接口已经请求了,这时候才打开Fiddler抓取请求拦截响应,刷新浏览器页面Fiddler抓取到的接口返回就是304
原因:是因为此接口默认使用本地缓存数据,所以再次刷新浏览器请求的时候会带上本地已有缓存的请求头信息,服务端接受到请求后发现客户端有缓存,那就不需要返回全部数据只给了一个304
三、解决方案
1、浏览器清除缓存
方式一:Ctrl+F5去缓存刷新(强制刷新)
这个操作会强制浏览器放弃自身的缓存,重新从服务器下载资源。(而Ctrl+Shift+Delete清除的是浏览器的历史记录、Cookies、缓存和其他网站数据。主要用于清除所有记录或删除浏览器的历史记录,而不是直接影响缓存的清除)
方式二:F12 > Network > 勾选Disable cache(临时设置)
开发者工具F12设置禁用缓存,禁用页面缓存确保每次加载的都是最新的资源,适合开发调试。该设置随浏览器关闭即失效。
2、Fiddler清除缓存
方式一:Shift+F5去缓存刷新(强制刷新)
主要是用于重新发送请求 ,当你对某个请求进行了修改或想要再次发送该请求以查看不同的结果时,在修改数据之前按下Shift+F5来刷新页面,然后进行修改和发送请求,从而查看修改后的响应结果是否按预期工作。
方式二:Rules > Performance > 勾选Disable Caching(临时设置)
Fiddler设置全局禁用缓存,避免从本地缓存中读取数据。Fiddler被关闭或重新启动,这个设置就会失效。
对比分析:Shift+F5更侧重于实时获取服务器上的最新数据,而Disable Caching则侧重于在抓包过程中完全避免使用缓存数据,以确保分析的准确性。两者在不同的场景下各有用途,可以根据具体的需求选择使用。
测试时也可以清空监控面板:工具栏上的 “X” 按钮 或者快捷键(Ctrl + X),这是为了方便查看最新请求,而不是清除缓存,是一种偏好和操作习惯。
总结:
使用Fiddler进行抓包时,为了避免请求的数据加载本地缓存资源,返回HTTP 304状态码。测试前不仅需要在Fiddler界面进行去缓存刷新,同时也需要在浏览器中进行相应的操作(去缓存刷新),确保抓取的数据都是从服务器加载最新的资源,不受缓存影响,从而获得准确的测试结果。
注意事项:Fiddler安装和使用的时候需要关闭杀毒软件!
如果觉得不错,请点赞。谢谢~.~