ob_starthttps和http的区别?
ob_start difference between https and http?
与 http 相比,https 中的 ob_start、ob_end_flush、ob_end 和 ob_flush 是否有不同的行为?
我已经阅读了有关 http 和 https 之间区别的帖子:
因为我读过这篇关于 ob_start 和 headers 的文章:
Showing error pages when sending header with header() function
但我没有找到我需要的答案。
我的案例:
我正在两个网站上使用 ob_start 刷新加载图像。
他们使用完全相同的代码。
唯一的区别是协议 - 一种是 http 一种是 https。
http 的表现很好
使用 http 的站点输出图像,然后将继续使用脚本。
https 的行为不同
使用 https 的站点总是在脚本完全处理后输出图像。
谢谢。我很高兴得到任何提示。
我看到两种可能性:
HTTPS以块(记录)的形式发送数据,可能是16KB large。如果您的图像小于该尺寸,服务器可能会在发送完整块之前等待更多数据。
您的 HTTPS 由反向代理实现,代理在转发任何内容之前等待发送整个响应。
如果您使用的是 php-fpm,请尝试 http://php.net/manual/en/function.fastcgi-finish-request.php
如果您使用的是 nginx,请尝试 http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffering
与 http 相比,https 中的 ob_start、ob_end_flush、ob_end 和 ob_flush 是否有不同的行为?
我已经阅读了有关 http 和 https 之间区别的帖子:
因为我读过这篇关于 ob_start 和 headers 的文章:
Showing error pages when sending header with header() function
但我没有找到我需要的答案。
我的案例:
我正在两个网站上使用 ob_start 刷新加载图像。 他们使用完全相同的代码。 唯一的区别是协议 - 一种是 http 一种是 https。
http 的表现很好
使用 http 的站点输出图像,然后将继续使用脚本。
https 的行为不同
使用 https 的站点总是在脚本完全处理后输出图像。
谢谢。我很高兴得到任何提示。
我看到两种可能性:
HTTPS以块(记录)的形式发送数据,可能是16KB large。如果您的图像小于该尺寸,服务器可能会在发送完整块之前等待更多数据。
您的 HTTPS 由反向代理实现,代理在转发任何内容之前等待发送整个响应。
如果您使用的是 php-fpm,请尝试 http://php.net/manual/en/function.fastcgi-finish-request.php
如果您使用的是 nginx,请尝试 http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffering