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