web server

Pengertian Web Server, Cara Kerja dan Contohnya

Posted on

 Web Server adalah perangkat lunak (software) pada sebuah server  yang berperan untuk menerima permintaan (request) data melalui protokol HTTP, HTTPS dan WebSocket, kemudian mengirimkan data atau berkas kepada klien dalam bentuk HTML pada umumnya.

Protokol yang sering kita jumpai pada penggunaan web server adalah HTTP dan HTTPS. Namun, pada perkembangan website yang semakin modern dan aneka fitur, WebSocket juga banyak dipakai untuk aplikasi Live Chat atau Push Notification yang bersifat Real Time.

Klien yang dimaksudkan disini pada umumnya adalah web browser seperti Google Chrome, Mozilla Firefox, Safari, Internet Explorer, ataupun Opera. Namun, istilah klien bagi para software enginer atau programmer bisa juga aplikasi crawler atau scraper seperti Wget dan Curl yang sering dipakai untuk mengambil data dari sebuah website.

Sebagaimana istilah klien bagi para sysadmin, software enginer atau programmer, data yang dikirimkan dari web server kepada klien tidak hanya berupa HTML, namun ada juga yang berbentuk XML, maupun JSON. Kedua format ini banyak digunakan oleh API (Aplication Programming Interface).

Berkas – berkas yang di transfer bisa berupa teks, video, gambar, file, dan masih banyak lagi yang lain.

Baca Juga: Apa Itu Hosting dan Tips Memilih Hosting yang Bagus

Cara Kerja Web Server

Sederhananya, alur cara kerjanya adalah Klien meminta data, Web Server mengolah data, Web Server mengirim data. Ayo kita bedah satu per satu alur kerja diatas.

  • Klien Meminta Data

Klien, bisa berupa web browser, atau aplikasi crawler (Wget, Curl) meminta data kepada Web Server melalui alamat IP atau URL. Biasanya, web server yang bersifat publik akan menerima data dari URL untuk alasan keamanan, biar website tidak diretas, scaling up web server dengan load balancer lebih mudah ataupun perubahan DNS tidak mempengaruhi fungsi web server.

  • Web Server Mengolah Data

Permintaan dari Klien diteruskan oleh web server kepada aplikasi web sesuai  dengan URL atau alamat IP yang diminta. Dari aplikasi web akan memberikan data kepada web server. Kemudian, web server meneruskan datanya kepada klien.

Perlu diketahui bahwa aplikasi web dan web server ini berbeda. Misal, pembaca memiliki website dengan CMS WordPress dan web server Apache. Apache ini adalah web server, sedangkan WordPress adalah aplikasi web. Nah, ketika klien mengetikkan website pembaca, maka yang pertama kali melalukan respon adalah web server, kemudian web server meneruskannya kepada WordPress. WordPress mengolah data, kemudian diberikan kepada web server untuk meneruskannya.

Mungkin muncul pertanyaan, “Kalau seperti ini, berarti aplikasi web / web appplication lah yang mengolah data, bukan Web Server. Iya kan?”.

Pertanyaan ini ada benarnya, tetapi data yang diolah oleh web server ini adalah respon dari data yang diberikan oleh WordPress itu ada / berhasil, data tidak ditemukan, atau wordpress tidak dapat mengolah data tersebut. Kita bahas respon data ini pada tahap berikutnya.

  • Web Server Mengirim Data

Pengiriman data dari web server kepada klien ini adalah Data + Responnya. Respon yang penulis maksud disini adalah HTTP Status code 200, 403, 404, 500, dan sebagainya.

Baca Juga:   Pengertian, Fungsi, dan Macam-Macam Database yang Harus Anda Ketahui

Untuk lebih jelasnya mengenai HTTP Status Code bisa dilihat di Wikipedia. Pada artikel ini, penulis hanya memberikan beberapa HTTP Status Code yang sering muncul.

200 OK : Server berhasil mengolah data.

301 Moved Permanently : halaman website atau URI yang kita minta telah di redirect.

400 Bad Request : Server tidak bisa atau tidak akan memproses respon karena kesalahan klien. Error ini sering muncul ketika kita mengupload berhasil ke server dengan ukuran yang sangat besar menurut server atau ukurannya melebihi batas yang diwajibkan oleh server.

403 Forbidden : Server menolak request. Kode ini muncul jika kita mengakses sesuatu yang tidak diperbolehkan server seperti mengakses berhasil di server sekaligus, melihat direktori server, dll.

404 Not Found : Respon yang paling sering ditemui jika tidak dapat menemukan request / permintaan kepada server.

500 Internal Server Error : Bagi sysadmin, software enginer ataupun programmer pasti sering mendapatkan respon ini jika kodingan atau konfigurasi server ada yang salah.

Kode-kode ini dan data permintaan yang nantinya dikirim oleh Web Server kepada Klien.

Contoh Web Server

Ada banyak jenis web server yang dipakai karena memiliki fungsi dan kelebihan masing-masing. Pada artikel kali ini, penulis hanya memberikan beberapa web server yang populer digunakan.

  • XAMPP

XAMPP adalah aplikasi open source yang mendukung banyak sistem operasi (multi platform) dan banyak digunakan oleh developer karena sudah lengkap. di dalam XAMPP terdapat Web server Apache, bahasa pemrograman PHP dan Perl, database MySQL dan MariaDB, PHPMyadmin dan masih banyak lagi.

XAMPP cocok digunakan pada tahap development, tetapi penulis tidak merekomendasikan penggunaan XAMPP pada proses production karena XAMPP Lack of Memory. Memory (RAM) yang dibutuhkan untuk melakukan satu request dari klien cukup menyita memory.

  • Apache

Apache web server

Apache adalah aplikasi web server yang bersifat open source yang kini banyak digunakan di internet karena konfigurasi yang mudah. Apache dapat dijalankan di sistem operasi yang populer seperti Windows, Linux, Unix, BSD, dan lain-lain.

Pada awalnya, apache merupakan perangkat lunak sebagai alternatif Netscape. Sejak April 1996, Apache menjadi server web terpopuler di Internet. Pada Mei 1999, Apache digunakan di 57% dari semua web di seluruh dunia. Pada November 20005, presentasi ini naik menjadi 71%. (sumber: Netcraft Web Server Survey, November 2005).

Nama Apache berasala dari sebuah server web populer yang dikembangkan pada awal tahun 1995 yang bernama NCSA HTTPd 1.3 mimiliki sejumlah perubahan besar terhadap kode sumber (patch). Karena terlalu banyaknya patch pada perangkat lunak tersebut sehingga disebut sebah server yang memiliki banyak patch (“a patchy” server). Tetapi pada halaman FAQ situs web resminya, kata “Apache” dipilih untuk menghormati suku asli Indian Amerika Apache, yang dikenal karena keahlian dan strategi perangnya.

Apache cocok digunakan bagi anda yang butuh konfigurasi yang mudah dan cepat, namun sayangnya memori yang digunakan juga besar. Jika anda tidak terlalu penting dengan memori yang digunakan, maka Apache bisa menjadi pilihan bagi web server anda.

  • Nginx

nginx

Nginx adalah web server terpopuler kedua setelah Apache yang juga bersifat open source. Nginx ditulis oleh seorang warna negara Rusia yang bernama Igor Sysoev pada tahun 20002 dan dirilis ke publik pada tahun 2004. Nginx terkenal karena stabil, memiliki performa tinggi dan minim mengonsumsi sumber daya (memory).

Baca Juga:   Cara Memperkuat Sinyal WiFi 100% Efektif

Bagi pembaca yang memiliki website dengan trafik tinggi bisa menggunakan Nginx sebagai web server daripada Apache untuk mengatasi masalah sumber daya. Namun, menurut penulis, konfigurasi Nginx sedikit lebih sulit daripada Apache. Tetapi kalau sudah terbiasa ya mudah sebenarnya, hehe.

Contoh Website – website besar yang menggunakan Nginx sebagai core web server mereka adalah WordPress, Github, Sourceforge, sedangkan Website-website di Indonesia yang pakai Nginx adalah Bukalapak, Tokopedia, Lazada, dan masih banyak lagi. Untuk Lazada mengkombinasikan Nginx dan Apache, jadi tidak pure hanya Nginx.

  • LiteSpeed

LiteSpeed Web Server (LSWS) adalah web server pengganti Apache (kebanyakan code nya merupakan optimasi dari Apache) dengan high performance. Banyak fitur LiteSpeed yang serupa dengan apache seperti mod_rewrite, htaccess, mod_security.

Pada halaman websitenya, LiteSpeed dapat meningkatkan kinerja dan stabilitas karena konsumsi minimal memori dan penggunaan CPU. Pada hasil banchmark LiteSpeed dan Apache, LiteSpeed memiliki kecepatan 6 kali dibandingkan dengan Apache.

LiteSpeed juga dapat menahan serangan DDOS Attack yang banyak ditakuti pemilik website, namun DDOS ini hanya berskala kecil – menengah saja. Meskipun begitu, LiteSpeed juga patut diperhitungkan dari segi keuntungan atau manfaat yang diberikan.

LiteSpeed ada yang gratis, ada pula yang berbayar. Yang membedakan antara yang gratis dan berbayar tentunya fitur dan optimasi yang diberikan oleh LiteSpeed.

Lalu, Web Server manakah yang bagus?

benchmark nginx vs apache vs litespeed

Jika kita melakukan benchmark pada kondisi yang hanya melakukan instalasi masing-masing web server yang gratis dan open source (bukan yang berbayar) tanpa menambahkan module apapun, maka OpenLiteSpeed (LiteSpeed yang gratis) mengungguli Nginx maupun Apache. Namun jika kita lihat performa maksimal dari setiap web server (web server + module penjunjang), maka Nginx menjadi nomor satu diikuti Apache.

Opini dari penulis (jika diperbolehkan, he), maka penulis mensarankan kepada pembaca untuk menggunakan Nginx karena performa yang tinggi dan Scale Up yang mudah. Kedua, pilihan jatuh pada OpenLiteSpeed (LiteSpeed yang gratis) karena performa diatas Apache. Terakhir, gunakan Apache jika memang ini pilihan terakhir.

Nginx menjadi pilihan penulis karena pada skala trafik kecil, menengah, maupun tinggi, Nginx masih stabil dalam menghandle request.

OpenLiteSpeed cocok untuk traffic kecil dan menengah, namun tidak disarankan untuk trafik tinggi karena Scale Up yang kurang bagus jika menggunakan Multi Server (Grid, Cloud, ataupun Distributed Server).

Apache menjadi pilihan ketiga karena terlalu makan banyak sumber daya, baik itu memori maupun CPU.

Selain web server diatas, masih banyak pula web server yang bagus seperti Cowboy (Kelebihannya pada concurency), IIS (milik Microsoft), Sun, Google (Google punya web server juga lho, 😀 ), Oracle HTTP Server dan masih banyak yang lain.

Seorang Software Engineer yang belajar menulis, SEO dan hal-hal lain di dunia IT.

One thought on “Pengertian Web Server, Cara Kerja dan Contohnya

Leave a Reply

Your email address will not be published. Required fields are marked *