REST API 响应主体相同但响应大小不同
Posted
技术标签:
【中文标题】REST API 响应主体相同但响应大小不同【英文标题】:REST API Response body same but response size different 【发布时间】:2019-12-31 05:38:44 【问题描述】:我们有一个使用 ASP.NET Web API 构建的 RESTful API,它作为 Azure 云服务托管。 最近我们不得不修复端点的性能(响应时间),因此我们做了一些更改。 API 请求-响应需要保持不变。 因此,为了测试我们所做的更改不会改变响应,我们通过为不同用户捕获响应来对响应进行基准测试。我们捕获了以下内容 -
-
响应时间(邮递员显示)
响应大小(邮递员显示)
响应正文
现在我们正在测试,奇怪的是,我们看到虽然响应正文是完全匹配的(使用文件比较完成),但响应大小有数量级的不同。例如,之前的 562.37KB 现在是 52.33KB。事实上,我们已经对 30 个用户进行了基准测试,并且所有响应大小都减少了一个订单。但是对于所有的响应体都是完全一样的。
可能的原因是什么?我们有什么遗漏吗?
【问题讨论】:
启用压缩?查看标题,例如对于 gzip 我不认为我们刚刚启用了压缩,因为之前和之后都是上周和现在的问题。不过,我仍会与 devops 团队核实。感谢您的提示! 我的意思是压缩在那里。响应标头确实包含内容编码 (gzip),但我会检查它是否刚刚启用。这将是非常令人惊讶的。再次感谢您! Postman 将响应存储到缓存中,为了每次从服务器获取最新的响应,请在设置中启用Send no-cache header
:i.stack.imgur.com/SczTp.png
【参考方案1】:
Size 只是将保存在内存中时的响应大小。此响应大小是完整响应、标头和 cookie 以及随响应一起发送的所有内容的大小。
注意:Postman 中显示的响应大小是近似响应大小,而不是确切大小。
详情可以参考
https://www.toolsqa.com/postman/response-in-postman/
https://github.com/postmanlabs/postman-app-support/issues/156
其次,了解链接大小和内容中详细说明的差异很重要: Chrome Dev Tools - "Size" vs "Content"
为方便查阅,答案截图如下:
“Size”是线路上的字节数,“content”是资源的实际大小。许多事情可以使它们与众不同,包括:
-
从缓存提供服务(小或 0“大小”)
响应标头,包括 cookie(“大小”大于“内容”)
重定向或身份验证请求
gzip 压缩(通常“大小”小于“内容”)
【讨论】:
以上是关于REST API 响应主体相同但响应大小不同的主要内容,如果未能解决你的问题,请参考以下文章