Gzip Sıkıştırması Nedir Nasıl Yapılır?
Gzip sıkıştırma, web sitelerinin veri transferini hızlandırmak ve bant genişliği kullanımını azaltmak amacıyla kullanılan bir veri sıkıştırma yöntemidir. Bu yöntem, sunucu ve tarayıcı arasındaki veri alışverişini daha verimli hale getirerek web sitelerinin daha hızlı yüklenmesine yardımcı olur.
Web sayfaları genellikle metin tabanlı verileri içerir, örneğin HTML, CSS, JavaScript dosyaları gibi. Bu veriler, gereksiz boşluklar, tekrarlayan karakterler ve benzer özellikler içerebilir. Gzip sıkıştırma, bu tür verileri daha az yer kaplayacak şekilde sıkıştırır ve sunucudan tarayıcıya gönderir.
Gzip sıkıştırma yöntemi, aşağıdaki avantajları sağlar:
Daha Hızlı Yükleme Süreleri
Sıkıştırılmış verilerin daha hızlı aktarılması sayesinde web sayfaları daha hızlı yüklenir.
Daha Az Bant Genişliği Kullanımı
Sıkıştırılmış veriler daha az bant genişliği kullanır, bu da web sitenizin trafiğini azaltır ve sunucu kaynaklarını daha verimli kullanmanıza yardımcı olur.
Kullanıcı Deneyimini İyileştirme
Daha hızlı yüklenen sayfalar, ziyaretçilerin web sitenizi daha olumlu bir şekilde deneyimlemesini sağlar.
Gzip sıkıştırma, genellikle sunucu tarafında etkinleştirilen bir özelliktir. Sunucu, tarayıcıdan gelen isteklere yanıt olarak verileri sıkıştırır ve tarayıcıya sıkıştırılmış veriyi ileterek tarayıcının bu veriyi çözmesini sağlar.
Modern web tarayıcıları, Gzip sıkıştırma desteğini varsayılan olarak sunar ve otomatik olarak sıkıştırılmış veriyi çözerler. Bu nedenle, web sitenizin performansını artırmak ve kullanıcı deneyimini iyileştirmek için sunucunuzda Gzip sıkıştırma özelliğini etkinleştirmeniz önerilir.
Gzip Nasıl Yapılır?
Gzip, Linux alt yapısı kullanan tüm servislerde kullanılmaktadır. Gzip dosyaları sıkıştırarak, sitenizin daha hızlı açılmasına olanak sağlayacaktır. Sitenize ait “htaccess” dosyasına aşağıdaki kodları eklemeniz yeterli olacaktır;
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
Apache web sunucularında Gzip sıkıştırma
Yukarıdaki kod Apache’de çalışacaktır. Ancak bazı servisler üzerinde yukarıdaki kod çalışmamaktadır. Bu gibi durumda .htaccess dosyanız’dan kaldırın ve bunun yerine aşağıdaki kodu kullanabilirsiniz.
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
Yukarıdaki kod Apache’de çalışacaktır. Ancak bazı servisler üzerinde yukarıdaki kod çalışmamaktadır. Bu gibi durumda .htaccess dosyanız’dan kaldırın ve bunun yerine aşağıdaki kodu kullanabilirsiniz.
<IfModule mod_deflate.c>
# Compress HTML, CSS, JavaScript, Text, XML and fonts
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE font/opentype
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
# Remove browser bugs (only needed for really old browsers)
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent
</IfModule>
Header set Connection keep-alive
## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresDefault "access plus 2 days"
</IfModule>
## EXPIRES CACHING ##
NGINX web sunucularında Gzip sıkıştırma
NGINX’te sıkıştırmayı etkinleştirmek için config dosyasına aşağıdaki kodu eklemeniz ggerekiyor.
gzip on;
gzip_comp_level 2;
gzip_http_version 1.0;
gzip_proxied any;
gzip_min_length 1100;
gzip_buffers 16 8k;
gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
# Disable for IE < 6 because there are some known problems
gzip_disable "MSIE [1-6].(?!.*SV1)";
# Add a vary header for downstream proxies to avoid sending cached gzipped files to IE6
gzip_vary on;
Gzip sıkıştırma, sıkıştırılmış verilerin sunucudan tarayıcıya aktarılması işlemidir. Bu süreç, web sayfalarının daha hızlı yüklenmesini sağlayarak kullanıcı deneyimini iyileştirir. Gzip sıkıştırma genellikle metin tabanlı verileri (HTML, CSS, JavaScript gibi) etkili bir şekilde sıkıştırmak için kullanılır.
Web sitenizin sunucusu Gzip sıkıştırmayı destekliyorsa, tarayıcı sunucudan gelen veri isteği üzerine sıkıştırılmış bir yanıt alır. Tarayıcı, bu sıkıştırılmış veriyi çözer ve sayfa içeriğini normal şekilde görüntüler. Bu süreç, kullanıcının sayfayı daha hızlı yüklemesini ve daha iyi bir deneyim yaşamasını sağlar.
Gzip sıkıştırma aynı zamanda bant genişliği kullanımını azaltır. Sıkıştırılmış veri, daha az veri transferi gerektirdiği için sunucunun ve ağın yükünü azaltır. Bu da hem sunucu hem de ziyaretçi tarafında daha hızlı yükleme süreleri anlamına gelir.
Gzip sıkıştırma etkinleştirmek genellikle sunucu tarafında yapılan bir ayarlamadır. Örneğin, Apache sunucusu kullanıyorsanız, “.htaccess” dosyanıza aşağıdaki kodu ekleyerek Gzip sıkıştırmayı etkinleştirebilirsiniz:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
</IfModule>
Nginx sunucusu kullanıyorsanız, aşağıdaki gibi bir yapılandırma eklemek işe yarayabilir:
gzip on;
gzip_types text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript;
Ancak, Gzip sıkıştırmayı etkinleştirmeden önce sunucunuzun bu özelliği desteklediğinden emin olmanız gerekmektedir. Ayrıca, bazı dosya türleri için sıkıştırmayı etkinleştirmenin sayfa performansını artırabileceğini, ancak diğer dosya türleri için performansı olumsuz etkileyebileceğini unutmayın. Bu nedenle, testler yaparak en iyi sonuçları elde etmek önemlidir.
Leave a reply