Apa Itu Web Server ???
1. Sejarah
Pada tahun 1989 Tim Berners-Lee
mengajukan proposal sebuah proyek pada tempatnya bekerja CERN ( European
Organization for Nuclear Research), proyek ini bertujuan untuk memudahkan para
ilmuan yang bekerja di CERN untuk bertukar informasi menggunakan sistem
hypertext. Sebagai hasil dari pelaksanaan proyek tersebut, Tim Berners-Lee
menulis dua program:
o
Sebuah Browser dengan nama WorldWideWeb
o
Program webserver pertama didunia yang berjalan diatas sistem NeXTSTEP
Antara tahun 1991 sampai 1994
teknologi sederhana dan efektif digunakan untuk berselancar dan bertukar data
melalui world wide web, telah dibantu pengembangannya untuk dapat berjalan
dibanyak sistem operasi dan menyebarkan penggunaannya ke segenap lapisan
masyarakat, pertama dimulai dikalangan ilmuan, kemudian di universitas
selanjutnya merambah dunia industri. Tahun 1994 Tim Berners-Lee memutuskan
untuk mendirikan konsorsium World Wide Web, yang bertujuan untuk mengatur
pengembangan selanjutnya dan penggunaan banyak teknologi (HTTP, HTML dll)
melalui stadarisasi proses. Saat ini perkembangan web site dan server telah
mengikut deret eksponensial.
2. Pengertian
Secara umum web server terbagi
menjadi dua tipe, yaitu web server secara offline atau local dan web server
secara online atau web server yang terkoneksi ke internet. Web server ini dapat
diartikan sebagai rumahnya web site. Setiap situs di yang ada di internet
pastilah berjalan di atas web server. Jadi peranan web server ini sangatlah
penting dalam pembuatan web site. Web server adalah Suatu Program Komputer yang
mempunyai tanggung jawab/tugas menerima permintaan HTTP dari komputer klien,
yang dikenal dengan nama web browser, dan melayani mereka dengan menyediakan
respon HTTP berupa konten data, biasanya berupa halaman web yang terdiri dari
dokumen HTML, dan objek yang terkait seperti gambar, dll. Dengan kata lain
software yang menjadi tulang belakang dari world wide web (www). Web server
menunggu permintaan dari client yang menggunakan browser seperti Netscape
Navigator, Internet Explorer, Modzilla, dan program browser lainnya.
Jika ada permintaan dari browser,
maka web server akan memproses permintaan itu kemudian memberikan hasil
prosesnya berupa data yang diinginkan kembali ke browser. Data ini mempunyai
format yang standar, disebut dengan format SGML (standar general markup
language). Data yang berupa format ini kemudian akan ditampilkan oleh browser
sesuai dengan kemampuan browser tersebut. Contohnya, bila data yang dikirim
berupa gambar, browser yang hanya mampu menampilkan teks (misalnya lynx) tidak
akan mampu menampilkan gambar tersebut, dan jika ada akan menampilkan
alternatifnya saja. Web server, untuk berkomunikasi dengan client-nya (web
browser) mempunyai protokol sendiri, yaitu HTTP (hypertext transfer protocol).
Dengan protokol ini, komunikasi antar web server dengan client-nya dapat saling
dimengerti dan lebih mudah. Seperti telah dijelaskan diatas, format data pada
world wide web adalah SGML. Tapi para pengguna internet saat ini lebih banyak
menggunakan format HTML (hypertext markup language) karena penggunaannya lebih
sederhana dan mudah dipelajari.
Kata HyperText mempunyai arti bahwa
seorang pengguna internet dengan web browsernya dapat membuka dan membaca
dokumendokumen yang ada dalam komputernya atau bahkan jauh tempatnya sekalipun.
Hal ini memberikan cita rasa dari suatu proses yang tridimensional, artinya
pengguna internet dapat membaca dari satu dokumen ke dokumen yang lain hanya
dengan mengklik beberapa bagian dari halaman-halaman dokumen (web) itu. Proses
yang dimulai dari permintaan webclient (browser), diterima web server,
diproses, dan dikembalikan hasil prosesnya oleh web server ke web client lagi
dilakukan secara transparan. Setiap orang dapat dengan mudah mengetahui apa
yang terjadi pada tiaptiap proses. Secara garis besarnya web server hanya
memproses semua masukan yang diperolehnya dari web clientnya pada umumnya
program webserver memiliki fitur-fitur dasar yang sama seperti :
a.
HTTP
: Setiap program web server bekerja dengan menerima permintaan HTTP dari klien,
dan memberikan respon HTTP ke klien tersebut. Respon HTTP biasanya mengandung
dokumen HTML tetapi dapat juga berupa berkas raw, gambar, dan berbagai jenis
dokumen lainnya. Jika terjadi kesalahan permintaan dari klien atau terjadi
masalah saat melayani klien maka web server akan mengirim respon kesalahan yang
dapat berupa dokumen HTML atau teks yang memberi penjelasan penyebab terjadinya
kesalahan.
b.
Logging
: Umumnya setiap web server mempunyai kemampuan untuk melakukan pencatatan/logging
terhadap informasi detil mengenai permintaan klien dan respon dari web server
dan disimpan dalam berkas log, dengan adanya berkas log ini maka akan
memudahkan web master untuk mendapat statistic dengan menggunakan tool log
analizer.
Pada
penggunaan sehari-hari banyak web server mengimplementasikan fitur-fitur berikut
:
·
Otentifikasi
: fitur untuk mengotorisasi suatu permintaan dari klien sebelum menggunakan
sumber daya yang dimiliki oleh web server (biasanya User dan Password)
·
Penanganan
konten statis (berkas tersimpan pada file sistem server) dan konten dinamis
dengan mendukung satu atau lebih antara muka yang sesuai (SSI, CGI, SCGI,
FastCGI, JSP, PHP, ASP, ASP.NET, Server API seperti NSAPI, ISAPI dsb).
·
Dukungan
HTTPS (dengan SSL, atau TSL) yang memungkinkan koneksi yang aman (dengan
enkripsi) ke server pada port 433 berbeda dengan koneksi HTTP biasa di port 80
· Kompresi
Konten (misal menggunakan enkoding gzip) untuk mengurangi waktu respon server
sehingga penggunaan pita data /Bandwith menjadi lebih hemat.
· Virtual
Hosting yang berguna untuk melayani banyak website hanya dengan menggunakan
satu alamat IP.
·
Dukungan
berkas berukuran besar, berfungsi untuk mendukung berkas yang memiliki ukuran
lebih dari 2 gigabyte
· Pengatur
Bandwith (Bandwith throttling) yang berfungsi untuk membatasi kecepatan respon
dengan tujuan tidak membanjiri jaringan dan menghemat pita data (bandwith) agar
dapat melayani klien lebih banyak.
3. Fungsi
Web Server
Jadi, selain berfungsi sebagai
komunikasi penghubung dengan situs web dan memproses HTTP request yang
dikirimkan oleh browser, secara umum beberapa fungsi web server adalah sebagai
berikut:
·
Memastikan
semua modul yang dibutuhkan tersedia dan
siap digunakan
·
Membersihkan
penyimpanan, cache, dan module yang tidak terpakai
·
Melakukan
pemeriksaan keamanan terhadap HTTP request yang dikirimkan browser
Namun, jika dipisahkan berdasarkan
pengertian web server sebagai hardware dan web server sebagai sofware, maka
fungsinya sebagai berikut :
Web Server Sebagai Hardware
Web
Server (untuk membedakannya saya gunakan awalan kapital) bertugas menjadi
tempat penyimpanan skrip, gambar, maupun
konten halaman website. Web Server harus dapat diakses dari seluruh wilayah
yang mempunyai koneksi internet.
Anda
bisa mendapatkan Web Server dari layanan penyedia hosting Indonesia terbaik
yang sesuai dengan kebutuhan. Ada beberapa persyaratan yang bisa menjadi
pertimbangan memilih penyedia layanan server hosting untuk website Anda. Server
harus cepat, mempunyai kapasitas penyimpanan yang besar, dan memiliki kapasitas
RAM yang memadai.
Web Server Sebagai Software
Selain
tempat penyimpanan, fungsi web server adalah sebagai perangkat lunak yang
melayani permintaan dari browser. Ada banyak web server yang saat ini tersedia,
salah satunya adalah Apache.
Produk Web Server
Selain
lima besar web server pada tabel di bawah ini, ada banyak sekali layanan yang
ditawarkan, antara lain Oracle Servers IBM, Servers, Gunicorn, Zope, Kestrel,
Jetty dan masih banyak lagi.
Keunggulan
Masing-masing Web Server
Daftar
berikut merupakan keunggulan dari lima besar web server yang digunakan di
seluruh dunia. Keunggulan yang kami coba bahas hanya sebagian saja. Masih
banyak keunggulan-keunggulan lain yang tidak bisa langsung kami bahas satu
persatu. Pada bagian ini tidak kami masukan untuk layanan Google Web Server,
dikarenakan layanan tersebut hanya digunakan khusus untuk layanan online milik
Google.
- Apache
- Pengaturan lebih mudah
- Open Source
- Komunitas yang besar
- NGINX
- Ringan
- Banyak fitur dan stabil
- Performa tinggi
- IIS
- IIS mendukung penuh pada
Windows
- Adanya kemampuan pengecekan
kesalahan
- Kerja menggunakan PHP lebih
stabil
- LiteSpeed Web Server
- Memiliki pencegahan DDoS
- Recover kesalahan secara
langsung
- Kompatibel dengan .htaccess
Setiap
web server mempunyai keunggulan masing-masing. Apache web server adalah layanan
web server yang saat ini paling populer digunakan. Apache atau terkadang
disebut dengan Apache Tomcat dengan dukungan pengembang open source dan
komunitasnya mampu menjadi raja dari web server lainnya. Selain dapat
disesuaikan dengan kebutuhan sistem, Apache dikenal kompatibel dengan berbagai
sistem karena memiliki banyak pilihan pengaturan.
Di
samping itu, NGINX dikenal memiliki performa tangguh dan juga ringan,
meskipun tidak sepopuler Apache. Hal ini mungkin dikarenakan kurangnya
dukungan komunitas.
Penerjemahan Path (Path
Transalation)
Server web
mengarahkan pennterjemahan komponen path kedalam URL (Uniform Resource Locator)
menuju :
·
Sumber
daya berkas sistem lokal jika permintaan bersifat statis.
·
Program
internal ataupun eksternal jika permintaan bersifat dinamis.
Untuk
permintaan bersifat statis maka URL yang diminta oleh klien diarahkan ke root direktori
web server. Perhatikan URL berikut yang diminta oleh klien :
Browser
web pada klien akan menterjemahkan koneksi ke www.example.com dengan
permintaan
HTTP 1.1 seperti berikut :
GET
/path/file.html HTTP/1.1
Host:
www.example.com
Server
Web www.example.com akan mencari path/alamat yang diberikan mulai dari root
direktori. Pada mesin unix biasanya di /var/www/htdocs. Hasil pada sistem local
adalah /var/www/htdocs/path/file.html
Server
akan mencari dan membaca berkas tersebut, jika berkas ada maka akan mengirimkan
jawaban ke browser klien. Respon yang diberikan akan menggambarkan isi konten
dari berkas itu sendiri.
Load Limit (Batas Beban)
Setiap
Server Web telah menentukan batas beban yang dapat ditanggung, sehingga setiap
server web mempunyai batasan jumlah klien yang terhubung pada satu waktu (umumnya
antara 2 s.d. 60.000, secara bawaan (default) maks 500 atau 1000). Kemampuan
ini bergantung pada :
·
Pengaturan
Server Web itu sendiri;
·
Jenis
permintaan HTTP;
·
Jenis
Konten (Statis atau dinamis);
·
Kondisi
konten di server dilakukan cache atau tidak;
·
Perangkat
Keras, perangkat Lunak serta sistem operasi yang digunakan.
Jika
server web sudah mendekati batas limit yang mampu ditangani maka server menjadi
kelebihan beban sehingga lambat dalam memberikan respon. Setiap saat server web
dapat saja mengalami kelebihan beban yang disebabkan :
a.
Terlalu
banyak koneksi (misalkan ada ribuan bahkan jutaan permintaan dari klien pada
jeda waktu yang singkat, seperti yang pernah terjadi pada Slashdot)
b.
Serangan
DDOS (Distribute Denial Of Services);
c.
Cacing
Komputer (Worm) yang dapat menyebabkan lalulintas data tidak wajar karena
banyaknya komputer yang terinfeksi;
d.
Virus
XSS dapat menyebabkan lalulintas data yang tinggi karena jutaan browser dan
server web yang terinfeksi;
e.
Internet
Web Robot, Lalu lintas data yang tidak difilter atau web server besar dengan
sumber daya yang terbatas misalnya pita data yang dimiliki kecil dsb;
f.
Internet
(network) Lambat, hal ini menyebabkan jawaban atas permintaan klien ke server
web melambat dan jumlah koneksi maksimum perwaktu jauh di bawah kemampuan
server web itu sendiri;
g.
Sebagian
Server Web dalam kondisi mati, Ini dapat terjadi jika ada keperluan yang
mendadak untuk perawatan/pembaharuan, kerusakan perangkat keras atau lunak,
back end (misalnya Database) gagal, dalam kondisi ini server web yang masih
bertugas mengalami kelebihan lalulintas data dan menjadi kelebihan beban.
Gejala Kelebihan Beban
Tanda-tanda
apabila server web mengalami kelebihan beban adalah :
a.
Lambatnya
respon terhadap permintaan dari klien (respon biasanya berkisar dari 1 s.d.
Ratusan detik);
b.
Muncul
pesan kesalahan 500, 502, 503, 504 HTTP Errors (Kadang-kadang juga muncul pesan
kesalahan 404 dan 408);
c.
Koneksi
TCP ditolak atau direset sebelum isi konten sampai ke klien;
d.
Hal
ini jarang terjadi, hanya sebagian isi konten yang dikirim (tetapi hal ini kebanyakan disebabkan
kesalahan program/bug, walaupun sumber daya yang dimiliki system terbatas).
Teknik Pencegahan Kelebihan Beban
a.
Mengatur
lalulintas data jaringan, dengan menggunakan :
·
Firewalls
to menghadang data yang tidak diinginkan dari sumber IP yang tidak sesuai
ataupun memiliki pola yang aneh.
·
Pengaturan
lalulintas data melalui protokol HTTP, untuk memutuskan koneksi, mengarahkan, atau
menulis ulang permintaan yang memiliki pola HTTP yang tidak sesuai.
·
Pengaturan
Bandwith dan Traffic shaping, untuk menurunkan beban puncak penggunaan jaringan.
·
Mengembangkan
teknik cache; Menggunakan domain yang berbeda, untuk melayani konten yang berbeda
(Statis dan dinamis) dengan memisahkan server web, contoh :
o
http://images.example.com
o
http://www.example.com
·
Menggunakan
domain yang berbeda dan atau komputer yang berbeda untuk memisahkan berkas
berukuran besar dan kecil; idenya adalah untuk mengoptimalkan cache berkas yang
ukuran kecil dan menengah dan secara efisien melayani berkas berukuran besar
(10-1000 Mb) menggunakan pengaturan yang berbeda;
·
Menggunakan
banyak server web pada tiap komputer, masing-masing program server web di
arahkan ke masing-masing kartu jaringan dan alamat IP;
·
Menggunakan
banyak komputer server web dan menggabungkannya kedalam satu grup bertindak
seolah-olah menjadi satu server web besar;
·
Menambahkan
perangkat keras seperti RAM, hdd pada tiap server web;
·
Melakukan
tunning pada Sistem Operasi sehingga dapat memaksimalkan penggunaan perangkat
keras terpasang;
·
Menggunakan
program komputer yang sesedikit mungkin pada computer yang digunakan sebagai server
web;
·
Menggunakan
area kerja lain untuk melayani konten-konten yang bersifat dinamis.
3. Kesimpulan
Web server adalah Suatu Program
Komputer yang mempunyai tanggung jawab/tugas menerima permintaan HTTP dari
komputer klien, yang dikenal dengan nama web browser, dan melayani mereka
dengan menyediakan respon HTTP berupa konten data, biasanya berupa halaman web
yang terdiri dari dokumen HTML, dan objek yang terkait seperti gambar, dll.
Web server menjadi bagian penting dalam website. Seperti yang
telah disebutkan sebelumnya, bahwa fungsi web server ialah sebagai kontrol
untuk memproses permintaan dari browser. Tanpa web server, suatu website tidak
dapat berjalan dengan baik. Web server mempunyai tugas utama yaitu menanggapi
permintaan yang dilakukan oleh pengguna melalui browser dan memberikan hasilnya
kembali ke browser.
Sedangkan hingga saat ini Apache masih menjadi web server
yang paling populer digunakan. Selain penggunaan yang mudah, hampir semua
sistem operasi kompatibel dengan web server ini.
Referensi :
Komentar
Posting Komentar