如果我在生成普通HTML页面时设置此标题,它是否会给我带来任何好处?
我看到那里的一些框架会设置这个头属性,我想知道为什么......(和其他标题一样Content-Type: text/html)
浏览器是否加载网站更快或更顺畅?
ps:他们这样做:
ob_start();
... stuff here...
$content = ob_get_contents();
$length = strlen($content);
header('Content-Length: '.$length);
echo $content;
Run Code Online (Sandbox Code Playgroud)
Ney*_*sor 17
我认为只有因为HTTP规范才能在每种情况下都这样做.
应用程序应该使用此字段来指示消息正文的传输长度,除非4.4节中的规则禁止这样做.
你也可以看看关于Deaomon问题的Pauls答案.
我想这也会回答你的问题.
如果您希望有人下载带有另一个标题的文件,您也应该使用Content-Length:例如
<?php
$file = "original.pdf"
$size = filesize($file);
header('Content-type: application/pdf');
header("Content-length: $size");
header('Content-Disposition: attachment; filename="downloaded.pdf"');
readfile($file);
?>
Run Code Online (Sandbox Code Playgroud)
web*_*ave 11
如果我在生成普通的html页面时设置此标题,它会给我带来什么好处吗?
浏览器是否加载网站更快或更顺畅?
对于动态生成的页面,通常不会. Content-Length让客户端知道文件有多大.但是,如果Content-Length未指定,则传输将以块的形式发送(带有表示文件末尾的特殊块).前一种方法可以导致更快的传输,因为消除了分裂成块的开销.但是,这通常最好保留给静态文件,因为缓冲整个内容以确定长度所需的资源可能超过设置所获得的任何优势Content-Length.