Analisis Transfer Rate View HTTP Versi 1.1 dan HTTP Versi 2
Artikel Ilmiah
Peneliti: Suadarma Putra Sanjaya Engku (672010128) Dian W. Chandra, S.Kom., M.Cs.
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Salatiga 2015
Analisis Transfer Rate View HTTP Versi 1.1 dan HTTP Versi 2 Artikel Ilmiah
Diajukan kepada Fakultas Teknologi Informasi untuk memperoleh gelar Sarjana Komputer
Peneliti: Suadarma Putra Sanjaya Engku (672010128) Dian W. Chandra, S.Kom., M.Cs.
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Salatiga 2015
Analisis Transfer Rate View HTTP Versi 1.1 dan HTTP Versi 2 1)
Suadarma Putra Sanjaya Engku, 2) Dian W. Chandra Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Jl. Diponegoro 52-60, Salatiga 50711, Indonesia 1) Email:
[email protected], 2)
[email protected]
Abstract Hypertext Transfer Protocol (HTTP) is an application layer network protocol used for distributed information systems, collaborative, and using hypermedia. Web technology has evolved rapidly over the last 25 years with CSS, Javascript and video so as to make the website look more attractive and interactive. But technology is not much developed web protocols. HTTP/2 is the latest generation web protocol that has just unveiled its standards by the IETF. In this study conducted a comparative analysis of the speed of transfer rate from the web server to the browser via the two protocols are HTTP /1.1 and HTTP/2. The results of this study indicate that the HTTP/2 is faster than HTTP /1.1 in terms of transfer rate, it is affected by one of them, namely server push. Their server push helps reduce the wait time experienced by the browser. At the time the browser requests a page html, server reply by sending the html page, then the server set up multiple resources further. So that when the browser to request the latter to request a resource that is required by the html page, the server is set up in advance. Keywords: HTTP/1.1, HTTP/2, Server Push, Transfer Rate
Abstrak Hypertext Transfer Protocol (HTTP) adalah sebuah protokol jaringan lapisan aplikasi yang digunakan untuk sistem informasi terdistribusi, kolaboratif, dan menggunakan hipermedia. Teknologi web sudah berkembang pesat selama 25 tahun terakhir dengan adanya CSS, Javascript dan video sehingga membuat tampilan website menjadi lebih menarik dan interaktif. Akan tetapi teknologi protokol web tidak banyak berkembang. HTTP/2 adalah protokol web generasi terbaru yang baru saja diresmikan standard-nya oleh IETF. Pada penelitian ini dilakukan analisis perbandingan kecepatan transfer rate dari web server ke browser melalui dua protokol yaitu HTTP 1.1 dan HTTP/2. Hasil dari penelitian ini menunjukkan bahwa HTTP/2 lebih cepat dari HTTP/1.1 dalam hal transfer rate, hal ini dipengarui oleh salah satunya, yaitu server push. Adanya server push membantu mengurangi waktu tunggu yang dialami oleh browser. Pada saat browser meminta halaman html, server membalas dengan mengirimkan halaman html tersebut, kemudian server menyiapkan resource-resource selanjutnya. Sehingga ketika browser melakukan request yang kedua untuk meminta sebuah resource yang diperlukan oleh halaman html, server sudah menyiapkan terlebih dahulu. Kata Kunci: HTTP/1.1, HTTP/2, Server Push, Transfer Rate 1)
Mahasiswa Program Studi Teknik Informatika, Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana 2) Staf Pengajar Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana.
1.
Pendahuluan
Jaringan komputer dan internet mempermudah proses pertukaran informasi. Hypertext Transfer Protocol (HTTP) adalah sebuah protokol jaringan lapisan aplikasi yang digunakan untuk sistem informasi terdistribusi, kolaboratif, dan menggunakan hipermedia. Penggunaannya banyak pada pengambilan sumber daya yang saling terhubung dengan tautan, yang disebut dengan dokumen hiperteks, yang kemudian membentuk World Wide Web. Teknologi web sudah berkembang pesat selama 25 tahun terakhir dengan adanya CSS, Javascript dan video sehingga membuat tampilan website menjadi lebih menarik dan interaktif. Akan tetapi teknologi protokol web tidak banyak berkembang. Protokol HTTP/1.1 yang paling banyak dipakai saat ini dirilis pada tahun 1999 dan sudah ketinggalan jaman. Ini menyebabkan loading website interaktif semakin lama semakin lambat dan membuat banyak developer web frustrasi. Berbagai teknik dikembangkan seperti kompresi HTML, CSS, Javascript, caching, dll. Tapi semua itu hanya membuat repot dan tidak banyak membantu. Lambatnya website semakin terasa, apalagi saat diakses melalui handphone/mobile yang koneksi Internet-nya cenderung tidak stabil. HTTP/2 adalah protokol web generasi terbaru yang baru saja diresmikan standarnya oleh IETF. Tujuan utama dibuat HTTP/2 adalah memperbaiki kelemahan yang ada di HTTP/1.1 dan membantu website bisa dimuat lebih cepat dan juga lebih aman. Kelemahan pada HTTP/1.1 salah satunya yaitu ketika browser meminta halaman, server akan mengirimkan dokumen HTML, dan kemudian perlu menunggu browser untuk mengurai dokumen HTML dan menerbitkan request untuk semua aset tertanam, sebelum server dapat mulai mengirim JavaScript, gambar dan CSS. Teknologi server push pada HTTP/2 memungkinkan server untuk menghindari perputaran ini dengan cara "mendorong" aset-aset tersebut dari server ke klien [1]. Pada penelitian ini dilakukan analisis perbandingan transfer rate dari web server ke browser melalui dua protokol yaitu HTTP/1.1 dan HTTP/2. Analisis dilakukan pada lingkungan terisolasi, yaitu menggunakan virtual machine (VirtualBox). 2.
Tinjauan Pustaka
Salah satu penelitian yang menjadi acuan untuk menganalisis transfer rate adalah penelitian oleh Setyawan [2]. Penelitian ini bertujuan untuk menganalisa dan membandingkan kecepatan transfer rate dan sumber daya cpu, memory yang terpakai pada protokol FTP dan FTPS serta mengetahui dari sisi kelebihan dan kekurang keamanan kedua protokol tersebut. Melihat perbedaan protokol FTP dan FTPS pada server yang telah dibangun, peneliti menyediakan 5 (lima) buah klien untuk uji coba, kabel UTP dan switch. 5 (lima) buah klien tersebut akan mentransfer data secara bersamaan. Komputer server FTP dan FTPS menggunakan processor core i3, memory 2 Gigabyte dan hardisk 80 Gigabyte.
1
Perangkat lunak menggunakan Sistem Operasi Debian 7.4, Proftpd versi 1.3.4 sebagai service dan OpenSSL versi 1.0.1, coreftp 2.2, wireshark 1.12.0 serta didukung command linux yaitu top untuk melihat informasi seberapa besar sumber daya yang digunakan pada cpu dan memory. Hasil penelitian bahwa menunjukkan protokol FTP lebih cepat dalam mentransfer data dibandingkan dengan protokol FTPS. Penggunaan sumber daya CPU dan memory terlihat sama. Saat transfer data protokol FTPS tidak begitu cepat akan tetapi dalam hal keamanan user dan password tidak mampu disadap oleh aplikasi wireshark. Penelitian Setyawan dengan penelitian sekarang sama-sama menganalisis kecepatan transfer rate pada protokol yang memiliki fungsi yang sama. Setyawan membandingkan protokol FTP dengan protokol FTPS. Penggunaan SSL pada FTP sehingga menjadi FTPS, memberikan efek pada menurunnya kecepatan transfer rate, dibandingkan dengan FTP biasa. Pada penelitian sekarang, memiliki perbedaa yaitu, yang dibandingkan adalah dua protokol yaitu HTTP 1.1 dengan HTTP/2. Goldberg melakukan perbandingan antara HTTP dengan HTTPS [3]. Penelitian tersebut membandingkan kinerja komunikasi web terenkripsi dan nonenkripsi. Penelitian tersebut menyajikan pengukuran pada enkripsi web yang paling banyak digunakan yaitu Secure HyperText Transport Protocol (HTTPS) pada Secure Sockets Layer (SSL) versi 3.0 dengan enkripsi 40 bit dan 128 bit RC4. Enkripsi meningkatkan waktu respon sampai dengan 22%, dari dua Web server, Netscape Enterprise Server 3.5.1 dan Microsoft IIS 4.0. Perbedaan penelitian Goldberg dengan penelitian saat ini ada pada obyek analisis. Goldberg membandingkan HTTP 1.1 dengan HTTPS (SSL pada HTTP 1.1). Penelitian sekarang membandingkan HTTP 1.1 dengan HTTP/2. Pada kedua protokol tersebut dikonfigurasi untuk menggunakan SSL. Chowdhury, Sapra, dan Hindle [4] melakukan penelitian untuk membandingkan konsumsi energi oleh pengguna perangkat mobile dalam hal mengakses HTTP/1.1 dan HTTP/2. Pengguna perangkat mobile mulai menunjukkan peningkatan dalam mengakses Internet, yang merupakan kegiatan yang membutuhkan energi dan biaya yang mahal. Penelitian tersebut memberikan kesimpulan yaitu HTTP/2 mengkonsumsi energi lebih rendah dari pada HTTP/1.1. Hal ini dikarenakan karena RTT (round trip time) pada HTTP/2 lebih sedikit daripada HTTP/1.1. RTT adalah waktu yang diperlukan oleh browser untuk meminta resource ke server, ditambah waktu oleh server untuk mengirim resource yang diminta, ke browser. Penelitian tesebut juga menyebutkan bahwa adanya server push membantu mengurangi RTT (latency). Penelitian Chowdhury, Sapra dan Hindle memiliki kesamaan dengan penelitian sekarang, dalam hal menganalisis perbedaan HTTP/1.1 dengan HTTP/2. Perbedaan dengan penelitian ini, yaitu pada penelitian Chowdhury, dibahas mengenai konsumsi energi pada perangkat mobile untuk mengakses kedua protokol tersebut. Pada penelitian ini, dianalisis pada sisi transfer rate. Berdasarkan penelitian-penelitian yang telah dilakukan mengenai perbandingan protokol transfer rate secure dan non-secure, perbandingan HTTP
2
secure dan non-secure, dan penelitian tentang HTTP/2, maka dilakukan penelitian mengenai perbandingan HTTP 1.1 dengan HTTP/2. Perbandingan dilakukan pada kecepatan transfer rate dan pada teknologi server push yang ada pada HTTP/2. HTTP /2 adalah versi berikutnya dari HTTP dan didasarkan pada Google SPDY, yang dirancang untuk mempercepat loading halaman web dan pengalaman browsing. HTTP/2 adalah standar baru dan akan mengambil alih protokol HTTP1.1 yang saat ini digunakan oleh sebagian besar situs di internet. HTTP /2 adalah protokol yang lebih modern yang bisa meningkatkan kecepatan browsing web dengan menggunakan cara-cara baru transportasi data antara browser dan server di internet. HTTP/2 kompatibel dengan HTTP1.1 dan menggunakan sebagian besar teknologi yang sama, tetapi lebih efisien dan memungkinkan server untuk merespon dengan lebih banyak konten daripada yang diminta, menghilangkan kebutuhan komputer pengguna terus mengirim permintaan informasi lebih lanjut sampai situs benar-benar ditampilkan [1]. 3.
Metode dan Perancangan Sistem
Penelitian yang dilakukan, diselesaikan melalui tahapan metode PPDIOO yang dikembangkan oleh Cisco System [5]. Siklus hidup metode PPDIOO ditunjukkan pada Gambar 1. Tahap pertama: yaitu melakukan analisis masalah dan mengumpulkan literature. Pada tahap awal ini, ditentukan masalah yang dianalisis. Pada penelitian ini, secara garis besar, masalah yang diteliti adalah: (1) Bagaimana membangun server HTTP/1.1 dan HTTP/2 yang menyediakan fitur Server Push. (2) Bagaimana HTTP/1.1 dan HTTP/2 Server Push bekerja; (3) Apa kelebihan fitur Server Push yang dapat dirasakan bagi pengembang web maupun pengguna web. Penelitian-penelitian terdahulu yang dicari harus dapat menjadi acuan bagi penelitian ini. Penelitian terdahulu diharapkan dapat memberikan panduan, hal yang perlu, maupun tidak perlu dilakukan dalam melakukan analisis HTTP/2.
Gambar 1 Siklus PPDIOO
Tahap Kedua: merupakan tahapan dilakukan analisa kebutuhan hardware dan software yang diperlukan dalam penelitian Pada server, selain diinstal web
3
server, perlu juga diinstal SSL, yang akan digunakan pada HTTPS. Fitur ini diperlukan untuk mengaktifkan layanan HTTP/2. Sistem yang dirancang memiliki kebutuhan yang terbagi menjadi kebutuhan perangkat keras, dan kebutuhan perangkat lunak. Tabel 1 Kebutuhan Perangkat Keras Perangkat Keras
No
Fungsi
Jumlah
1
Web Server
Komputer Server
1
2
Client PC
Komputer Desktop/Laptop yang terkoneksi ke Server
1
2
Tabel 2 Kebutuhan Perangkat Lunak Server Fungsi Software Web Server dengan dukungan LiteSpeed Web Server HTTP/2 5.0 SSL OpenSSL
3
Sistem Operasi
No 1
Ubuntu Server 15 Tabel 3 Kebutuhan Perangkat Lunak Client Software
No
Fungsi
1
Browser
Mozilla Firefox 43.0 Google Chrome 47.0
2
Software Analisis
Process Explorer
3
Sistem Operasi
Windows 7
Perangkat keras yang digunakan yaitu 1 PC yang berfungsi sebagai Server, dan 1 PC yang berfungsi sebagai client. Server akan menggunakan sistem operasi Ubuntu Server 15. Ubuntu Server lebih ringan dari pada Ubuntu Desktop, karena tidak adanya GUI. Sehingga tidak membutuhkan ruang instalasi dan memori kerja yang besar. Ubuntu dipilih karena open source, dan memiliki dokumentasi yang baik. Web server yang pilih harus mendukung HTTP 1.1 dan HTTP/2, mudah diinstal dan dikonfigurasi. Karena server yang digunakan adalah Linux Ubuntu, maka pilihan dipersempit pada web server yang dapat diinstal pada system operasi Linux. LiteSpeed dipilih karena menyediakan versi Standard Edition (free for private and commercial use). LiteSpeed mendukung bahasa pemrograman PHP. LiteSpeed dapat menggunakan httpd.conf dan .htaccess milik Apache, sehingga mempermudah proses migrasi dari web server Apache [6]. Browser yang digunakan adalah keseluruhan browser yang menjadi pilihan pada Tabel 3. Browser tersebut diinstal pada komputer client, dengan sistem operasi Windows 7.
4
Tahap ketiga merupakan langkah untuk merancang sistem. Sistem yang dirancang merupakan bentuk hubungan client-server. Rancangan arsitektur sistem ditunjukkan pada Gambar 2.
Gambar 2 Arsitektur Sistem
Tahap Keempat: yaitu mengimplementasikan rancangan yang telah dibuat di tahap dua ke dalam sebuah aplikasi/program sesuai kebutuhan sistem. Proses instalasi pada server dilakukan dengan tahapan yang dimulai dengan instalasi Ubuntu, kemudian instalasi LiteSpeed Web Server (LSWS). Setelah LSWS berhasil dijalankan, maka perlu dilakukan instalasi OpenSSL, dan fitur SSL pada LSWS perlu diaktifkan. Langkah mengaktifkan SSL pada LSWS disediakan pada webconsole. Selanjutnya adalah mengaktifkan HTTP/2, dilakukan juga melalui webconsole. Langkah terakhir adalah meletakkan file-file ujicoba pada folder $HOME yaitu di /usr/local/lsws/DEFAULT/web. Tahap Kelima: yaitu melakukan pengujian terhadap sistem yang telah dibuat, serta menganalisis hasil pengujian tersebut. Hasil analisis diharapkan dapat menjadi acuan dan pertimbangan dalam menggunakan HTTP/2 Server Push. Skenario pengujian dimulai dari mengaktifkan server. Jika web server diinstal dengan menggunakan user “root”, maka web server akan otomatis aktif ketika komputer server aktif. Jika web server diinstal dengan user bukan root, maka perlu diaktifkan dengan perintah: sudo ./usr/local/lsws/bin/lswsctrl start. Pada komputer client, diakses alamat web server dengan menggunakan browser Chrome dan Firefox. Contoh: http://192.168.0.102/web/forms.html. Kemudian dengan menggunakan menu “Developer tools (Ctrl + Shift + i)” dilakukan analisis kecepatan transfer file yang terjadi dari client ke web server dan sebaliknya. Tahap keenam: yaitu melakukan optimasi terhadap hasil implementasi. Optimasi dilakukan berdasarkan pengujian yang dilakukan. 4.
Hasil dan Pembahasan
Pada bagian ini dijelaskan tentang hasil penelitian yang telah dilakukan. Pengujian dilakukan dengan cara memasang suatu website yang menggunakan resources CSS dan JavaScript. Kemudian website tersebut diakses melalui HTTP 1.1 dan HTTP/2. Pada setiap akses, dicatat waktu transfer rate yang diterima pada browser. Browser yang digunakan untuk pengujian adalah Mozilla Firefox dan Google Chrome. Sesuai dengan draft spesifikasi HTTP/2 [7], semua webserver yang mengimplemetasikan HTTP/2 diharuskan untuk menggunakn TLS versi 1.2
5
keatas. TLS (Transport Layer Security) adalah penerus dari SSL, dan pada umumnya dianggap sebagai ‘SSL’ [8]. Proses instalasi SSL memerlukan private key dan certificate, ditunjukkan pada Gambar 3.
Gambar 3 Menentukan file Private key dan Certificate
Gambar 4 Mengaktifkan SSL
Karena TLS digunakan pada fitur HTTP/2 maka, untuk mengakses HTTP/2 dilakukan melalui port 443, yaitu HTTPS. Semua browser saat ini yang mendukung HTTP/2, mewajibkan adanya fitur enkripsi [9] (IETF HTTP Working Group, 2015). Setelah instalasi SSL, maka dapat diaktifkan fitur HTTPS. Secara default port yang digunakan adalah 443.
Gambar 5 Mengaktifkan HTTP/2
Pada komputer client diinstal browser Mozilla Firefox dan Google Chrome. Proses pengujian dilakukan bergantian, HTTP 1.1 dengan browser Mozilla Firefox.
6
Gambar 6 Halaman web yang digunakan sebagai pengujian
Gambar 7 Struktur direktori web yang digunakan sebagai pengujian
Pengujian pertama dilakukan dengan menggunakan browser Mozilla Firefox. Analisis dilakukan dengan menggunakan fitur “Developer Tool” (Gambar 8). Penggunaan analisis transfer rate dengan menggunakan Developer Tool, secara otomatis menon-aktifkan “cache” pada browser.
Gambar 8 Network Monitor HTTP 1.1 pada Mozilla Firefox
Resources diambil dari server dengan urutan sesuai dengan yang tertulis pada dokumen html. Setelah dokumen index.html, yang didorong (push) dari server adalah dengan urutan: (1) bootstrap.min.css; (2) font-awesome.min.css; (3) local.css; (4) jquery-1.10.2.min.js; dan (5) bootstrap.min.js. Urutan tersebut terjadi karena resource diambil dari server urut sesuai dengan baris perintah yang terdapat di dalam tag .
7
Gambar 9 Header pada Mozilla Firefox untuk HTTP 1.1
Pada Gambar 9, ditampilkan informasi yaitu jenis content text/html, panjang data (content-length) 4001 byte (3.91 KB). Format encoding yaitu gzip, dengan arti bahwa content dikompresi dengan algoritma gzip. Pada header tersebut juga ditampilkan informasi mengenai versi protocol, yaitu HTTP/1.1. Analisis transfer rate dari web server ke browser dilakukan sebanyak 30 kali, dengan menggunakan Developer Tool seperti ditunjukan pada Gambar 10. Hasil pengujian ditunjukkan pada Tabel 4. S berarti Send, W berarti Waiting, dan R berarti Receiving.
Gambar 10 Kecepatan Transfer Pada Browser
Gambar 11 Penggunaan Memori oleh Firefox dalam Mengakses HTTP 1.1
8
Firefox menggunakan memory (Gambar 11) sebesar 132.276 KB untuk mengakses web dalam protokol HTTP/1.1. Website yang sama kemudian diakses melalui protokol HTTP/2 dengan browser Mozilla Firefox. Hasil analisis melalui Network Monitor pada Firefox ditunjukkan pada Gambar 12.
Gambar 12 HTTP/2 pada Mozilla Firefox
Gambar 13 Header pada Mozilla Firefox untuk HTTP/2
Gambar 13 menunjukkan header untuk website dengan protocol HTTP/2. Versi protocol yang ditunjukkan pada gambar tersebut yaitu HTTP/2.0. Analisis transfer rate dari web server ke browser dilakukan sebanyak 30 kali dengan menggunakan developer tool (Gambar 14). Hasil pengujian ditunjukkan pada Tabel 4.
Gambar 14 Kecepatan Transfer Pada Browser
9
Gambar 15 Penggunaan Memory oleh Mozila Firefox untuk Mengakses HTTP/2
Firefox menggunakan memory sebesar 125.416 KB untuk mengakses web dalam protokol HTTP/2. Lebih kecil dari pada protokol HTTP 1.1 Tabel 4 Ringkasan Rata-rata Waktu Transfer Mozilla Firefox No
File
Send (ms)
HTTP 1.1 Waiting (ms)
Receive (ms)
Send (ms)
HTTP/2 Waiting (ms)
Receive (ms)
4.53
3.60
1.
Index.html
38.50
17.50
16.47
28.77
2.
Bootstrap.min.css
1.27
19.70
21.40
1.20
8.17
5.63
3.
Font-awesome.min.css
14.97
22.77
23.63
1.10
12.33
5.07
4.
Local.css
15.53
23.87
23.70
1.23
12.13
3.87
5.
Jquery-1.10.2.min.js
16.70
27.37
22.20
1.33
14.33
4.57
6.
Bootstrap.min.js
16.43
30.43
18.83
1.40
18.03
3.50
Pada Tabel 4, ditunjukkan bahwa waktu Send pada HTTP/2 lebih kecil dari pada HTTP 1.1. Hal ini dikarenakan resource-resource tersebut (selain index.html), didorong oleh server, bahkan sebelum client (browser) meminta resource tersebut. Proses ini hanya terjadi pada HTTP/2 karena adanya teknologi server push [10]. Server push juga membantu mengurangi waktu tunggu server, karena server tidak perlu menunggu request dari browser untuk mengirimkan resource [4]. Receive time pada HTTP/2 juga menurun nilainya, hal ini disebabkan karena adanya teknologi header compression [4]. Pengujian kedua dilakukan dengan menggunakan browser Chrome. Analisis dilakukan dengan menggunakan fitur “Developer Tool” (Gambar 16).
Gambar 16 Kecepatan Transfer Pada Browser
10
Gambar 17 Penggunaan Memory oleh Google Chrome untuk Mengakses HTTP 1.1
Chrome menggunakan memory sebesar 109.216 KB untuk mengakses web dalam protokol HTTP 1.1.
Gambar 18 HTTP/2 pada Chrome
Gambar 19 Kecepatan Transfer Pada Browser
Gambar 20 Penggunaan Memory oleh Chrome untuk Mengakses HTTP/2
11
Chrome menggunakan memory sebesar 98168 KB untuk mengakses web dalam protokol HTTP/2. Lebih kecil dari pada protokol HTTP 1.1 (109150 KB), dan lebih kecil dari pada Mozilla Firefox secara keseluruhan. Tabel 5 Ringkasan Rata-rata Waktu Transfer Google Chrome No
File
Send (ms)
HTTP 1.1 Waiting (ms)
Receive (ms)
Send (ms)
HTTP/2 Waiting (ms)
Receive (ms)
1.
Index.html
0.34
16.09
3.59
0.16
4.30
2.33
2.
Bootstrap.min.css
0.22
17.41
11.31
0.17
6.77
5.47
3.
Font-awesome.min.css
0.23
20.85
11.75
0.20
11.40
4.98
4.
Local.css
0.21
19.68
13.46
0.18
11.87
3.77
5.
Jquery-1.10.2.min.js
0.22
21.81
13.78
0.22
13.76
4.41
6.
Bootstrap.min.js
0.25
22.34
8.83
0.20
17.95
2.74
Pada Tabel 5, seperti halnya yang terjadi pada browser Mozilla Firefox, pada Google Chrome ditunjukkan bahwa waktu Send pada HTTP/2 lebih kecil dari pada HTTP/1.1. Hal ini dikarenakan resource-resource tersebut (selain index.html), telah disiapkan oleh server, setelah browser meminta file index.html. Proses ini hanya terjadi pada HTTP/2 karena adanya teknologi server push [10]. Server push juga membantu mengurangi waktu tunggu server, karena ketika browser meminta sebuah resource, server sudah mempersiapkannya terlebih dahulu [4]. Receive time pada HTTP/2 juga menurun nilainya, hal ini disebabkan karena adanya teknologi header compression [4]. Browser
Server
Meminta index.html
Mencari file index.html
Menampilkan index.html
Mengirimkan file index.html
Meminta file bootstrap.min.css
Mencari file bootstrap.min.cssl
Menampilkan bootstrap.min.css
Mengirimkan file bootstrap.min.css
Meminta file Fontawesome.min.css
Mencari file Fontawesome.min.css
Menampilkan file Fontawesome.min.css
Mengirimkan file Fontawesome.min.css
dst
Gambar 21 Langkah request dari browser dan response dari server pada HTTP/1.1
12
Browser
Server
Meminta index.html
Mencari file index.html
Menampilkan index.html
Menyiapkan file Bootstrap.min.css Font-awesome.min.css Local.css Jquery-1.10.2.min.js Bootstrap.min.js
Mengirimkan file index.html
Meminta file bootstrap.min.css Menampilkan bootstrap.min.css
Mengirimkan file bootstrap.min.css
Meminta file Fontawesome.min.css Meminta file Fontawesome.min.css
Mengirimkan file Fontawesome.min.css
dst
Gambar 22 Langkah request dari browser dan response dari server pada HTTP/2
Gambar 21 dan Gambar 22 menunjukkan perbandingan pengambilan resource antara HTTP/1.1 dengan HTTP/2. Pada HTTP/2, setelah server mengirimkan index.html, server mempersiapkan file-file antrian yang selanjutnya akan diminta oleh browser. Sehingga ketika browser meminta pada server, server sudah siap dengan file yang akan dikirimkan selanjutnya. Proses ini membantu mengurangi waiting time pada server, yang dirasakan oleh browser. Pada perbandingan penggunaan memory (RAM). Chrome menunjukkan penggunaan memory yang lebih kecil dari pada Firefox. Versi kedua browser tersebut adalah Chrome Version 47.0.2526.111 dan Firefox 43.0.1. Sebelum versi 45, Chrome menggunakan memory yang cukup besar, lebih besar dari penggunaan memory oleh Firefox. Sejak versi 45, Chrome mampu menghemat sampai dengan 25% penggunaan memory [11]. Sehingga pada hasil pengujian perbandingan penggunaan memory, Chrome cenderung lebih kecil daripada Firefox. Tabel 6 Rata-rata kecepatan dan Efisiensi Protokol No
File
Google Chrome HTTP1.1
1. 2. 3. 4. 5. 6.
Index.html Bootstrap.min.css Font-awesome.min.css Local.css Jquery-1.10.2.min.js Bootstrap.min.js
20.01 28.93 32.83 33.34 35.80 31.42
HTTP/2 6.79 12.40 16.58 15.82 18.38 20.88
13
Mozilla Firefox
Efisiensi 66.07% 57.13% 49.50% 52.56% 48.65% 33.53%
HTTP1.1 72.47 42.37 61.37 63.10 66.27 65.70
HTTP/2 62.73 42.30 47.50 48.80 50.90 50.67
Efisiensi 13.43% 0.16% 22.60% 22.66% 23.19% 22.88%
Berdasarkan pengujian pada kedua browser, terjadi perbedaan urutan penampilan resource (Gambar 23) di Google Chrome, baik pada protocol HTTP/1.1 maupun HTTP/2. Sedangkan pada Mozilla Firefox, tidak terjadi demikian. Mozilla Firefox secara konsisten, menampilkan urutan resource yang diperoleh dari server. Pengujian dilakukan sebanyak 120 kali, terdiri dari 30 kali untuk Google Chrome pada HTTP/1.1, 30 kali untuk Google Chrome pada HTTP/2, 30 kali untuk Mozilla Firefox pada HTTP/1.1 dan 30 kali HTTP/2. Sehingga dapat disimpulkan bahwa urutan resource ini bukan dipengaruhi oleh server, namun merupakan perilaku browser.
Gambar 23 Urutan Penampilan Resource
Gambar 24 Urutan Resource yang didorong oleh Server
Resources diambil dari server dengan urutan berdasarkan resource mana yang dibutuhkan terlebih dahulu. Setelah dokumen index.html, yang didorong (push) dari server adalah dengan urutan ditunjukkan pada Tabel 7. Urutan 1
Tabel 7 Urutan Resource pada Mozilla Firefox File Penyebab Urutan bootstrap.min.css Digunakan oleh tag body (posisi baris 25).
14
2
bootstrap.min.js
Digunakan oleh button class=”navbar-toogle”, untuk memunculkan/menyembunyikan halaman navigasi (posisi baris 28).
3
fontawesome.min.css
Digunakan oleh tag
, (posisi baris 38).
4 5
jquery-1.10.2.min.js local.css
Digunakan untuk mendukung bootstrap.min.js Digunakan oleh
(posisi baris 91).
Urutan pengambilan resources seperti ditunjukkan pada Tabel 7, mempengaruhi proses render pada halaman web. Jika pada HTTP 1.1, halaman web dimuat dengan kerangka HTML terlebih dahulu, baru kemudian dihias dengan CSS setelah HTML selesai ditampilkan. Proses menghias yang dimaksud adalah pemberian warna, pengaturan bentuk tombol-tombol, dan efek tampilan yang lain. Pada HTTP/2, resources ini, salah satunya CSS, didorong oleh server ketika server mengenali bahwa resources tersebut segera dibutuhkan oleh HTML untuk mengatur tampilan web. Bedanya adalah resource tersebut didorong tanpa menunggu proses HTML selesai ditampilkan. 5.
Kesimpulan
Berdasarkan penelitian, pengujian dan analisis terhadap sistem, maka dapat diambil kesimpulan sebagai berikut: (1) HTTP/2 lebih cepat dari HTTP/1.1 dalam hal transfer rate, hal ini dipengarui oleh salah satunya, yaitu server push. Adanya server push membantu mengurangi waktu tunggu yang dialami oleh browser. Pada saat browser meminta halaman html, server membalas dengan mengirimkan halaman html tersebut, kemudian server menyiapkan resource-resource selanjutnya. Sehingga ketika browser melakukan request yang kedua untuk meminta sebuah resource yang diperlukan oleh halaman html, server sudah menyiapkan terlebih dahulu. Proses ini membantu mengurangi waktu request dari browser. (2) Browser Google Chrome menunjukkan performa yang lebih baik dari Mozilla Firefox baik pada HTTP 1.1 maupun HTTP/2. (3) Penggunaan HTTP/2, meningkatkan kecepatan untuk download HTML pada browser Chrome dengan kenaikan rata-rata 66.07%, sedangkan Firefox 13.43. Untuk file CSS,
15
Chrome naik sampai dengan 57.13%, sedangkan Firefox sampai dengan 22.66%. Untuk file JavaScript, Chrome naik sampai dengan 48.65%, dan Firefox sampai dengan 23.19%.
16
6.
Daftar Pustaka
[1].
IETF HTTP Working Group 2014. HTTP/2. https://http2.github.io/. Diakses pada 2 Desember 2015. [2]. Setyawan, A. B., Rahayu, A. & Sairin 2014. Analisis Perbandingan Performance dan Keamanan Pada FTP Dan FTPS. Teknik Informatika STMIK PalComTech Palembang [3]. Goldberg, A., Buff, R. & Schmitt, A. 1998. A comparison of HTTP and HTTPS performance. Computer Measurement Group, CMG98 [4]. Chowdhury, S. A., Sapra, V. & Hindle, A. 2015. Is HTTP/2 more energy efficient than HTTP/1.1 for mobile users? PeerJ PrePrints 3, e1571. [5]. Wilkins, S. 2011. Cisco’s PPDIOO Network Cycle. Cisco Press [6]. LiteSpeed Technologies Inc 2015. Replace Apache with LiteSpeed Web Server in 15 minutes. https://www.litespeedtech.com/index.php/products/litespeed-webserver/features/apache-drop-in-replacement. Diaskes 22 Oktorber 2015. [7]. Belshe, M., Thomson, M. & Peon, R. 2015. Hypertext transfer protocol version 2. https://tools.ietf.org/html/draft-ietf-httpbis-http2-01. Diakses 3 Desember 2015. [8]. Dierks, T. & Rescorla, E. 2008. RFC 5246 - The transport layer security (TLS) protocol - Version 1.2. In Network Working Group, IETF, pp. 1– 105. [9]. IETF HTTP Working Group 2015. Does HTTP/2 require encryption? https://http2.github.io/faq/#does-http2-require-encryption. Diakses pada 3 Desember 2015. [10]. Stenberg, D. 2014. HTTP2 explained. Computer Communication Review 44, 120–128. [11]. Gottsegen, G. 2015. Google Chrome Cuts Back on Memory Usage. http://www.wired.com/2015/09/google-chrome-cuts-back-memory-usage/. Diakses 6 Januari 2016.
17