Extension .shtml adalah format file halaman web yang didukung oleh instruksi Server Side Includes (SSI). Berbeda dengan file HTML biasa (.html atau .htm) yang langsung dikirim apa adanya oleh server ke browser pengunjung, file .shtml diproses terlebih dahulu oleh web server (seperti Apache atau Nginx) sebelum ditampilkan.
Pemrosesan server-side ini memungkinkan pengembang web untuk menyisipkan konten dari file lain secara dinamisβmisalnya menyatukan satu file menu navigasi (header) atau footer yang sama ke dalam ratusan halaman web sekaligus. Cukup ubah satu file, maka seluruh halaman yang menggunakan SSI tersebut akan otomatis memperbarui tampilannya tanpa harus mengedit satu persatu.
Perbedaan Utama .shtml vs .html vs .php
Untuk memahami posisi .shtml dalam arsitektur pengembangan web, berikut adalah matriks perbandingan langsung dengan format file web standar lainnya:
| Parameter | .HTML / .HTM | .SHTML (SSI) | .PHP |
|---|---|---|---|
| Pemrosesan Server | Tidak ada (Static) | Ada, khusus instruksi SSI ringan | Ada, pemrosesan bahasa skrip penuh |
| Kecepatan Eksekusi | Sangat cepat | Cepat, sedikit di bawah .html | Tergantung kompleksitas kode PHP & Database |
| Koneksi Database | Tidak bisa | Tidak bisa (hanya manipulasi teks/file lokal) | Sangat optimal (MySQL, PostgreSQL, dll) |
| Tingkat Kesulitan | Sangat mudah | Mudah (cenderung usang) | Menengah ke atas |
| Penggunaan Ideal | Landing page statis sederhana | Situs statis butuh template modular sederhana | Dynamic web, WordPress, Sistem Informasi |
Sintaks Dasar Server Side Includes (SSI)
File .shtml bekerja karena di dalamnya disisipkan tag khusus berbasis komentar HTML yang dibaca oleh modul server. Berikut adalah contoh sintaks nyata untuk menyertakan file eksternal:
<!--#include virtual="/header.html" -->
<h1>Selamat Datang di Situs Kami</h1>
<p>Ini adalah konten utama halaman web.</p>
<!--#include virtual="/footer.html" -->
Perintah Umum SSI yang Sering Digunakan
- #include: Menyisipkan file lain (header, footer, sidebar) ke dalam dokumen.
- #echo: Menampilkan variabel server seperti tanggal, waktu, atau alamat IP pengunjung.
- #flastmod: Menampilkan tanggal terakhir kali file tersebut dimodifikasi.
- #exec: Menjalankan skrip CGI atau perintah sistem (sering dinonaktifkan demi keamanan server).
Kelebihan dan Kekurangan Penggunaan .shtml
Meskipun memiliki fungsi modularisasi yang praktis untuk situs tanpa database, format ini sudah jarang menjadi pilihan utama di era modern:
Kelebihan:
- Efisiensi Pemeliharaan: Perubahan pada elemen global (menu, footer, copyright) cukup dilakukan di satu file sumber.
- Lebih Cepat dari PHP: Untuk situs murni statis, SSI tidak memerlukan overhead manajemen database seperti MySQL.
- Kompatibilitas Luar Biasa: Didukung secara native oleh hampir semua web server Apache tanpa instalasi plugin tambahan.
Kekurangan:
- Ketinggalan Zaman: Sebagian besar fungsi .shtml kini telah digantikan oleh CMS modern (WordPress) atau teknologi Static Site Generator (Hugo, Jekyll, Gatsby).
- Minim Fleksibilitas: Tidak mendukung logika pemrograman kompleks, pengkondisian tingkat lanjut, atau koneksi basis data relasional.
- Beban Server Tambahan: Setiap file .shtml harus di-parsing oleh server, sedikit lebih boros sumber daya dibanding file .html murni.
Cara Mengaktifkan SSI di Web Server Apache
Jika server Anda belum mendukung file .shtml, modul include harus diaktifkan melalui konfigurasi server atau file .htaccess:
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
Options +Includes
Setelah pengaturan tersebut aktif, simpan kode HTML dengan ekstensi .shtml alih-alih .html, lalu akses melalui web server (localhost atau hosting aktif). File .shtml tidak akan berfungsi optimal jika dibuka langsung sebagai file lokal (file://) di browser tanpa perantara server web.