Expires Tag'ı Kullanımı
Bu yazı, usenet'teki kablo internetle evden sunucuyla hizmet vermeye ilişkin
yazışmalarda sorun olarak görülen, 32KBps'lik upload bandgenişliğinin verimli
kullanımına ilişkin bir çözümü anlattığım bir epostadan derlenmiştir.
<hamidin@kankateam.com> wrote:
>Selamlar sorulara cevaplar...
>Yaklaşık 2 aydır slackware 7.0 ustunde apache server kullanarak
kablonet
>bağlantımla kendi domainimi host ediyorum.
...
>tabi uyarmadanda geçemeyeceğim . kablonetin şanslı kullanıclarından
>değilseniz 32 kbit upload hızınız ile ( gerçek olan budur ) yaklaşık 4 k
sec
>çıkışınız var olacak demektir . Hiç uğraşmayın bu durumda derim
>
Apache sunucuda Expires tanimlamalarini acarak baglanti darbogazini ve
sunucuyu bir nebze olsun rahatlatmak mumkun.
Bu tanimlamalarla sunucunun her dokumanla birlikte o dokumanin ne kadar sure
daha degismeden kalacagi bilgisini yollayabilirsiniz. Boylece tarayicilar
onbelleklerindeki dokumanlari hic sunucuya onaylattirmadan (IMS =
if-modified-since hikayesi) gosterebilirler.
Expires basligi gonderilmesini saglamak icin asagidaki satirlari httpd
configuration dosyasina modul tanimlamalarindan sonra uygun bir yere, kendi
sunucu guncelleme aliskanliklariniza gore sureleri ayarlayarak, girebilirsiniz:
# Expires basligi
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 30 days"
ExpiresByType image/gif "access plus 50 days"
ExpiresByType image/jpeg "access plus 50 days"
ExpiresByType text/html "access plus 7 days"
ExpiresByType text/plain "access plus 7 days"
</IfModule>
Buradaki komutlarin ayrintili aciklamalari apache dokumaninda mod_expires
kisminda var. Kisaca komutlar soyle:
ExpiresByType ile turlerine gore cesitli dokumanlarin ne kadar sureyle gecerli
olduklarni/degismediklerini tanimliyoruz. Zaman belirtimindeki "access" yerine
"modification" da diyebilirdik. access ile gecerlilik bilgisi o andan itibaren
hesap ediliyor. Digeri ise dosyanin degistirilme tarihi uzerinden hesap ediyor
Expires basligini.
ExpiresDefault ise onceki ile tanimlanmamis diger dokumanlarin varsayilan
gecerlilik surelerini belirliyor.
Zaman tanimlamalarinda minutes hours days .. years kullanilabiliyor.
Bu arada bir hatirlatma: touch komutuyla dosyalarin degistirilme tarihlerini
degistirebiliyoruz. Ornegin Expires kullanmayacaksak/kullanamiyorsak
degistirilme tarihinini birkac yil onceye ayarlayabiliriz proxyler bu tarihe
bakarak bir gecerlilik suresi tahmininde bulunuyor.
Kisaca bu ayarlari ve hileleri iyi kullanarak 32K'lik veya dial-up 33.6K'lik
bandwidth darbogazi sorununu asabilmek mumkun. Sonucta onbelleklerin ve
proxy'lerin hit yuzdesini arttiriyor.
Asagiya Expires baslikli bir "htttp request" ornegi aldim. Yukaridaki
tanimlamalar sayesinde "Cache-Control:" ve "Expires:" tag'lari da baslikla
birlikte gonderilmeye baslandi.
bash-2.03# telnet gk.ekitap.gen.tr 80
Trying 127.0.0.1...
Connected to gk.ekitap.gen.tr.
Escape character is '^]'.
HEAD /robotech/ HTTP/1.0
HTTP/1.1 200 OK
Date: Tue, 11 Jul 2000 06:49:22 GMT
Server: Apache/1.3.6 (Unix) (SuSE/Linux)
Cache-Control: max-age=604800
Expires: Tue, 18 Jul 2000 06:49:22 GMT
Last-Modified: Tue, 13 Jun 2000 01:11:21 GMT
ETag: "f5f6f-1032-39458a39"
Accept-Ranges: bytes
Content-Length: 4146
Connection: close
Content-Type: text/html
Connection closed by foreign host.
>Hamidin..
Kullanacaklara basarilar,
hoscakalin.
ilker Fıçıcılar
ilkerf()geocities.com
--
Html sayfalarının içinde expires meta tag'ını kullanmak
Web sunucusuna müdahale edemeyenler, bedava web alanı sağlayan
servisleri kullananlar da tek satırlık bir html eklentisiyle sayfalarının
browser cache'lerinde daha uzun tutulmasını, dolayısıyla sitelerinin
hızlı açılmasını sağlayabilirler.
Sitenizin statik, sıklıkla değişmeyen sayfalarının expires sürelerini
elle belirtebilirsiniz. Örneğin ben uzun süre güncellemiyeceğim, bunun gibi
web sayfalarına "1 Ocak 2003'e dek değişmeyecek" etiketi yapıştırıyorum:
<meta http-equiv="expires" content="Wed, 01 Jan 2003 00:00:00 GMT">
Özellikle referans olarak kullanılan bilgi siteleri için ideal bir
kullanım.
Yalnız, bütün sayfalarınızı tek tek düzenlemek zor olabilir. Bu
durumda ufak bir Unix shell scriptine bu işi otomatik olarak
yaptırtabiliriz. expirestweak.zip scripti
bulunduğunuz klasörün önce .tmp.yedek.tgz adıyla bir yedeğini alıyor, ve
sonra sayfadaki bütün html dosyalarına </head> tag'ından önce ilgili
expires meta tag'ını ekliyor.
expirestweak script'i şu şekilde:
#!/bin/sh
#
# expirestweak
#
#
#
# İlker FIÇICILAR
# ilkerf()geocities.com
# (c) 2002
#
#
tar -czf .tmp.yedek.tgz *.html *.htm 2>/dev/null
cat <<EOF2 >.tmp.regexp
s/<\/head>/<meta http-equiv="expires" content="Wed, 01 Jan 2003
00:00:00 GMT"><\/head>/g
EOF2
ls *.html *.htm | grep -v -e index.html -e menu.html
-e www.html -e internet.html -e bilgisayar.html
-e linux.html -e cesitli.html | while read fn
do
grep "expires\" content=\"Wed, 01" "$fn" >/dev/null
if [ "$?" == "1" ];then
echo "$fn" duzenlenmemisti duzenlendi.
sed -f .tmp.regexp "$fn" > .tmp.htm
mv .tmp.htm "$fn"
else
echo "$fn" tamam
fi
done
DİKKAT! yukarıdaki örnekte, sayfaya sığsın diye "ls *.html" ile
başlayan ve "s/\<head" ile başlayan satırlar parçalara bölündü. Scripti
hatasız kullanmak için yukarıdaki linkteki .zip'li dosyayı kullanmanızda
yarar var.
Ilker Ficicilar
eposta: ilkerf()geocities.com
Arama önerileri:
hızlı internet,
web sunucu,
apache,
expires,
html,
tag,
server,
if,
Kaynak gösterecekler için referans:
"Expires tag'ını kullanarak bandwidth ve önbellek verimini arttırma",
İlker Fıçıcılar,
http://www.KlavyeMonitor.com/expireskullan.html
, Ocak 2003
İlgili Benzer Yazılar:
|