June 27, 2009 — Di pembahasan ini akan dijelaskan mengenai dua metode kompresi HTTP / HTTP compression yang umum digunakan yaitu menggunaka mod_gzip dan mod_deflate.. Mempercepat Loading WordPress dengan HTTP Compression diulas oleh rismaka pada June 27, 2009. Berikut ulasan selengkapnya.
Pada pembahasan yang telah lalu telah dijelaskan sedikit mengenai dua macam kompresi HTTP (HTTP compression) yang bisa dilakukan pada file CSS. Di situ dijelaskan mengenai cara mengkompres file CSS menjadi lebih kecil ukuran file-nya. Jika file CSS dapat kita mampatkan ukuran file-nya, maka file html pun dapat juga kita kompress dengan metode yang sama. Di pembahasan ini akan dijelaskan mengenai dua metode kompresi HTTP yang umum digunakan. Namun sebelumnya mari kita mengulas sedikit mengenai pentingnya kompresi terkait performa atau kecepatan loading suatu situs/blog.
Saat kita mengakses sebuah halaman website/blog, maka peramban akan mengirimkan permintaan kepada server tempat web tersebut berada. Server kemudian akan merespon permintaan peramban dan mulai mencari file-file yang dibutuhkan. Jika file-file yang dibutuhkan telah ketemu, maka server akan mengirimkan file-file tersebut ke peramban untuk ditampilkan pada pengguna.

Gambar 1. HTTP request dan Response tanpa kompresi
Katakanlah file tersebut berupa file HTML yang berukuran 100 KB. Setiap kali file html tersebut dicari oleh server dan kemudian dikirim ke peramban, di situ terdapat jeda waktu menunggu bagi peramban untuk dapat menerima file HTML itu. Semakin besar ukuran file HTML yang diunduh, maka semakin lama pula jeda waktu menunggu bagi peramban agar dapat mengunduh file HTML tersebut. Belum lagi waktu yang dibutuhkan untuk mengunduh file sebesar 100 KB, tentunya itu bukanlah hal yang efektif dan efisien.

Gambar 2. HTTP request dan Response dengan menggunakan kompresi
Berbeda halnya jika file HTML tersebut dikompres terlebih dahulu oleh server sebelum dikirim ke peramban. Peramban hanya akan menunggu sebentar saja sebelum mengunduh file HTML tersebut. Di samping itu karena file HTML-nya sudah dikompress oleh server, maka peramban pun tak perlu berlama-lama dalam mengunduhnya. Hasilnya? Kita dapat berselancar dengan nyaman menggunakan provider terlemot sekalipun semacam IM2 broom dan Smart :D (kenyamanan di sisi pengguna), dan menghemat bandwidth di sisi pemilik website/blog.
Saat ini terdapat dua macam metode kompresi HTTP yang umum digunakan, yaitu (1) mod_deflate dan (2) mod_gzip. Keduanya bekerja pada server apache. Dibandingkan dengan mod_deflate, mod_gzip memberikan rasio kompresi HTTP yang lebih besar. Artinya mod_gzip lebih baik daripada mod_deflate.
Syarat-syarat untuk dapat menggunakan metode kompresi HTTP di atas adalah peramban 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, buatlah sebuah file php (contoh: info.php), kemudian ketikkan kode snippet berikut:
<?php phpinfo(); ?>
Kemudian save. Uploadlah file tersebut ke server yang kita gunakan. Terserah dimanapun direktorinya. Kemudian panggil-lah melalui peramban yang kita gunakan. Contoh: http://nama-domain.com/direktori/info.php
Di situ akan terlihat informasi lengkap PHP yang ada di server. Kita bisa mencari fitur-fitur yang terintegrasi di dalamnya.
Beberapa macam metode kompresi yang umum digunakan
-
Kompresi HTTP menggunakan mod_deflate
Caranya adalah, cukup dengan menambahkan kode berikut pada file .htaccess di root direktori domain kita.
# kompress semua text dan html: AddOutputFilterByType DEFLATE text/html text/plain text/xml # atau kompress berdasarkan ekstensi file: <files *.html *.php *.css> SetOutputFilter DEFLATE </files>
-
Kompresi HTTP menggunakan mod_gzip
Caranya adalah dengan menambahkan kode snippet berikut di bagian paling atas file html:
< ?php ob_start( 'ob_gzhandler' ); ?>
atau:
< ?php if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) { ob_start("ob_gzhandler"); } else { ob_start(); } ?>Tambahkan/sisipkan salah satu kode tersebut di atas file HTML. Untuk pengguna WordPress, kode di atas bisa diletakkan di bagian paling atas header.php. Contohnya:
< ?php if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) { ob_start("ob_gzhandler"); } else { ob_start(); } ?> <!-- bagian paling atas header.php --> < !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>> </html>Perlu diperhatikan, bahwasanya penggunaan kode mod_gzip di atas YANG DISISIPKAN DI BAGIAN ATAS HEADER.PHP adalah khusus bagi pengguna theme yang sederhana (tanpa template halaman). Saya sudah pernah mengulas tentang cara membuat template halaman.
Jika kita memakai template halaman (page template), maka tidak direkomendasikan untuk menyisipkan kode mod_gzip di bagian header.php. Karena akan merusak kompresi. Solusinya adalah dengan menyisipkan kode mod_gzip tersebut pada file index.php, single.php, page.php, archive.php, 404.php, dan search.php, dan JANGAN SISIPKAN pada header.php. Contohnya:
< ?php if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) { ob_start("ob_gzhandler"); } else { ob_start(); } ?> <!-- Bagian atas file single.php --> < ?php get_header(); ?>Jika kita memakai template halaman, maka kode mod_gzip disisipkan dengan cara sebagai berikut:
< ?php if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) { ob_start("ob_gzhandler"); } else { ob_start(); } /* Template Name: Nama Template halaman */ ?>
Simpulan
Sangat direkomendasikan untuk mengompres halaman website/blog kita demi kenyamanan pengunjung. Tentunya kita senang seandainya blog kita terasa cepat jika diakses, bukan? Cara yang terbaik dan termudah untuk mengompress adalah dengan menggunakan mod_gzip. Mungkin anda ingin tahu perbandingan ukuran halaman sebelum dan sesudah dikompres. Untuk mengeceknya, silahkan cek situs/blog anda di online gzip test, atau dengan menggunakan addons firefox seperti Web Developer Toolbar dan Live HTTP Headers
Pingback: Menghemat Quota Bandwidth dengan HTTP Compression | m-alwi.com
Pingback: 20+ Tips Lengkap Optimasi WordPress
Pingback: Maintenance Web 12-5-2010 | Boyolali Web Desaign
Pingback: Plugin mempercepat Loading Wordpress | IDCC (dot) info
Pingback: tips membuat loading wordpress enteng dan cepat | indonesia Go Blog ger
Pingback: 3 Plugin Wordpress Pilihan Untuk Mengoptimalkan Loading Blog Wordpress Anda
Pingback: Mega Collection - Kumpulan Artikel Penting Mengenai Blogging dan Tips Menulis Berbahasa Indonesia Yang Wajib Anda Baca !
Pingback: Cara Mempercepat Loading Web/Blog Anda « Rahasia Otak
Pingback: Cara Mengoptimasi Kecepatan Loading Blog mengoptimasi kecepatan blog wordpress | meningkatkan loading blog wordpress | History Education – Renaissance
Pingback: 20+ Tips Lengkap Optimasi WordPress | Wayjar' Blog
Pingback: Cara Meningkatkan Kecepatan Blog | Dairy ku
Pingback: Http Compression | Blog