<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>LoïcG &#187; bande passante</title>
	<atom:link href="http://blog.loicg.net/tag/bande-passante/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.loicg.net</link>
	<description>Carnet d&#039;un développeur web</description>
	<lastBuildDate>Sat, 04 Feb 2012 17:31:19 +0000</lastBuildDate>
	<language>fr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Cache du contenu statique en .htaccess</title>
		<link>http://blog.loicg.net/webdev/cache-contenu-statique-htaccess/</link>
		<comments>http://blog.loicg.net/webdev/cache-contenu-statique-htaccess/#comments</comments>
		<pubDate>Wed, 19 May 2010 15:37:36 +0000</pubDate>
		<dc:creator>Loïc</dc:creator>
				<category><![CDATA[WebDev]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[bande passante]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.loicg.net/?p=928</guid>
		<description><![CDATA[Le temps de chargement des pages est (depuis longtemps) un point crucial dans le développement web. Il existe de nombreuses façons d&#8217;accélérer ce temps de chargement, dont une, la mise en cache par le navigateur des éléments statiques. Le principe : Sur votre site vous utilisez une feuille de style, des fichiers javascripts ainsi que [...]]]></description>
			<content:encoded><![CDATA[<p>Le temps de chargement des pages est (depuis longtemps) un point crucial dans le développement web. Il existe de nombreuses façons d&#8217;accélérer ce temps de chargement, dont une, la mise en cache par le navigateur des éléments statiques.<span id="more-928"></span></p>
<h1>Le principe :</h1>
<p>Sur votre site vous utilisez une feuille de style, des fichiers javascripts ainsi que des images qui sont les mêmes sur plusieurs de vos pages (voir sur toutes&#8230;). L&#8217;objectif est de ne les servir qu&#8217;une seule fois à chaque visiteur.<br />
Pour cela, les navigateurs ont un cache (également appelés &laquo;&nbsp;fichiers temporaires&nbsp;&raquo;), qui lui permet de réutiliser des éléments qu&#8217;il a déjà chargé, pour peu que votre site lui ai indiqué de tenir ce comportement.</p>
<h1>Gain estimé :</h1>
<p>Les éléments statiques sont assez nombreux et volumineux, que ce soit les librairies javascript (jQuery, les lightbox, etc &#8230;) ou encore les images (une belle bannière en header du site, etc &#8230;), on accumule les kilo-octets&#8230;<br />
Lorsque ces éléments sont mis en cache, le volume de données transférées se voit ainsi divisé par 6 ou 10.</p>
<h1>Comment ?</h1>
<p>Ce comportement peut être défini dans un fichier .htaccess, voici le code à insérer :</p>
<pre><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;">&lt;ifModule mod_headers.c&gt;
  &lt;FilesMatch "\.(js|css|ico|jpg|jpeg|png|gif)$"&gt;
    Header set Expires "Thu, 15 Jan 2015 20:00:00 GMT"
    Header unset ETag
    FileETag None
    Header unset Last-Modified
    Header set Cache-Control "max-age=864000, public"
  &lt;/FilesMatch&gt;
&lt;/ifModule&gt;</span></pre>
<p><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;">Il faut également activer le mod_headers sur le serveur Apache (par ex : &laquo;&nbsp;sudo a2enmod headers&nbsp;&raquo; sous debian/ubuntu)</span></p>
<h1>Analyse du code :</h1>
<ul>
<li>&laquo;&nbsp;Header set Expires &#8230;&nbsp;&raquo; : indique au navigateur un date d&#8217;expiration dans un futur (assez) lointain</li>
<li>&laquo;&nbsp;Header unset ETag&nbsp;&raquo; : va nous permettre de débrayer le système de validation de contenu du navigateur, ainsi c&#8217;est notre Cache-Control qui va gérer la mise en cache.</li>
<li>&laquo;&nbsp;FileEtag None&nbsp;&raquo; : idem ci-dessus</li>
<li>&laquo;&nbsp;Header unset Last-Modified&nbsp;&raquo; : comme pour les Etag, nous ne voulons pas que ce soit le navigateur qui décide de rafraichir le contenu</li>
<li>&laquo;&nbsp;Header set Cache-Control &#8230;&nbsp;&raquo; : Nous indiquons au cache du navigateur que le contenu est valide pendant 10 jours (exprimé en secondes)</li>
</ul>
<h1>Conclusion :</h1>
<p>Cette technique est assez simple à mettre en place, permet d&#8217;économiser de la bande passante et de servir ses pages plus rapidement à chaque visiteur (à partir de sa seconde page vue&#8230;).<br />
Il y a donc tout à gagner en adoptant cette pratique.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loicg.net/webdev/cache-contenu-statique-htaccess/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Minify, réduisez et réunissez vos fichiers CSS et Javascript</title>
		<link>http://blog.loicg.net/webdev/minify-reduisez-et-reunissez-vos-fichiers-css-et-javascript/</link>
		<comments>http://blog.loicg.net/webdev/minify-reduisez-et-reunissez-vos-fichiers-css-et-javascript/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 11:55:09 +0000</pubDate>
		<dc:creator>Loïc</dc:creator>
				<category><![CDATA[WebDev]]></category>
		<category><![CDATA[bande passante]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.loicg.net/?p=511</guid>
		<description><![CDATA[Ah les jolis sites, avec leurs feuilles de styles, leurs animations en Javascript et leurs morceaux d&#8217;AJAX dedans ! C&#8217;est joli, c&#8217;est très &#171;&#160;2.0 et cie&#160;&#187;, mais ça fait encore plus de lignes de code, encore plus de fichiers et donc encore plus de bande passante. Les sites s&#8217;allourdissent (sans parler des pubs, du flash, [...]]]></description>
			<content:encoded><![CDATA[<p>Ah les jolis sites, avec leurs feuilles de styles, leurs animations en Javascript et leurs morceaux d&#8217;AJAX dedans !<br />
C&#8217;est joli, c&#8217;est très &laquo;&nbsp;2.0 et cie&nbsp;&raquo;, mais ça fait encore plus de lignes de code, encore plus de fichiers et donc encore plus de bande passante.</p>
<p style="text-align: center;"><img class="size-medium wp-image-512 aligncenter" title="balance" src="http://blog.loicg.net/wp-content/uploads/2009/01/balance-279x300.jpg" alt="balance" width="195" height="210" /></p>
<p style="text-align: left;">Les sites s&#8217;allourdissent (sans parler des pubs, du flash, etc &#8230;). Bref ! C&#8217;est la crise, faut alléger tout ça ! (oui, je sais que la crise n&#8217;a rien à voir, mais c&#8217;est dans l&#8217;ère du temps <img src='http://blog.loicg.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  ).</p>
<p>Je vais parler aujourd&#8217;hui d&#8217;un petit bout de php qui ne fera de mal à personne : <a title="Minify a javascript css compressor" href="http://code.google.com/p/minify/" target="_blank">Minify</a>.<span id="more-511"></span></p>
<p>Minify est un script codé en php5 qui permet de réduire et de réunir efficacement les fichiers CSS et Javascript.<br />
Cette application supprime tous les caractères inutiles à l&#8217;interprétation du code par les navigateurs, à savoir les espaces et les commentaires.<br />
De plus, elle concatène ces scripts entre eux, ce qui permet de réduire le nombre de requêtes effectuées par le navigateur de vos visiteurs (ce qui implique un temps de chargement ainsi qu&#8217;une charge en bande passantes réduits).<br />
Autre atout, les fichiers crées sont envoyés avec un encodage HTTP (gzip/deflate), ce qui signifie qu&#8217;au moment de l&#8217;envoi au navigateur, ils vont être (g)zippés (compressés).</p>
<p>Au niveau de l&#8217;installation, c&#8217;est assez simple puisqu&#8217;un assistant de création d&#8217;URL est fourni avec l&#8217;outil pour permettre une integration plus aisée à vos créations existantes ou futures. Le fichier <a title="Minify, readme file" href="http://code.google.com/p/minify/source/browse/tags/release_2.1.1/README.txt" target="_blank">readme</a> explique tout ça bien mieux que moi ^^</p>
<p>Cette petite application est simple, mais diablement efficace. De plus, elle est gratuite et sous <a title="License BSD" href="http://www.opensource.org/licenses/bsd-license.php" target="_blank">licence BSD</a> (une des nombreuses licences OpenSource).</p>
<p>Via : <a title="Minify a javascript css compressor" href="http://www.webappers.com/2009/01/22/minify-combine-compress-css-or-javascript-files/" target="_blank">WebAppers</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loicg.net/webdev/minify-reduisez-et-reunissez-vos-fichiers-css-et-javascript/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using memcached (Feed is rejected)
Page Caching using memcached (User agent is rejected)
Database Caching 16/23 queries in 0.013 seconds using memcached

Served from: blog.loicg.net @ 2012-02-07 13:50:40 -->
