我们有一个 API 调用,其中在请求中发送了大量数据(平均 16 MB)。请求数据每次都不一样,所以缓存现在很好。由于我们接收数据的客户可能使用其他技术,例如 PHP,因此这些技术的默认大小是不同的。
由于数据大小超过了默认数量(PHP 8MB),我们正在考虑尽可能使用压缩。
这可以做到吗?
从最初的研究(可能不正确)开始,压缩被用于 IIS 使用缓存的网站内容,所以不确定我们的问题是否可以使用压缩来解决。
我们有一个 API 调用,其中在请求中发送了大量数据(平均 16 MB)。请求数据每次都不一样,所以缓存现在很好。由于我们接收数据的客户可能使用其他技术,例如 PHP,因此这些技术的默认大小是不同的。
由于数据大小超过了默认数量(PHP 8MB),我们正在考虑尽可能使用压缩。
这可以做到吗?
从最初的研究(可能不正确)开始,压缩被用于 IIS 使用缓存的网站内容,所以不确定我们的问题是否可以使用压缩来解决。
您可以使用动态内容压缩。
压缩与 IIS 上的缓存无关。
虽然这会减小大小,但取决于您的数据(可能是图像或视频),它可能不会将其压缩到 8MB 以下。您应该考虑允许您的客户以块的形式请求数据。
您的 php 客户端可以使用支持块编码(如guzzle)的客户端接收此数据
请求和响应的实体主体本质上是 Guzzle 中的 PHP 流。请求的主体可以是字符串或 PHP 流,它们使用其工厂方法转换为 Guzzle\Http\EntityBody 对象。使用字符串时,实体主体存储在临时 PHP 流中。使用临时 PHP 流有助于保护您的应用程序在发送或接收消息中的大型实体主体时不会耗尽内存
默认为 4MB,增加:
<configuration>
<system.web>
<httpRuntime maxRequestLength="1048576" />
</system.web>
</configuration>
<!--IIS 7-->
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="1048576" />
</requestFiltering>
</security>
</system.webServer>