使用 PHP 和 Apache 处理 gzip 有什么区别?



如何在两者中处理压缩?这是谁的责任?使用apache或php压缩文件,哪一个更好
PHP压缩代码:

ob_start("ob_gzhandler");

或者apache:

AddOutputFilterByType DEFLATE text/html text/plain text/xml 

请求首先到达apache然后到达PHP是对的吗?若答案是肯定的,那个么我们能推断出我们应该使用apache吗?

好吧,这是我所知道的,以赞成和反对的方式呈现。Apache:

  • .htaccess代码总是执行得更快,因为服务器默认情况下缓存.htaccess文件
  • 使用.htaccess,您可以为各个文件夹定义自定义规则服务器会自动接收它们
  • 使用PHP,您不能将所有内容都写在一个地方。有除了压缩之外,.htaccess还应该具备许多其他功能:

  • 一个字符集,过期/缓存控制,很可能是一些URL重写规则,权限,机器人(谷歌机器人等)特定的东西。

据我所知,你不能仅仅用PHP来完成所有这些,而且由于你可能需要完成所有这些工作,我不明白为什么你应该将两者结合起来。我一直依靠.htaccess或服务器级配置来控制上面列举的方面,很少遇到问题。

PHP:

  • 也许更轻松一点。使用共享主机平面上的.htaccess文件,您会受到相当大的限制,并且可能会遇到乏味的问题问题
  • 有些服务器不会接收某些命令,有些服务器(如1和1)有默认配置会干扰您的设置(和神经)
  • 对于不太懂技术的人来说可能更容易使用

总的来说,Apache是赢家。这就是我一直坚持的!

我不明白为什么两者中的任何一个都应该更快,但请记住,apache也可以压缩css文件/js文件。。。在将这些文件提交到浏览器之前,您不希望使用php解析这些文件以对其进行压缩。

所以我建议使用apache方法。

在我的公司,我们通常对静态资源使用gzip压缩。Apache要求PHP处理这些资源(如果需要),然后压缩输出结果。我想说,在理论上它更快(C和C++比PHP更快),并且使用Apache压缩"更安全"。

注意:这里更安全意味着整个页面将被压缩,而您可以忘记使用ob_start功能压缩部分网页

您必须运行自己的测试,看看哪一个更快,但我认为内容的提供方式应该没有任何区别。使用PHP,您必须自己处理输出缓冲,这可能会更加困难。使用apache方法更透明。

Apache更好,因为它可以防止php的内存限制错误,并且由于php中编译的代码与解释的代码相比,操作速度更快,而且在不同于php的层中进行压缩也更有意义

最新更新