Fiddler抓包返回HTTP状态码304

一、场景

使用 Fiddler进行监听时,想要获取的请求没有返回想要的数据,实际返回的http状态码为304

06827b450a35444d85fa3a10fe6c5202.png

二、问题描述

304状态码分析:

为了验证部分场景,需要对接口返回的数据进行修改来验证前端代码逻辑处理,发现同一域名下其他接口都正常返回,但是某个端口返回304状态码。

操作步骤:页面打开后接口已经请求了,这时候才打开Fiddler抓取请求拦截响应,刷新浏览器页面Fiddler抓取到的接口返回就是304

原因:是因为此接口默认使用本地缓存数据,所以再次刷新浏览器请求的时候会带上本地已有缓存的请求头信息,服务端接受到请求后发现客户端有缓存,那就不需要返回全部数据只给了一个304

三、解决方案

1、浏览器清除缓存

测试前可以清除浏览数据(快捷键Ctrl+Shift+Delete):清除的是浏览器的历史记录、Cookies、缓存和其他网站数据。主要用于清除所有记录或删除浏览器的历史记录,而不是直接影响缓存的清除,是一种偏好和操作习惯。

方式一:Ctrl+F5或Shift+F5去缓存刷新(强制刷新)

Ctrl+F5:强制刷新页面,忽略缓存内容。这个操作会强制浏览器放弃自身的缓存,重新从服务器下载资源。

Shift+F5:清空缓存并硬性重新加载。在刷新页面之前,浏览器会先删除所有的缓存数据,然后再强制重新加载页面和所有资源

方式二:F12 > Network > 勾选Disable cache禁用缓存(临时设置)

开发者工具F12设置禁用缓存,禁用页面缓存确保每次加载的都是最新的资源,适合开发调试。该设置随浏览器关闭即失效。

a7630765c5a748c1b88da082017b8a9f.png

对比分析:Shift+F5‌更侧重于实时获取服务器上的最新数据(就是麻烦一点,在每次发送请求前都要按下这俩键),而‌Disable Cache则侧重于在抓包过程中完全避免使用缓存数据,以确保分析的准确性(只要通过简单设置一下就可以一劳永逸)。两者在不同的场景下各有用途,可以根据具体的需求选择使用。

2、Fiddler清除缓存

测试前可以清空监控面板:工具栏上的 “X” 按钮 (快捷键Ctrl+X),这是为了方便查看最新请求,而不是清除缓存,是一种偏好和操作习惯。

方式一:Shift+F5去缓存刷新(强制刷新)

主要是用于重新发送请求 ,当你对某个请求进行了修改或想要再次发送该请求以查看不同的结果时,在修改数据之前按下Shift+F5来刷新页面(按下这2键Fiddler没啥反应,目前是这样的,只要按了就行,系统能识别到的),然后进行修改和发送请求,从而查看修改后的响应结果是否按预期工作。

方式二:Rules > Performance > 勾选Disable Caching禁用缓存(临时设置)

Fiddler设置全局禁用缓存,避免从本地缓存中读取数据。Fiddler被关闭或重新启动,这个设置就会失效。

4f4e4a4f940d49cb8947ed2156605964.png

总结:

使用Fiddler进行抓包时,为了避免请求的数据加载本地缓存资源,返回HTTP状态码304?

测试前不仅需要在浏览器页面进行去缓存刷新,必要时(比如Fiddler界面重新发送请求或者修改数据后发送请求)也需要在Fiddler界面进行相应的去缓存刷新操作。确保抓取的数据都是从服务器加载最新的资源,不受缓存影响,从而获得准确的测试结果。

注意事项:Fiddler安装和使用的时候需要关闭杀毒软件!

如果觉得不错,请点赞。谢谢~.~

猜你喜欢

转载自blog.csdn.net/Jackfruit_/article/details/141901262