<?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>یادداشتهای بیت نیمسوز &#187; gzip</title>
	<atom:link href="http://cyberrabbits.net/tag/gzip/feed/" rel="self" type="application/rss+xml" />
	<link>http://cyberrabbits.net</link>
	<description>یک وبلاگ دیگر از یک برنامه نویس دیگر</description>
	<lastBuildDate>Wed, 25 Jan 2012 08:37:11 +0000</lastBuildDate>
	<language>fa</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>دو نکته برای بالا بردن سرعت &#8211; آپاچی</title>
		<link>http://cyberrabbits.net/799/apache-speed-up-tips/</link>
		<comments>http://cyberrabbits.net/799/apache-speed-up-tips/#comments</comments>
		<pubDate>Tue, 18 Jan 2011 19:50:31 +0000</pubDate>
		<dc:creator>فرود</dc:creator>
				<category><![CDATA[آپاچی]]></category>
		<category><![CDATA[فوت کوزه گری]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[gzip]]></category>
		<category><![CDATA[webserver]]></category>
		<category><![CDATA[وب سرور]]></category>

		<guid isPermaLink="false">http://cyberrabbits.net/?p=799</guid>
		<description><![CDATA[از نکاتی که پیشنهاد میشه برای بالا بردن سرعت یه سایت این دو مساله سادست: ۱- اضافه کردن Expire Header به فایلها، و خصوصا یک زمان دور برای فایلهای استاتیک، مثلا عکسها و فایلهای css و جاوااسکریپت. البته بد نیست برای فایلهای php و html هم این زمان رو تعیین کنیم ولی نه چندان دور.&#8230;
پستهای مرتبط :<ol>
<li><a href='http://cyberrabbits.net/43/vhosts/' rel='bookmark' title='هاست مجازی بر روی آپاچی'>هاست مجازی بر روی آپاچی</a> <small>خیلی پیش می آید که ما نیاز به چند آدرس...</small></li>
<li><a href='http://cyberrabbits.net/564/a-small-tip-in-php/' rel='bookmark' title='یه نکته کوچک در PHP'>یه نکته کوچک در PHP</a> <small>همونطور که میدونید توی PHP برای اپراتور OR دو نسخه...</small></li>
<li><a href='http://cyberrabbits.net/585/php-simple-note/' rel='bookmark' title='بازم یک نکته کوچک تو PHP'>بازم یک نکته کوچک تو PHP</a> <small>یکی از مشکلاتی که برنامه نویسهای تازه کار با اون...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>از نکاتی که پیشنهاد میشه برای بالا بردن سرعت یه سایت این دو مساله سادست:<br />
۱-<a href="http://developer.yahoo.com/performance/rules.html#expires"> اضافه کردن Expire Header به فایلها</a>، و خصوصا یک زمان دور برای فایلهای استاتیک، مثلا عکسها و فایلهای css و جاوااسکریپت. البته بد نیست برای فایلهای php و html هم این زمان رو تعیین کنیم ولی نه چندان دور.<br />
۲-<a href="http://developer.yahoo.com/performance/rules.html#gzip"> کمپرس کردن فایلهای متنی با متد gzip </a>و فرستادن اونها به کلاینت به جای ارسال محتوای فشرده نشده.</p>
<p>برای هر دو در خود PHP امکاناتی هست، ولی مشکلاتی هم هست. این امکانات که در PHP هستن، طبیعیه که فقط برای فایلهای PHP کار میکنن نه مثلا فایلهای CSS یا JS که اونها مهمترن برای اینکار. یعنی شما میتونید با دستور header استفاده کنید برای ویرایش http header و از تنظیمات PHP هم gzip رو فعال کنید، ولی این فقط برای فایلهایی که PHP پردازش میکنه اعمال میشن نه همه فایلها.<br />
اینجا آپاچی میتونه خیلی کمک کنه. برای اینکار باید دو ماژول معروف‌آپاچی رو نصب کنید.<br />
<span id="more-799"></span><br />
<a href="http://httpd.apache.org/docs/2.0/mod/mod_headers.html"><strong>mod_headers</strong></a><br />
این ماژول، به شما اجازه میده به راحتی Http Header مربوط به یک فایل رو (و در کل تمام پاسخها رو) ویرایش کنید. اول مطمئن بشید روی سرورتون نصبه. بسته به نسخه مورد استفاده شما، میتونید با دستور :</p>
<pre class="brush: plain; title: ; notranslate">
apache2ctl -l
</pre>
<p>یا دستورات مشابه، لیست ماژولهای نصب شده تو آپاچی رو ببینید و مطمئن بشید که این ماژول وجود داره. (نکته جالب اینه که من همیشه این دستور رو میزنم و این ماژول رو لیست نمیکنه! در صورتیکه نصبش کردم و کار هم میکنه! از آرچ ۶۴ بیتی استفاده میکنم و Zend Server CE )‌</p>
<p>حالا به راحتی میتونید از Header توی فایل htaccess استفاده کنید. یه چیزی مثل این رو میتونید توی فایل htaccess بنویسید : </p>
<pre class="brush: plain; title: ; notranslate">
&lt;IfModule mod_header.c&gt;
	Header unset Pragma
	FileETag None
	Header unset ETag

	# cache images/pdf/css/js for 10 days
	&lt;FilesMatch &quot;\.(ico|pdf|jpg|jpeg|png|gif|js|css)$&quot;&gt;
	  Header set Cache-Control &quot;max-age=864000, public, must-revalidate&quot;
	  Header unset Last-Modified
	&lt;/FilesMatch&gt;

	# cache html/htm/xml/txt diles for 2 days
	&lt;FilesMatch &quot;\.(html|htm|xml|txt|xsl)$&quot;&gt;
	  Header set Cache-Control &quot;max-age=7200, must-revalidate&quot;
	&lt;/FilesMatch&gt;
&lt;/IfModule&gt;
</pre>
<p>البته تو این مثال از FileMatch هم استفاده کردم که توی هسته آپاچی هست به صورت پیشفرض.<br />
تو این مثال ETag رو هم غیر فعال کردم (خطوط ۳ و ۴)که اونم به این دلیله : <a href='http://developer.yahoo.com/performance/rules.html#etags' title='Best Practices for Speeding Up Your Web Site'>Best Practices for Speeding Up Your Web Site</a> (آخر قسمت Configure ETags منظورمه، کامل بخونیدش)<br />
و بعد برای فایلهای عکس، pdf ، CSS و جاوا اسکریپت، زمان انقضای ۱۰ روز رو انتخاب کردم(خطوط ۷ تا ۱۰ ) و بعد برای فایلهای متنی استاتیک (نه php البته) مدت زمان انقضای ۲ روز (خطوط ۱۳ تا ۱۵)<br />
کد بالا رو تو htaccess کپی کنید، کار کرد که چه خوب! اگه کار نکرد یعنی ماژول مورد نظر نصب نیست. برای مطمئن شدن از کار کردنش، از افزونه <a href="http://developer.yahoo.com/yslow/">Y!Slow</a> استفاده کنید، یا دو خط اول و آخر (IfModule) رو حذف کنید و ببینید Internal Server Error میگیرید یا نه، اگه خطا نداد یعنی همه چی درسته.</p>
<p><a href="http://httpd.apache.org/docs/2.0/mod/mod_deflate.html"><strong>mod_deflate</strong></a><br />
این یکی به شما امکان میده که به راحتی قابلیت فشرده سازی رو روی فایلهاتون فعال کنید. توصیه من فشرده کردن همه فایلهای CSS و جاوا اسکریپت و html هستش. اینطوری : </p>
<pre class="brush: plain; title: ; notranslate">
&lt;IfModule mod_deflate.c&gt;
  &lt;FilesMatch &quot;\.(js|css|php|htm|html)$&quot;&gt;
    SetOutputFilter DEFLATE
  &lt;/FilesMatch&gt;
&lt;/IfModule&gt;
</pre>
<p>با این روش در صورتیکه این پسوندهای به خصوص درخواست بشن توسط سرور، سرور اونها رو کمپرس شده پس میفرسته.<br />
البته php هم معمولا خروجیش html میشه بودنش تو این لیست بدک نیست. برای امتحان درست بودن این، مثل همون که بالا گفتم عمل کنید، دو خط اول و آخر رو حذف کنید و ببینید بازم کار میکنه یا خطا میگیرید.<br />
البته، راهنمای خود ماژول هم این فرم استفاده رو پیشنهاد کرده : </p>
<pre class="brush: plain; title: ; notranslate">
AddOutputFilterByType DEFLATE text/html text/plain text/xml
</pre>
<p>که فرق آنچنانی نداره و شاید بعضی ها اینو دوست تر داشته باشن :)<br />
یه نکته هم بد نیست بگم و اونم اینه که توی FilesMatch از عبارات با قاعده استفاده میشه، و مثلا </p>
<pre class="brush: plain; title: ; notranslate">
\.(html|htm|xml|txt|xsl)$
</pre>
<p>یعنی هر فایلی که تو اسمش یه نقطه باشه بعد بلافاصله html یا htm یا xml یا txt یا xsl باشه و بعدش هم بلافاصله اسم فایل تموم بشه (اون علامت $ اینو میگه!)</p>
<p>&#8211; یه مدتیه درگیر یه سری کار و سفارش هستم کمتر وقت میکنم بنویسم&#8230;‌</p>
<div class="plus-one-wrap"><g:plusone href="http://cyberrabbits.net/799/apache-speed-up-tips/"></g:plusone></div><p>پستهای مرتبط :<ol>
<li><a href='http://cyberrabbits.net/43/vhosts/' rel='bookmark' title='هاست مجازی بر روی آپاچی'>هاست مجازی بر روی آپاچی</a> <small>خیلی پیش می آید که ما نیاز به چند آدرس...</small></li>
<li><a href='http://cyberrabbits.net/564/a-small-tip-in-php/' rel='bookmark' title='یه نکته کوچک در PHP'>یه نکته کوچک در PHP</a> <small>همونطور که میدونید توی PHP برای اپراتور OR دو نسخه...</small></li>
<li><a href='http://cyberrabbits.net/585/php-simple-note/' rel='bookmark' title='بازم یک نکته کوچک تو PHP'>بازم یک نکته کوچک تو PHP</a> <small>یکی از مشکلاتی که برنامه نویسهای تازه کار با اون...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://cyberrabbits.net/799/apache-speed-up-tips/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>یک کار قدیمی</title>
		<link>http://cyberrabbits.net/35/an-old-job/</link>
		<comments>http://cyberrabbits.net/35/an-old-job/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 21:17:48 +0000</pubDate>
		<dc:creator>فرود</dc:creator>
				<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[خیلی پیش میاد!]]></category>
		<category><![CDATA[دلفی]]></category>
		<category><![CDATA[bz]]></category>
		<category><![CDATA[bzip2]]></category>
		<category><![CDATA[compression]]></category>
		<category><![CDATA[gz]]></category>
		<category><![CDATA[gzip]]></category>
		<category><![CDATA[کمپرس اطلاعات]]></category>

		<guid isPermaLink="false">http://cyberrabbits.net/?p=35</guid>
		<description><![CDATA[خیلی پیش میاد که نیاز به کمپرس کردن اطلاعات باشه. خیلی هم پیش میاد که دقیقا ندونی چطور جمله تو شروع کنی. مثل من، تو همین پست. خیلی وقت پیش، همون اوایل شروع به کار با دلفی احتیاج شد که یه چیزی رو کمپرس کنم، مهم نبود چطوری، فقط باید کمپرس میشد. همون موقع برای&#8230;
پستهای مرتبط :<ol>
<li><a href='http://cyberrabbits.net/78/date-convertor/' rel='bookmark' title='تبدیل تاریخ'>تبدیل تاریخ</a> <small>بارها در این باره، با خیلی ها بحث کردم. حالا...</small></li>
<li><a href='http://cyberrabbits.net/228/php-some-special-function/' rel='bookmark' title='PHP و توابعی که کمتر استفاده میکنیم'>PHP و توابعی که کمتر استفاده میکنیم</a> <small>چند تا تابع هست که ممکنه شما ندیده باشیدشون. منم...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>خیلی پیش میاد که نیاز به کمپرس کردن اطلاعات باشه. خیلی هم پیش میاد که دقیقا ندونی چطور جمله تو شروع کنی. مثل من، تو همین پست.<br />
خیلی وقت پیش، همون اوایل شروع به کار با دلفی احتیاج شد که یه چیزی رو کمپرس کنم، مهم نبود چطوری، فقط باید کمپرس میشد. همون موقع برای اولین بار با کتابخانه مربوط به <a href="http://zlib.net">zlib </a>آشنا شدم که به صورت اضافه توی سی دی دلفی 5 بود.<br />
چند وقت بعد، یه جورایی به مشکل برخوردم. کتابخانه قدیمی بود و باید به روز میشد، متدها برای یک حالت خاص (بدون ZLIB Header ) اصلا پیش بینی نشده بود و برای ایجاد فایل <a href="http://www.fileinfo.com/extension/gz">gz.</a> به این قابلیت احتیاج بود، پس دوباره این کتابخانه را برای دلفی ایجاد کردم.<br />
بعدها متد <a href="http://bzip.org">bzip2 </a>را هم اضافه کردم که اونهم از لحاظ کلی شبیه همین بود، فقط برای فایلهای <a href="http://www.fileinfo.com/extension/bz">.bz</a> استفاده میشد.<br />
امروز، دوباره فرصت کردم یه کم اینو سر و سامون بدم، bzip رو با نسخه جدیدش عوض کنم، و بعد هم کد رو توی <a href="http://sf.net">SourceForge</a> بذارم. نتیجه رو میتونید <a href="http://cyberrabbits.net/index.php/delphi/pages-delphi-computil/">اینجا </a> ببینید.<br />
کلی مکافات داشتم با این پروتکل https انقدر کند بود که دیوونه شدم! اینم از مزایای کشور ماست، که گاهی با این مسایل روبرو میشی :(</p>
<div class="plus-one-wrap"><g:plusone href="http://cyberrabbits.net/35/an-old-job/"></g:plusone></div><p>پستهای مرتبط :<ol>
<li><a href='http://cyberrabbits.net/78/date-convertor/' rel='bookmark' title='تبدیل تاریخ'>تبدیل تاریخ</a> <small>بارها در این باره، با خیلی ها بحث کردم. حالا...</small></li>
<li><a href='http://cyberrabbits.net/228/php-some-special-function/' rel='bookmark' title='PHP و توابعی که کمتر استفاده میکنیم'>PHP و توابعی که کمتر استفاده میکنیم</a> <small>چند تا تابع هست که ممکنه شما ندیده باشیدشون. منم...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://cyberrabbits.net/35/an-old-job/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

