【问题标题】:REST API Response body same but response size differentREST API 响应主体相同但响应大小不同
【发布时间】:2019-12-31 05:38:44
【问题描述】:

我们有一个使用 ASP.NET Web API 构建的 RESTful API,它作为 Azure 云服务托管。 最近我们不得不修复端点的性能(响应时间),因此我们做了一些更改。 API 请求-响应需要保持不变。 因此,为了测试我们所做的更改不会改变响应,我们通过为不同用户捕获响应来对响应进行基准测试。我们捕获了以下内容 -

  1. 响应时间(邮递员显示)
  2. 响应大小(邮递员显示)
  3. 响应正文

现在我们正在测试,奇怪的是,我们看到虽然响应正文是完全匹配的(使用文件比较完成),但响应大小有数量级的不同。例如,之前的 562.37KB 现在是 52.33KB。事实上,我们已经对 30 个用户进行了基准测试,并且所有响应大小都减少了一个订单。但是对于所有的响应体都是完全一样的。

可能的原因是什么?我们有什么遗漏吗?

【问题讨论】:

  • 启用压缩?查看标题,例如对于 gzip
  • 我不认为我们刚刚启用了压缩,因为之前和之后都是上周和现在的问题。不过,我仍会与 devops 团队核实。感谢您的提示!
  • 我的意思是压缩在那里。响应标头确实包含内容编码 (gzip),但我会检查它是否刚刚启用。这将是非常令人惊讶的。再次感谢您!
  • Postman 将响应存储到缓存中,为了每次从服务器获取最新的响应,请在设置中启用Send no-cache headeri.stack.imgur.com/SczTp.png

标签: asp.net-web-api2 postman azure-cloud-services webapi


【解决方案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”是资源的实际大小。许多事情可以使它们与众不同,包括:

  1. 从缓存提供服务(小或 0“大小”)
  2. 响应标头,包括 cookie(“大小”大于“内容”)
  3. 重定向或身份验证请求
  4. gzip 压缩(通常“大小”小于“内容”)

【讨论】:

    猜你喜欢
    • 2023-01-09
    • 2020-06-11
    • 1970-01-01
    • 1970-01-01
    • 2019-02-04
    • 1970-01-01
    • 1970-01-01
    • 2022-12-20
    • 2017-11-24
    相关资源
    最近更新 更多