与http相比,https中的ob_start,ob_end_flush,ob_end和ob_flush是否有不同的行为?
我已阅读有关http和https:
之间差异的帖子Difference between http and https
Difference between HTTPS and SSL
因为我读过这篇关于ob_start&标题:
Showing error pages when sending header with header() function
但我找不到我需要的答案。
我的案例:
我正在两个网站上用ob_start刷新加载图像。 他们使用完全相同的代码。 唯一的区别是协议 - 一个是http,一个是https。
http one行为正常
使用 http 的网站输出图片,然后继续使用该脚本。
https one的行为不同
使用 https 的网站会在完全处理完脚本后输出图像。
感谢。我很高兴任何提示。
答案 0 :(得分:1)
我看到两种可能性:
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