Server Side Includes (SSI) adalah bahasa skrip sisi server sederhana yang digunakan untuk menyisipkan konten dari satu file ke dalam file HTML lainnya sebelum dikirim ke browser pengguna. Mekanisme ini mengeksekusi instruksi khusus di level web server—seperti Apache atau Nginx—memungkinkan pengembang web mendaur ulang elemen berulang seperti navigasi header, footer, atau sidebar tanpa harus menulis ulang kode di setiap halaman.
Ketika klien meminta dokumen HTML yang mengandung direktif SSI, server membaca file tersebut baris demi baris, memproses perintah SSI yang ditemukan, menggabungkan konten eksternal yang dirujuk, lalu merender hasilnya sebagai satu halaman HTML utuh yang dikirim ke browser. Proses ini terjadi secara instan di sisi server, sehingga browser klien hanya menerima file HTML standar yang bersih tanpa mengetahui keberadaan direktif SSI di belakang layar.
Mekanisme Eksekusi Server Side Includes
Agar server mengenali dan memproses instruksi SSI, file biasanya harus memiliki ekstensi khusus (paling sering .shtml, .shtm, atau .stm) atau dikonfigurasi secara eksplisit pada pengaturan web server. Berikut adalah tabel matriks perbandingan antara pemrosesan file HTML biasa dan file ber-SSI:
| Fitur/Aspek | HTML Standar | Server Side Includes (SSI) |
|---|---|---|
| Eksekusi Konten | Dikirim langsung oleh server tanpa modifikasi. | Dipindai dan diproses oleh server sebelum dikirim. |
| Ekstensi File Umum | .html, .htm | .shtml, .shtm |
| Penggunaan Utama | Halaman statis independen. | Modularisasi komponen (header, footer, widget). |
| Beban Server | Sangat rendah. | Sedikit lebih tinggi karena proses parsing file. |
Direktif Utama Server Side Includes
SSI menggunakan format komentar HTML khusus yang diawali dengan <!--# dan diakhiri dengan -->. Berikut adalah sintaks dasar dan contoh kode nyata yang sering digunakan dalam pengembangan web:
<!--#include virtual="/includes/header.html" -->
<main>
<h1>Selamat Datang di Situs Kami</h1>
<p>Halaman ini menggunakan modul SSI untuk komponen modular.</p>
<p>Tanggal hari ini: <!--#echo var="DATE_LOCAL" --></p>
</main>
<!--#include virtual="/includes/footer.html" -->
Penjelasan Direktif Penting:
- include: Digunakan untuk menyisipkan isi file lain. Atribut
virtualmerujuk pada path relatif dari dokumen root server, sedangkanfilemerujuk pada path relatif dari direktori file saat ini. - echo: Menampilkan variabel lingkungan server, seperti tanggal saat ini (
DATE_LOCAL), alamat IP pengunjung (REMOTE_ADDR), atau nama file yang sedang diakses (DOCUMENT_NAME). - flastmod: Menampilkan tanggal dan waktu terakhir kali file yang ditentukan dimodifikasi.
- set: Mendefinisikan variabel kustom yang dapat digunakan kembali di dalam halaman yang sama.
Langkah Konfigurasi SSI pada Web Server
Jika server belum memproses perintah SSI, Anda harus mengaktifkannya secara manual melalui konfigurasi server. Berikut adalah langkah teknis untuk server Apache dan Nginx:
- Apache: Pastikan modul
include_moduleaktif. Tambahkan barisAddType text/html .shtmldanAddOutputFilter INCLUDES .shtmlke dalam file konfigurasi server atau file.htaccess. - Nginx: Nginx tidak memiliki modul SSI bawaan yang otomatis aktif untuk semua file. Anda perlu menambahkan direktori
ssi on;di dalam blok server atau blok location pada filenginx.conf. - Uji Coba: Buat file uji coba dengan ekstensi
.shtmlberisi perintah<!--#echo var="DATE_LOCAL" -->dan akses melalui browser untuk memastikan tanggal dan waktu tampil dengan benar.
Troubleshooting & Tips Lapangan
Masalah umum saat menggunakan SSI adalah halaman yang tidak memproses direktif dan menampilkan kode mentah begitu saja di browser. Hal ini biasanya disebabkan oleh ekstensi file yang masih .html alih-alih .shtml, atau web server belum diatur untuk mengizinkan parsing SSI. Selalu periksa error log pada server (Apache error log atau Nginx error log) jika file yang disisipkan tidak muncul atau menghasilkan pesan error [an error occurred while processing this directive].