Salah satu bentuk dukungan pemilik web terhadap para pengaksesnya adalah : mempermudah proses pembukaan web. Mempermudah itu dapat berarti banyak hal:
- Mengaktifkan tampilan yang responsif terhadap lebar layar dan jenis media
- Memperingan load web, selain cepat diakses juga mengurangi pemborosan quota selular pengakses
Memperingan muatan web dapat dilakukan dengan cara mengatur konten yang dimuat pertama kali, mengatur size gambar, mengurangi banyaknya script dan lain sebagainya. Namun ada satu fitur penting dalam web server yang dapat memperingan pengakses adalah adanya fitur DEFLATE atau GZIP. Yaitu fitur kompresi dokumen. Dengan fitur kompresi ini, dokumen yang dimuat oleh webserver akan dikompresi lebih dahulu sebelum dikirim ke browser pengakses. Setelah sampai di browser pengakses, akan diekstrak dan ditampilkan dalam keadaan normal.
Dukungan Browser
Untuk keperluan gzip dan deflate, maka browser haruslah lebih dulu melakukan request data yang juga bersifat gzip atau deflate. Pada umumnya browser jaman sekarang akan melakukan request kompresi data. Jika server mendukung kompresi data, namun browser tidak melakukan request kompresi data, maka data yang akan diberikan juga tidak akan bersifat terkompresi.
Dukungan Server
Untuk keperluan kompresi data, maka webserver perlu diberikan modul kompresi data. Berikut pada bagian bawah ini sedikit share untuk aktivasi kompresi data untuk jenis webserver Nginx dan Apache.
1. Ubuntu, Debian, SuSE
Aktivasi jenis linux ini dilakukan dengan menambahkan perintah berikut:
sudo a2enmod deflate sudo service apache2 restart
2. CentOS
cd /usr/local/src wget https://archive.apache.org/dist/httpd/httpd-2.2.19.tar.gz tar -xzvf httpd-2.2.19.tar.gz cd httpd-2.2.19/modules/filters sudo apxs -i -c -Wl,lz mod_deflate.c
Dan menambahkan pada /etc/httpd/conf/httpd.conf
LoadModule deflate_module modules/mod_deflate.so 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 BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.[0678] no-gzip BrowserMatch \bMSIE\s7 !no-gzip !gzip-only-text/html BrowserMatch \bOpera !no-gzip Header append Vary User-Agent DeflateCompressionLevel 9
Dan restart/refresh webservernya
service httpd restart
3. Nginx
Pada umumnya gzip sudah dibawa oleh nginx dalam instalasi standardnya. Admin tinggal melakukan pendefinisian di dalam documentRoot.
.htaccess
Bagi para pemilik web yang sudah terlanjur menggunakan webhosting, dimana kita tidak mungkin lagi melakukan modifikasi webserver, dapat diberikan langkah berikut melalui penambahan file .htaccess. Pada .htaccess Apache dapat ditambahkan seperti berikut:
AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript
Sedangkan pada nginx dapat dilakukan penambahan seperti berikut:
gzip_http_version 1.1; gzip_vary on; gzip_comp_level 6; gzip_proxied any; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript text/x-js; gzip_disable "msie6";
Cara Testing
Testing gzip/deflate dapat dilakukan dengan beberapa cara, antara lain:
- Testing dari sisi client
- Testing secara online
- Testing secara online terhadap keseluruhan web
Testing dari sisi client
Testing dari sisi client dapat dilakukan dengan perintah bash linux:
curl -I -H 'Accept-Encoding: gzip' https://blogit.bimosaurus.com
atau
curl -I --compressed https://blogit.bimosaurus.com
Hasilnya kira-kira seperti berikut:
HTTP/1.1 200 OK Date: Wed, 24 Jun 2015 06:10:55 GMT Server: Apache/2.2.15 (CentOS) X-Powered-By: PHP/5.3.3 Cache-Control: max-age=2592000 Expires: Fri, 24 Jul 2015 06:10:55 GMT Vary: Accept-Encoding Content-Encoding: gzip Content-Length: 20 Connection: close Content-Type: text/html; charset=UTF-8
Vary: Accept-Encoding menunjukkan bahwa browser melakukan request format tergzip. Sedangkan Content-Encoding: gzip adalah menunjukkan bahwa halaman index dalam situs bimosaurus.com telah dalam keadaan terkompresi. Namun tidak serta merta seluruh dokumen dalam situs tersebut dalam keadaan terkompresi. Oleh karena itu kita dapat memeriksa satu sample file pendukung lain semisal adalah styles.css
curl -I --compressed https://blogit.bimosaurus.com/wp-content/plugins/crayon-syntax-highlighter/css/min/crayon.min.css?ver=2.4.1
Testing Online
Proses testing dapat juga dilakukan dari situs luar seperti misal : http://www.whatsmyip.org/http-compression-test/
Testing keseluruhan
Beberapa situs yang sering digunakan antara lain:
http://www.websiteoptimization.com/services/analyze/
http://tools.pingdom.com/fpt/
http://www.webpagetest.org/
https://developers.google.com/speed/pagespeed/?csw=1
http://yslow.org/
Sekian, semoga berguna
tuturial yang panjang di atas bisa gak yah kalo di aplikasikan ke domain blogspot ??
mohon pencerahanya saya newbanget… makasih