Pada pengembangan aplikasi web, optimisasi performa sangat penting agar pengalaman pengguna tetap maksimal. Salah satu aspek yang sering terlewat adalah aktivasi ETag pada static assets seperti gambar, CSS, dan JavaScript. Banyak pengembang yang belum menyadari dampak dari tidak mengaktifkan ETag pada file statis.
ETag (Entity Tag) adalah mekanisme HTTP yang digunakan untuk mengidentifikasi versi tertentu dari sebuah file. ETag dihasilkan oleh server dan dikirim ke klien melalui header saat permintaan pertama dilakukan. Ketika klien membutuhkan file yang sama di masa mendatang, browser akan mengirimkan ETag ke server untuk memastikan apakah file tersebut sudah berubah atau belum.
Banyak website tidak mengaktifkan ETag secara default pada file statis. Akibatnya, setiap kali user mengakses situs, browser akan melakukan permintaan download ulang terhadap file-file statis meskipun file tersebut belum berubah.
Setiap file statis seperti gambar atau CSS akan diberi kode unik (ETag) oleh server. Saat browser meminta file:
If-None-Match beserta ETag ke server.
GET /assets/logo.png HTTP/1.1
If-None-Match: "abc123"
HTTP/1.1 304 Not Modified
Solusi terbaik adalah dengan mengaktifkan ETag pada file-file statis agar cache browser dapat bekerja optimal. Berikut langkah-langkah yang dapat Anda lakukan sesuai dengan jenis server yang digunakan:
Aktifkan ETag dengan menambahkan konfigurasi berikut pada .htaccess:
FileETag MTime Size
Dengan konfigurasi ini, ETag akan dihasilkan berdasarkan waktu modifikasi dan ukuran file.
Pada server Nginx, Anda dapat mengaktifkan ETag melalui konfigurasi:
etag on;
Pastikan baris tersebut berada dalam blok http atau server.
Express JS secara default sudah mengaktifkan ETag. Namun, Anda bisa mengontrol perilaku dengan:
const express = require("express");
const app = express();
app.set("etag", "strong"); // Pilihan: "weak", "strong", atau false
Dengan ini, setiap response akan memiliki ETag.
curl atau tool Network pada browser:
curl -I https://domain.com/assets/file.css
Perhatikan apakah header ETag muncul di response.
Tidak mengaktifkan ETag pada static assets merupakan kesalahan umum yang berdampak pada performa website. Dengan mengaktifkan ETag, Anda dapat memastikan bahwa browser hanya mendownload file saat terjadi perubahan, sehingga website tetap ringan dan cepat. Terapkan ETag segera pada file-file statis menggunakan metode yang sesuai dengan server Anda untuk optimisasi performa.