Back-End Components
Komponen utama back-end
A. Back End Servers
Back end server adalah perangkat keras (hardware) dan sistem operasi (OS) yang menjalankan seluruh proses dan komponen aplikasi web dari sisi belakang (server-side). Inilah sistem nyata yang menjalankan logika, database, dan layanan utama dari aplikasi web.
Back end server umumnya berada dalam lapisan yang disebut Data Access Layer—yakni lapisan yang bertanggung jawab menangani komunikasi dengan data.
Komponen Software
Server back end biasanya menjalankan tiga komponen utama:
Web Server (misalnya: Apache, NGINX, IIS)
Database (misalnya: MySQL, PostgreSQL, MSSQL, Oracle)
Development Framework (misalnya: PHP, ASP.NET, Java, Python/Django)
Selain itu, server juga bisa menjalankan:
Hypervisor (untuk virtualisasi, seperti VMware, Hyper-V)
Container (seperti Docker)
Web Application Firewall (WAF) untuk proteksi dari serangan
Stack Kombinasi Umum
Berikut adalah beberapa kombinasi software stack yang populer di dunia pengembangan web:
Kombinasi
Komponen
LAMP
Linux
, Apache
, MySQL
, PHP
WAMP
Windows
, Apache
, MySQL
, PHP
WINS
Windows
, IIS
, .NET
, SQL Server
MAMP
macOS
, Apache
, MySQL
, PHP
XAMPP
Cross-platform, Apache
, MySQL
, PHP/Perl
Referensi: Solution Stack - Wikipedia
Komponen Hardware
Server back end juga mencakup komponen perangkat keras seperti:
CPU
RAM
Storage (HDD/SSD)
NIC (Network Interface Cards)
PSU (Power Supply Units)
Performa hardware sangat berpengaruh terhadap:
Kecepatan respon aplikasi
Stabilitas sistem
Kemampuan menangani banyak permintaan (scalability)
Arsitektur Skala Besar
Untuk aplikasi berskala besar, tidak cukup hanya satu server. Biasanya:
Beban aplikasi dibagi ke beberapa server back end
Digunakan arsitektur load balancing atau clustered server
Di-host di data center atau menggunakan cloud hosting seperti AWS, Azure, GCP
Menjalankan banyak virtual machine atau container (misalnya via Kubernetes)
Dengan model ini, aplikasi dapat:
Menangani lebih banyak pengguna secara bersamaan
Memiliki redundansi jika satu server gagal
Lebih fleksibel untuk scaling
B. Web Servers
Web server adalah aplikasi yang berjalan di sisi back end, bertugas menangani semua permintaan HTTP dari browser pengguna, mengarahkannya ke halaman atau resource yang diminta, dan kemudian mengirimkan respons kembali ke browser.
Web server biasanya berjalan di port TCP 80 (HTTP) atau 443 (HTTPS), dan menjadi perantara utama antara pengguna dan fungsionalitas aplikasi web di sisi server.
Cara Kerja (Workflow)
Web server menerima permintaan dari browser pengguna (request), memprosesnya, lalu memberikan respons berupa:
Kode status HTTP (seperti 200, 404, dll)
Data halaman (HTML, JSON, dsb)
File (gambar, video, dokumen, dll)
Beberapa kode status HTTP umum:
Kode
Deskripsi
✅ Respons Sukses
200 OK
Permintaan berhasil
🔁 Redirect (Pengalihan)
301
Alamat URL berubah permanen
302
Alamat URL berubah sementara
❌ Error dari Klien
400
Permintaan tidak valid
401
Belum login
403
Akses ditolak
404
Halaman tidak ditemukan
405
Metode HTTP tidak diizinkan
408
Waktu permintaan habis
💥 Error dari Server
500
Kesalahan internal server
502
Gateway menerima respons tidak valid
504
Gateway tidak merespons tepat waktu
Web server juga menangani berbagai jenis input pengguna, seperti:
Formulir
Data JSON (via API)
Upload file (binary)
Contoh Penggunaan curl
curl
Melihat header HTTP response:
curl -I https://academy.hackthebox.com
Melihat isi halaman:
curl https://academy.hackthebox.com
Jenis-Jenis Web Server
1. Apache HTTP Server
Web server paling populer, digunakan oleh >40% website di internet.
Umumnya digunakan bersama
PHP
, tapi juga bisa untukPython
,Perl
,.NET
, dll.Modul yang umum digunakan:
mod_php
,mod_rewrite
, dll.Open-source, stabil, mudah dikonfigurasi.
Cocok untuk: startup, website kecil-menengah.
Contoh perusahaan pengguna: |
Apple
|Adobe
|Baidu
|
2. Nginx
Fokus pada kinerja tinggi dan konkurensi tinggi (banyak request sekaligus).
Paling banyak digunakan untuk website dengan traffic besar.
Arsitektur asinkron, ringan, cepat.
Banyak digunakan sebagai reverse proxy atau load balancer.
Contoh perusahaan pengguna: |
Google
|Facebook
|Twitter
|Cisco
|Intel
|Netflix
|HackTheBox
|
3. IIS (Internet Information Services)
Buatan Microsoft, berjalan di Windows Server.
Cocok untuk aplikasi berbasis .NET dan integrasi Active Directory.
Mendukung
PHP
,FTP
, dan lainnya.Fitur: Windows Authentication, integrasi domain.
Contoh pengguna: |
Microsoft
|Office365
|Skype
|Stack Overflow
|Dell
|
4. Web Server Lainnya
Selain 3 besar di atas, ada juga:
Apache Tomcat – khusus untuk aplikasi berbasis Java Servlet/JSP
Node.js – digunakan untuk aplikasi JavaScript (biasanya dengan Express.js)
Caddy, LiteSpeed, OpenResty, dsb.
Kesimpulan
Web Server
Cocok Untuk
Kelebihan
Apache
Umum, aplikasi PHP
Mudah dikonfigurasi, banyak modul
NGINX
Website dengan traffic besar
Ringan, cepat, cocok untuk reverse proxy
IIS
Aplikasi Windows/.NET
Integrasi AD, manajemen via GUI
C. Databases
Database adalah sistem penyimpanan data yang digunakan oleh aplikasi web untuk menyimpan dan mengelola konten, data pengguna, dan aset aplikasi seperti file, gambar, postingan, dll. Dengan menggunakan database, aplikasi web bisa membuat konten yang dinamis dan spesifik untuk setiap pengguna.
Tujuan Penggunaan Database
Developer memilih database berdasarkan faktor seperti:
Kecepatan akses data
Kapasitas penyimpanan
Skalabilitas untuk pertumbuhan
Biaya operasional
Relational Database (SQL)
Relational Database menyimpan data dalam format tabel (table), yang terdiri dari baris (rows) dan kolom (columns). Masing-masing tabel bisa saling terhubung lewat key untuk membentuk hubungan antar data (schema).
Contoh:
Tabel
users
: menyimpanid
,username
,first_name
,last_name
Tabel
posts
: menyimpanpost_id
,user_id
,content
,date
Relasi antar tabel membuat query seperti: “Tampilkan semua postingan milik user dengan username X” menjadi sangat efisien.
Database Relational yang umum:
Tipe
Deskripsi
Paling populer, open-source, gratis
Buatan Microsoft, cocok untuk Windows/IIS
Kuat dan kompleks, tapi mahal
Gratis, open-source, sangat fleksibel dan extensible
Database lain: SQLite
, MariaDB
, Amazon Aurora
, Azure SQL
Non-Relational Database (NoSQL)
Tidak menggunakan struktur tabel/kolom. Ideal untuk:
Data tidak terstruktur
Fleksibilitas tinggi
Skala besar
Tipe penyimpanan:
Key-Value (mirip dictionary di Python)
Document-Based (JSON/XML)
Wide-Column
Graph
Contoh struktur JSON dari Key-Value:
{
"100001": {
"date": "01-01-2021",
"content": "Welcome to this web application."
}
}
Database NoSQL populer:
Tipe
Deskripsi
Document-based, JSON, sangat populer
Untuk indexing dan pencarian cepat
Cocok untuk high availability dan skala besar
Lainnya: Redis
, Neo4j
, CouchDB
, Amazon DynamoDB
Integrasi dengan Aplikasi Web
Semua framework modern (seperti Laravel, Express, Django) sudah menyediakan cara mudah untuk menghubungkan aplikasi ke database.
Contoh dasar PHP + MySQL:
$conn = new mysqli("localhost", "user", "pass");
$sql = "CREATE DATABASE database1";
$conn->query($sql);
Query dengan input pengguna:
$searchInput = $_POST['findUser'];
$query = "SELECT * FROM users WHERE name LIKE '%$searchInput%'";
$result = $conn->query($query);
Menampilkan hasil:
while($row = $result->fetch_assoc()){
echo $row["name"]."<br>";
}
Risiko Keamanan: SQL Injection
Jika input pengguna tidak disanitasi, kode seperti ini:
"SELECT * FROM users WHERE name LIKE '%$searchInput%'"
…bisa disusupi SQL Injection seperti:
' OR 1=1 --
Maka, filtering dan prepared statements sangat penting untuk mencegah serangan.
Pelajari lebih lanjut di: SQL Injection – OWASP
Last updated