Saat membuka halaman website (blog), sebenarnya Anda meminta browser (e.g. Google Chrome / Firefox) untuk menampilkan file /index.html (secara default merupakan heavy file). Sebelum menampilkannya, browser terlebih dahulu request file /index.html ke web server website Anda agar mengirim file /index.html tersebut.
Terkait setting G-Zip Encoding untuk mempercepat loading laman web dan untuk memperbaiki SEO (Search Engine Optimization), kerjasama Server dan Browser punya rumus simpel, yaitu :
Smaller file = faster download = happy user.
KIta dapat mengatur setting web server dengan mengubah heavy file /index.html yang size terlalu besar dengan mengubahnya ke file ZIP. Jika web server bisa mengirim file zip. Ke browser (index.html.zip), MAKA akan menghemat bandwidth dan waktu download. Browser bisa lakukan download file zip, mengekstrak, lalu menunjukkan ke user browser dan memuat webpage tersebut lebih cepat.
Percakapan antara Browser dengan Web Server saat request file /index.html yang dikompresss (diubah ke file ZIP) kurang lebihnya seperti terlihat di bawah ini :
- BROWSER : Hei! Bisakah saya dapatkan /index.html? Saya ingin versi compres jika Anda bisa lakukan.
- SERVER : Coba saya lihat. Yup! Ini dia. Anda ingin compressed version? Ini dia, keren!.
- SERVER : Saya telah temukan /index.html, dan kini saya jadikan file zip dan kirimkan ke Anda.
- BROWSER : Great! Bagus! Ukuran file zip menjadi hanya 10KB. Saya akan unzip dan menunjukkannya ke pengguna saya.
Bagaimana Cara Setting G-Zip Encoding?
Kita sebagai User tidak dapat mengkontrol Browser, namu user dapat mengkonfigurasi Web Server terkait dengan content file ZIP, sehingga browser bisa mengatasi speed loading, menghemat bandwidth untuk semua orang HINGGA blog kita memberikan ke user rasa senang dan good user experience.
Jika menggunakan Web Server IIS, Anda perlu mengaktifkan kompresi dalam pengaturan.
-
Pengguna Web Server Apache memungkinkan kompresi output cukup mudah. Tambahkan baris berikut ke file .htaccess dalam web server Anda :
# compress text, html, javascript, css, xml:
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
# Or, compress certain file types by extension:
<files *.html>
SetOutputFilter DEFLATE
</files>
Web Server Apache memiliki 2 opsi metode kompresi HTTP :
- mod_deflate, opsi set up standard yang lebih mudah.
- mod_gzip, opsi lebih powerful: Anda dapat melakukan pre-compress content.
Dibandingkan dengan mod_deflate, mod_gzip memberikan rasio kompresi HTTP yang lebih besar. Artinya mod_gzip lebih baik daripada mod_deflate.
Mod_gzip secara otomatis bekerja pada server apache. Mod_gzip menghemat bandwidth dengan cara mengkompresi bodi respon HTTP sebelum dikirimkan ke BROWSER. Rata-rata browser modern bisa membaca respon yang terkompresi. Perbandingan jumlah request teks (HTML, txt, js, css) dan gambar (gif, jpg, swf) untuk sebuah situs tipikal adalah 1:1 hingga 1:3, dan gzip dapat mengkompresi teks hingga 50%-80%. Maka pengiritan trafik outgoing web yang diperoleh rata-rata bisa berkisar antara 10%–35%. Dan total penghematan bandwidth yang diperoleh antara 4%–15%.
Agar deflate (perampingan) heavy file /index.html berlangsung cepat dan bekerja, gunakan opsi mod_gzip. Apache juga memeriksa apakah browser mengirimkan "Accept-encoding" header dan mengembalikan versi kompresi ataupun versi reguler dari file.
Bagaimana jika kita tidak dapat mengubah (memodifikasi) file .htaccess?
Jika Anda tidak dapat mengubah file htaccess., Anda dapat menggunakan PHP. Gunakan PHP untuk mengembalikan compressed content. Berikan file HTML dengan .php extension, dengan menambahkan kode berikut ini di bagian atas file HTML Anda :
<?php if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) ob_start("ob_gzhandler"); else ob_start(); ?>
Syarat-syarat untuk dapat menggunakan metode kompresi HTTP di atas adalah browser dan server harus mendukung. Khusus untuk mod_gzip, PHP yang digunakan harus versi 4.0.6 hingga terbaru. Untuk dapat mengetahui versi PHP pada server yang kita gunakan, buat sebuah file php (contoh: info.php), kemudian ketikkan kode berikut:
<?php
phpinfo ();
?>
Kemudian simpan dan uploadlah file tersebut ke root direktori wordpress. Kemudian buka file tersebut melalui browser yang kita gunakan. Contoh: http://nama-domain.com/info.php Disini akan terlihat informasi lengkap PHP yang ada di server. Kita bisa mencari fitur-fitur yang terintegrasi di dalamnya.
Verify Your Compression
Setelah melakukan konfigurasi web server, silahkan periksa untuk memastikan ada compressed content.
- Online : GUNAKAN online gzip test untuk memeriksa apakah halaman web Anda telah compressed.
- Pada browser : GUNAKAN Web Developer Toolbar >> Information >> View Document Size UNTUK melihat apakah halaman web Anda telah compressed.
- View the headers : GUNAKAN Live HTTP Headers UNTUK memeriksa response. Carilah baris yang berisi frase "Content-encoding: gzip".
Hasilnya sangat mengagumkan! Misalnya, ukuran (size) instacalc homepage dapat menyusut ukurannya dari 36kb ke 10kb, atau penyusutan ukuran sampai 75%.
Try Some Examples
Untuk dicoba, bukalah downloadable example:
- index.html - No explicit compression (pada server ini digunakan compression by default ).
- index.htm - Explicitly compressed with Apache. File .htaccess menggunakan .htm sebagai rule
- index.php - Explicitly compressed using the PHP header
Jangan ragu untuk men-download contoh-contoh file di atas. Tempatkan mereka pada server Anda dan tweak pengaturan.
PERINGATAN
HTTP Compression tidak selalu bekerja baik dan menyenangkan karena masalah ini :
- Older browsers sering ada trouble terkait dengan compressed content.
- Already-compressed content : Image, musik dan video telah compressed. Jangan buang-buang waktu mengkompres lagi. Anda hanya perlu kompres untuk “the big 3" (HTML, CSS and Javascript).
- CPU-load
Mengkompres content on-the-fly menggunakan waktu CPU dan menghemat bandwidth. Biasanya ini adalah tradeoff yang besar mengingat kecepatan kompresi. Ada cara untuk pra-kompres content statis dan mengirimkan versi terkompresi. Hal ini memerlukan konfigurasi lebih. Menggunakan siklus CPU untuk pengalaman user yang lebih cepat adalah layak, mengingat rentang perhatian yang pendek di web.
Mengaktifkan kompresi adalah salah satu cara tercepat untuk meningkatkan kinerja situs Anda. Lakukan dan biarkan pengguna Anda menikmati manfaat sebagai user-experience yang baik.
Related Post : Mengatur G-Zip Encoding untuk percepat Speed Loading
Source : How To Optimize Your Site With GZIP Compression
0 comments:
Post a Comment