Server Push pada HTTP/2 di NGINX

Kali ini saya akan membahas salah satu fitur yang ada pada HTTP/2 yaitu server push. berdasarkan RFC 7540 Server Push merupakan fitur yang digunakan oleh server untuk mengirimkan statik konten yang diperlukan untuk membuat tampilan web sebelum client browser me-request konten tersebut. Fungsinya untuk mengurangi waktu tunggu saat melakukan request sebuah file. dapat dilihat pada gambar dibawah ini.

Gambar 1. komparasi server push dengan yang tidak menggunakan server push

pada gambar diatas menjelaskan jika menggunakan get biasa, pertama kali file html akan di-load lalu menyusul me-request file-file yang lain karena terdapat link yang ada di dalam file html tersebut. namun untuk server push, kita akan mendefinisikan file-file apa saja yang akan di-load jika kita me-request salah satu file html, saat server mengirimkan file html server juga akan mengirimkan file konten yang telah difenisikan tersebut.

saya akan beri contoh untuk penerapannya di NGINX 1.13.x

    server {
        listen       443 ssl http2;
        server_name  www.routecloud.net routecloud.net;

        ssl_certificate      a.pem;
        ssl_certificate_key  a.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            root   html;
            index  index.html index.htm;
        }

        location = /index-push.html {
            http2_push /css/calendar.css;
            http2_push /css/demo.css;
            http2_push /js/data.js;
            http2_push /jquery.min.js;
        }
    }

pada config diatas terdapat definisi untuk server push,  jika file index-push.html diakses maka server akan segera mengirimkan file calendar.css, demo.css, data.js, dan jquery.min.js. kita lihat menggunakan inspect element pada browser chrome.

Gambar 2. index.html(tidak menggunakan server push)

 

Gambar 3. index-push.html (menggunakan server push)

About the author
arisyi

Routecloud Networks

Information about Server, Linux and Computer Network.

Great! You’ve successfully signed up.

Welcome back! You've successfully signed in.

You've successfully subscribed to Routecloud Networks.

Success! Check your email for magic link to sign-in.

Success! Your billing info has been updated.

Your billing was not updated.