Fungsi SHTML Pada Server Web & Cara Kerjanya

SHTML (Server Side Includes HTML) adalah format ekstensi file untuk halaman web yang memuat instruksi khusus yang dieksekusi oleh server web sebelum halaman tersebut dikirimkan ke peramban pengguna. Fungsi utama SHTML adalah memungkinkan modularisasi dokumen web—seperti menyisipkan file navigasi atau footer yang sama ke dalam banyak halaman—tanpa harus mengubah setiap file secara manual ketika ada pembaruan.

Meskipun teknologi ini telah ada jauh sebelum bahasa pemrograman dinamis seperti PHP mendominasi pembuatan situs web, SHTML masih sering digunakan pada peladen web berbasis Apache atau Nginx untuk situs berukuran kecil hingga menengah yang tidak memerlukan pengelolaan basis data yang kompleks.

Bagaimana SHTML Bekerja?

Ketika peramban meminta file berformat .shtml atau .stm, server web (seperti Apache dengan modul mod_include) tidak langsung mengirimkan file tersebut mentah-mentah. Server akan memindai isi file untuk mencari direktif khusus bernama SSI (Server Side Includes) yang diawali dengan format tag HTML komentar khusus.

Begitu server menemukan instruksi tersebut—misalnya perintah untuk menyisipkan file teks atau menampilkan tanggal modifikasi file—server akan mengeksekusi perintah tersebut secara internal, menggabungkannya menjadi dokumen HTML standar, lalu mengirimkan hasil akhirnya ke pengguna.

Tabel Perbandingan SHTML, HTML, dan PHP

Fitur HTML SHTML (SSI) PHP
Eksekusi Sisi Klien (Browser) Server Web Server Web
Manajemen Modul Tidak Ada (Manual) Sangat Dasar (Include file/tanggal) Sangat Kompleks (Modular, Database, API)
Beban Kinerja Server Sangat Ringan Ringan Sedang hingga Berat
Dukungan Modul Web Server Bawaan (Default) Memerlukan Aktivasi Modul (mod_include) Memerlukan PHP Processor

Sintaks Dasar dan Contoh Penggunaan SHTML

Instruksi SSI dituliskan di dalam komentar HTML agar tidak tampak di peramban jika diakses langsung sebagai file HTML biasa. Berikut adalah contoh sintaks umum yang sering digunakan:

<!--#include virtual="/header.html" -->
<h1>Selamat Datang di Situs Kami</h1>
<p>Halaman ini terakhir diperbarui pada: <!--#flastmod file="index.shtml" --></p>
<!--#include virtual="/footer.html" -->

Penjelasan fungsi dari elemen di atas:

  • #include virtual: Menyisipkan konten dari file lain (seperti header atau footer) secara dinamis.
  • #flastmod: Menampilkan informasi tanggal dan waktu terakhir kali file yang bersangkutan dimodifikasi di server.
  • #echo var="DATE_LOCAL": Menampilkan tanggal dan waktu lokal dari sistem server saat halaman dimuat.

Kelebihan dan Kekurangan Penggunaan SHTML

Sebelum memutuskan menggunakan SHTML pada peladen web, pertimbangkan aspek teknis berikut:

Kelebihan

  • Efisiensi Pemeliharaan: Perubahan pada bagian menu navigasi atau footer cukup dilakukan pada satu file sumber (misal: header.html), dan perubahan tersebut akan otomatis teraplikasi di seluruh halaman yang memanggilnya.
  • Kecepatan: Lebih cepat dibandingkan PHP karena tidak membutuhkan pemrosesan skrip yang rumit, cukup membaca dan menggabungkan file teks mentah.
  • Keamanan: Memiliki permukaan serangan (attack surface) yang jauh lebih kecil dibandingkan bahasa pemrograman seperti PHP atau Python.

Kekurangan

  • Keterbatasan Fitur: Tidak mendukung logika pemrograman tingkat lanjut, pengelolaan sesi (session), koneksi basis data (MySQL/PostgreSQL), atau pemrosesan formulir.
  • Konfigurasi Server: Membutuhkan pengaturan khusus pada peladen (seperti mengaktifkan AddHandler server-parsed .shtml di Apache) agar server mengenali dan memproses direktif SSI.

Cara Mengaktifkan SHTML di Apache Server

Jika server Apache Anda belum memproses file SHTML secara otomatis, Anda perlu menambahkan konfigurasi pada file .htaccess atau konfigurasi virtual host utama Anda:

AddType text/html .shtml
AddHandler server-parsed .shtml
Options +Includes

Dengan konfigurasi tersebut, server web akan membaca setiap file berformat .shtml dan mengeksekusi instruksi Server Side Includes yang terkandung di dalamnya sebelum merespons permintaan dari klien.