WEB SERVER
Pengertian :
Kata Web Server dapat
dimaknai dengan :
1. 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.
2. Komputer yang menjalankan program diatas. Walaupun
masing-masing program webserver secara detil berbeda tetapi pada umumnya
program
webserver memiliki fitur-fitur dasar yang sama seperti :
1. 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.
2. 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 statistik dengan menggunakan
tool log analizer. Pada penggunaan sehari-hari banyak web server
mengimplementasikan fitur-fitur berikut :
1. Otentifikasi : fitur untuk mengotorisasi suatu permintaan dari klien sebelum
menggunakan sumber daya yang dimiliki oleh web server (biasanya User dan
Password)
2. 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).
3. 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
4. Kompresi Konten (misal menggunakan enkoding gzip) untuk mengurangi waktu respon
server sehingga penggunaan pita data /Bandwith menjadi lebih hemat.
5. Virtual Hosting yang berguna untuk melayani banyak website hanya dengan
menggunakan satu alamat IP.
6 Dukungan berkas berukuran besar, berfungsi untuk
mendukung berkas yang memiliki ukuran lebih dari 2 gigabyte
7. 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. Konten
jawaban dari server web dibedakan menjadi :
1. Konten statis : biasanya berasal dari berkas yang telah ada pada server web
2. Konten Dinamis : dikatakan konten dinamis jika terjadi perubahan secara dimanis
atas isi dari web baik dilakukan oleh program lain, script atau Application
Program Interface (API) yang dijalankan oleh server web. Server dengan konten
statis biasanya lebih cepat dari yang berisi konten dinamis (2 s.d. 100 kali
Lebih cepat), terutama dalam menangani pengambilan data dari database.
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 webserver.
Perhatikan URL berikut yang diminta oleh klien :
http://www.example.com/path/file.html
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 lokal 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.
Penyebab
Overload/Kelebihan beban
Grafik harian beban
server web, memperlihatkan adanya lonjakan beban pada awal hari. Setiap saat
server web dapat saja mengalami kelebihan beban yang disebabkan :
● Terlalu banyak
koneksi (misalkan ada ribuan bahkan jutaan permintaan dari klien pada jeda
waktu yang singkat, seperti yang pernah terjadi pada Slashdot)
● Serangan DDOS
(Distribute Denial Of Services);
● Cacing Komputer
(Worm) yang dapat menyebabkan lalulintas data tidak wajar karena banyaknya
komputer yang terinfeksi;
● Virus XSS dapat
menyebabkan lalulintas data yang tinggi karena jutaan browser dan server web
yang terinfeksi;
● 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;
● I nternet (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;
● 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 :
● Lambatnya respon
terhadap permintaan dari klien (respon biasanya berkisar dari 1 s.d.Ratusan
detik);
● Muncul pesan
kesalahan 500, 502, 503, 504 HTTP Errors (Kadang-kadang juga muncul pesan
kesalahan 404 dan 408);
● Koneksi TCP ditolak
atau direset sebelum isi konten sampai ke klien;
● Hal ini jarang
terjadi, hanya sebagian isi konten yang dikirim (tetapi hal ini kebanyakan
disebabkan kesalahan program/bug, walaupun sumber daya yang dimiliki sistem
terbatas).
Teknik
Pencegahan Kelebihan Beban
● 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 :
○ http://images.example.com
○ 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 komputer yang digunakan sebagai server
web;
● Menggunakan area
kerja lain untuk melayani konten-konten yang bersifat dinamis.
Catatan Sejarah
Web
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 :
● Sebuah Browser dengan
nama WorldWideWeb
● 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.
Struktur Pasar
Di bawah ini adalah
hasil survei yang dilakukan oleh Netcraft pada April 2008
Vendor Produk
Jumlah Website yang
menggunakan
Persentase
Apache Apache
83,206,564 50.22%
Microsoft IIS 58,540,275
35.33%
Google GWS 10,075,991
6.08%
Oversee Oversee
1,926,812 1. 16%
Lighttpd Lighttpd
1,495,308 0.9%
Nginx Nginx 1,018,503
0.61%
Lain-lain – 9,432,775
5.69%
No comments:
Post a Comment