¿Comprimiendo contenido con PHP ob_start () vs Apache Deflate / Gzip?
La mayoría de los sitios quieren comprimir su contenido para ahorrar en ancho de banda. Sin embargo, cuando se trata de servidores apache que ejecutan PHP, hay dos formas de hacerlo:con PHP o con apache. Entonces, ¿cuál es más rápido o más fácil en su servidor?
Por ejemplo, en PHP ejecuto la siguiente función al inicio de mis páginas para habilitarla:
/**
* Gzip compress page output
* Original function came from wordpress.org
*/
function gzip_compression() {
//If no encoding was given - then it must not be able to accept gzip pages
if( empty($_SERVER['HTTP_ACCEPT_ENCODING']) ) { return false; }
//If zlib is not ALREADY compressing the page - and ob_gzhandler is set
if (( ini_get('zlib.output_compression') == 'On'
OR ini_get('zlib.output_compression_level') > 0 )
OR ini_get('output_handler') == 'ob_gzhandler' ) {
return false;
}
//Else if zlib is loaded start the compression.
if ( extension_loaded( 'zlib' ) AND (strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== FALSE) ) {
ob_start('ob_gzhandler');
}
}
losotra opción es usar apachedesinflar o gzip (ambos que sonmuy cerca). Para habilitarlos puedes agregar algo como esto a tu archivo .htaccess.
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php
Dado que PHP es un lenguaje de scripting (que debe ser cargado por PHP), asumiría que el método de apache sería 1) más estable y 2) más rápido. Pero las suposiciones no tienen mucho uso en el mundo real.
Después de todo, supondría que con las enormes ventanas de respaldo financiero tiene ...uh, no vamos a ir allí.