<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: GZipování podruhé: skripty a styly</title>
	<atom:link href="https://kahi.cz/blog/gzipovani-podruhe-skripty-a-styly/feed" rel="self" type="application/rss+xml" />
	<link>https://kahi.cz/blog/gzipovani-podruhe-skripty-a-styly</link>
	<description>Zápisník někdy o ničem, ale někdy i o tvorbě webových stránek, o použitelnosti, o uživatelských rozhraních, o CSS a tak všelijak.</description>
	<lastBuildDate>Sun, 25 Aug 2019 21:00:51 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.2</generator>
	<item>
		<title>By: dgx</title>
		<link>https://kahi.cz/blog/gzipovani-podruhe-skripty-a-styly#comment-26749</link>
		<dc:creator>dgx</dc:creator>
		<pubDate>Fri, 23 Nov 2007 12:03:14 +0000</pubDate>
		<guid isPermaLink="false">http://kahi.cz/blog/gzipovani-podruhe-skripty-a-styly#comment-26749</guid>
		<description><![CDATA[<p>&lt;!&#8211;texy&#8211;&gt;[5] nejde o to použít Expires **místo** Last-Modified, použít by se mělo obojí zároveň. Last-Modified aby dělal dotaz a Expires aby ho dělal třeba jen ob den.</p>
<p>[6] o to tady nešlo. Původní kód obsahoval nějaké díry, přes které bylo možné spustit kód nebo vypsat konfigurační soubor. Ty už Kahi opravil.</p>
]]></description>
		<content:encoded><![CDATA[
<p>[5] nejde o to použít Expires <strong>místo</strong> Last-Modified,
použít by se mělo obojí zároveň. Last-Modified aby dělal dotaz a Expires
aby ho dělal třeba jen ob den.</p>

<p>[6] o to tady nešlo. Původní kód obsahoval nějaké díry, přes které
bylo možné spustit kód nebo vypsat konfigurační soubor. Ty už Kahi
opravil.</p>

]]></content:encoded>
	</item>
	<item>
		<title>By: Kahi</title>
		<link>https://kahi.cz/blog/gzipovani-podruhe-skripty-a-styly#comment-26503</link>
		<dc:creator>Kahi</dc:creator>
		<pubDate>Wed, 21 Nov 2007 21:13:11 +0000</pubDate>
		<guid isPermaLink="false">http://kahi.cz/blog/gzipovani-podruhe-skripty-a-styly#comment-26503</guid>
		<description><![CDATA[<p>&lt;!&#8211;texy&#8211;&gt;[5] &#8211; zajímavé. Osobně bych možná vyřešil kešování obrázků přes mod_expires a kód obou souborů by se pak mohl trochu zjednodušit&#8230;</p>
]]></description>
		<content:encoded><![CDATA[
<p>[5] – zajímavé. Osobně bych možná vyřešil kešování obrázků
přes mod_expires a kód obou souborů by se pak mohl trochu zjednodušit…</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Arcao</title>
		<link>https://kahi.cz/blog/gzipovani-podruhe-skripty-a-styly#comment-25910</link>
		<dc:creator>Arcao</dc:creator>
		<pubDate>Mon, 19 Nov 2007 12:26:10 +0000</pubDate>
		<guid isPermaLink="false">http://kahi.cz/blog/gzipovani-podruhe-skripty-a-styly#comment-25910</guid>
		<description><![CDATA[<p>&lt;!&#8211;texy&#8211;&gt;[3]  tam urco neprotlacis. Minimalne Texy! prevede &lt;a&gt; na entity. Pripadne kazdy poradny RS((Redakcni system)) pro PHP ma osetrene v komentarich, aby jsi nemohl do textu narvat surovy php kod.</p>
]]></description>
		<content:encoded><![CDATA[
<p>[3] tam urco neprotlacis. Minimalne Texy! prevede &lt;a&gt; na entity.
Pripadne kazdy poradny <acronym title="Redakcni system">RS</acronym> pro PHP ma
osetrene v komentarich, aby jsi nemohl do textu narvat surovy php kod.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Arcao</title>
		<link>https://kahi.cz/blog/gzipovani-podruhe-skripty-a-styly#comment-25904</link>
		<dc:creator>Arcao</dc:creator>
		<pubDate>Mon, 19 Nov 2007 12:08:27 +0000</pubDate>
		<guid isPermaLink="false">http://kahi.cz/blog/gzipovani-podruhe-skripty-a-styly#comment-25904</guid>
		<description><![CDATA[<p>&lt;!&#8211;texy&#8211;&gt;Hi, misto Last-Modified hlavicky bych radeji pouzil Expires. Jde o to, ze u Last-Modified se musi udelat pro kazde nacteni stranky dotaz, zda se cilovy soubor nezmenil. Expires tohle proste nedela, pac pres Expires mu reknes, na jak dloho si ma uchovat soubor v cache. </p>
<p>Osobne pouzivam kod:</p>
<p>**header_mod.php:**<br />
/&#8212;code php<br />
 content type<br />
$ct = Array(&#039;css&#039;=&gt;&#039;text/css&#039;, &#039;js&#039;=&gt;&#039;application/x-javascript&#039;, &#039;gif&#039;=&gt;&#039;image/gif&#039;, &#039;png&#039;=&gt;&#039;image/png&#039;, &#039;jpg&#039;=&gt;&#039;image/jepg&#039;, &#039;jpeg&#039;=&gt;&#039;image/jpg&#039;);</p>
<p>//nemame li soubor, koncime<br />
if (!$_GET[&#039;file&#039;]) {<br />
  header(&quot;HTTP/1.0 404 Not Found&quot;);<br />
  exit;<br />
}</p>
<p>$file = &#039;./&#039; . $_GET[&#039;file&#039;];</p>
<p>//ziskame priponu<br />
$ext = substr($file, strrpos($file, &#039;.&#039;) + 1);<br />
//nemame content type, koncime (ochrana proti nabourani)<br />
if (!isset($ct[$ext])) {<br />
  header(&quot;HTTP/1.0 404 Not Found&quot;);<br />
  exit;<br />
}<br />
//a content type<br />
$content_type = $ct[$ext];</p>
<p>$time = time();<br />
//pridame 10 dni (doporucuje se dat i vice)<br />
$time+=10*24*3600;</p>
<p>//nastavime hlavicky<br />
header(&quot;Expires: &quot;.gmdate(&quot;D, d M Y H:i:s&quot;,$time).&quot; GMT&quot;);<br />
header(&quot;Cache-Control: must-revalidate&quot;);<br />
header(&quot;Content-Type: $content_type&quot;);</p>
<p>//pokud je soubor obrazek, tak nezapneme gz kompresi<br />
if (strpos($content_type, &#039;image/&#039;) === false) ob_start(&quot;ob_gzhandler&quot;);</p>
<p>echo file_get_contents($file);<br />
?&gt;<br />
\&#8211;</p>
<p>a pak jeste na to aplikuju mod_rewrite:</p>
<p>**.htaccess:**<br />
/&#8212;code text<br />
RewriteEngine on<br />
RewriteRule (.+\.(css&#124;js&#124;gif&#124;png&#124;jpg&#124;jpeg))$ /header_mod.php?file=$1 [L]</p>
<p>#vypneme ETag<br />
FileETag none<br />
\&#8212;</p>
<p>*Poznamka: Osdobne mam zlib.output_compression vypnuty, ale pro lepsi prenositelnost by bylo lepsi pridat testovani, tak jak ho tam ma Kahi.*</p>
]]></description>
		<content:encoded><![CDATA[
<p>Hi, misto Last-Modified hlavicky bych radeji pouzil Expires. Jde o to, ze
u Last-Modified se musi udelat pro kazde nacteni stranky dotaz, zda se cilovy
soubor nezmenil. Expires tohle proste nedela, pac pres Expires mu reknes, na jak
dloho si ma uchovat soubor v cache.</p>

<p>Osobne pouzivam kod:</p>

<p><strong>header_mod.php:</strong></p>

<pre class="php"><code>content type
<span class="php-var">$ct</span> = <span class="php-keyword2">Array</span>(<span class="php-quote">'css'</span>=&gt;<span class="php-quote">'text/css'</span>, <span class="php-quote">'js'</span>=&gt;<span class="php-quote">'application/x-javascript'</span>, <span class="php-quote">'gif'</span>=&gt;<span class="php-quote">'image/gif'</span>, <span class="php-quote">'png'</span>=&gt;<span class="php-quote">'image/png'</span>, <span class="php-quote">'jpg'</span>=&gt;<span class="php-quote">'image/jepg'</span>, <span class="php-quote">'jpeg'</span>=&gt;<span class="php-quote">'image/jpg'</span>);

<span class="php-comment">//nemame li soubor, koncime
</span><span class="php-keyword1">if</span> (!<span class="php-var">$_GET</span>[<span class="php-quote">'file'</span>]) {
 <span class="php-keyword2">header</span>(<span class="php-quote">&quot;HTTP/1.0 404 Not Found&quot;</span>);
 <span class="php-keyword2">exit</span>;
}

<span class="php-var">$file</span> = <span class="php-quote">'./'</span> . <span class="php-var">$_GET</span>[<span class="php-quote">'file'</span>];

<span class="php-comment">//ziskame priponu
</span><span class="php-var">$ext</span> = <span class="php-keyword2">substr</span>(<span class="php-var">$file</span>, <span class="php-keyword2">strrpos</span>(<span class="php-var">$file</span>, <span class="php-quote">'.'</span>) + <span class="php-num">1</span>);
<span class="php-comment">//nemame content type, koncime (ochrana proti nabourani)
</span><span class="php-keyword1">if</span> (!<span class="php-keyword2">isset</span>(<span class="php-var">$ct</span>[<span class="php-var">$ext</span>])) {
 <span class="php-keyword2">header</span>(<span class="php-quote">&quot;HTTP/1.0 404 Not Found&quot;</span>);
 <span class="php-keyword2">exit</span>;
}
<span class="php-comment">//a content type
</span><span class="php-var">$content_type</span> = <span class="php-var">$ct</span>[<span class="php-var">$ext</span>];

<span class="php-var">$time</span> = <span class="php-keyword2">time</span>();
<span class="php-comment">//pridame 10 dni (doporucuje se dat i vice)
</span><span class="php-var">$time</span>+=<span class="php-num">10</span>*<span class="php-num">24</span>*<span class="php-num">3600</span>;

<span class="php-comment">//nastavime hlavicky
</span><span class="php-keyword2">header</span>(<span class="php-quote">&quot;Expires: &quot;</span>.<span class="php-keyword2">gmdate</span>(<span class="php-quote">&quot;D, d M Y H:i:s&quot;</span>,<span class="php-var">$time</span>).<span class="php-quote">&quot; GMT&quot;</span>);
<span class="php-keyword2">header</span>(<span class="php-quote">&quot;Cache-Control: must-revalidate&quot;</span>);
<span class="php-keyword2">header</span>(<span class="php-quote">&quot;Content-Type: </span><span class="php-var">$content_type</span><span class="php-quote">&quot;</span>);

<span class="php-comment">//pokud je soubor obrazek, tak nezapneme gz kompresi
</span><span class="php-keyword1">if</span> (<span class="php-keyword2">strpos</span>(<span class="php-var">$content_type</span>, <span class="php-quote">'image/'</span>) === <span class="php-keyword1">false</span>) ob_start(<span class="php-quote">&quot;ob_gzhandler&quot;</span>);

<span class="php-keyword1">echo</span> file_get_contents(<span class="php-var">$file</span>);
<span class="xlang">?&gt;</span></code></pre>

<p>a pak jeste na to aplikuju mod_rewrite:</p>

<p><strong>.htaccess:</strong></p>

<pre class="text"><code>RewriteEngine on
RewriteRule (.+\.(css|js|gif|png|jpg|jpeg))$ /header_mod.php?file=$1 [L]

#vypneme ETag
FileETag none</code></pre>

<p><em>Poznamka: Osdobne mam zlib.output_com­pression vypnuty, ale pro lepsi
prenositelnost by bylo lepsi pridat testovani, tak jak ho tam ma Kahi.</em></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kahi</title>
		<link>https://kahi.cz/blog/gzipovani-podruhe-skripty-a-styly#comment-25830</link>
		<dc:creator>Kahi</dc:creator>
		<pubDate>Mon, 19 Nov 2007 04:40:55 +0000</pubDate>
		<guid isPermaLink="false">http://kahi.cz/blog/gzipovani-podruhe-skripty-a-styly#comment-25830</guid>
		<description><![CDATA[<p>&lt;!&#8211;texy&#8211;&gt;Trochu jsem to přepsal, díra zmíněná by dgx už tam není&#8230;</p>
]]></description>
		<content:encoded><![CDATA[
<p>Trochu jsem to přepsal, díra zmíněná by dgx už tam není…</p>
]]></content:encoded>
	</item>
</channel>
</rss>
