- Pengertian Web Server
Salah satu layanan yg paling sering
disediakan oleh server adalah layanan web. Salah satu alasanya dari
penggunaan web server adalah dia bebas platform. Semua aplikasi yang
berjalan di atas web hanya perlu menyesuaikan dengan web browser
pengguna
.
.
Web server adalah sebuah penyedia layanan
dengan protocol HTTP. Web server juga dikenal dengan nama HTTP
server, menyediakan kemampuan untuk mengirimkan dokumen hyper-text
kepada pengguna. Dokumen hypertext itu nantinya digunakan untuk
dijadikan tampilan.
Web server normal, berjalan di atas port
80. Versi aman dari web server, atau HTTPS server, berjalan di atas
port 443. HTTP server biasa, hanya menyediakan akses ke file-file
yang berada di dalam folder server HTTP.
HTTPS dilindungi dengan
enkripsi sehingga data yang terkirim dijamin keamananya. Situs-situs
web yang membutuhkan keamanan ekstra seperti bank, transaksi, email,
penyimpanan file menggunakan HTTPS. Meskipun beberapa tidak
menggunakan HTTPS, tapi mau tidak mau web-web kritikal seperti itu
harus menggunakan HTTPS demi mendapatkan pelanggan.
Ketika HTTP server
melayani pengguna, kebanyakan data yang dikirm berformat HTML. Tapi
HTML sendiri bekerja kompak dengan file dari format lainya, seperti
CSS untuk mengatur tampilan, JS untuk mengatur interaksi, dan
tambahan-tambahan lainya seperti gambar.
Biasanya, ketika
pengguna melakukan permintaan terhadap HTTP Server, HTTP server
membalas dengan menyediakan berkas asli yang ada di server. Tapi,
tidak harus seperti itu, sesuai dengan bagaimana HTTP server itu
diimplementasikan.
HTTP server yang
dinamis, apabila ingin menambahkan fungsi-fungsi di sistemnya, bisa
melalui dua cara. Yaitu dengan pembuatan ulang software HTTP server,
atau menggunakan bahasa pemrograman di sisi server atau server
side scripting.
Dengan menggunakan bahasa seperti ASP, atau PHP, maka HTTP server
bisa menyediakan fungsi yang berbeda-beda tanpa perlu menulis ulang
kode untuk software HTTP server itu sendiri.
HTTP server tidak serta
merta hanya menyediakan data kepada pengguna, HTTP server juga bisa
meminta data dari pengguna baik menggunakan form, ataupun dengan
pengunggahan file.
HTTP server sekarang
tidak hanya untuk menyediakan layanan melalui web server yang
berbentuk mesin besar. Sekarang, beberapa alat menggunakan HTTP
sebagai antar muka dengan pengguna, seperti router, printer, webcam.
Tapi di alat-alat kecil ini biasanya HTTP digunakan dalam jaringan
lokal saja.
- Jenis Server HTTP
Ada dua jenis server
HTTP, yaitu Kernel dan User. Versi kernel dari HTTP server mempunyai
kecepatan yang lebih karena langsung terintegrasi dengan OS dan
memang ditujukan untuk HTTP server. Sehingga mempunyai akses langsung
ke sumber daya tingkat bawah seperti adaptor jaringan, buffer, atau
memory.
Jenis user lebih lama
dan terbatas, karena mereka tidak mempunyai akses langsung ke dalam
hardware dan sumber daya tingkat bawah. Mereka harus meminta dahulu
kepada OS untuk sumber daya, lalu mereka harus berbagi resource
dengan aplikasi lainya.
Pada sistem Windows,
bisa menggunakan IIS, atau di Linux menggunakan TUX.
- Batas-Batas Web Server
Web server terbatas, dia
mempunyai keterbatasan tentang berapa jumlah pengguna yang bisa
dilayani secara bersamaan. Karena itu biasanya ada lebihd ari satu
web server yang disediakan apabila jumlah pengguna yang dilayani
sangat besar.
Batas-batas web server
ini ditentukan bebera faktor.
- Konfigurasi Web Server
- Jenis HTTP Request
- Jenis Konten Dinamik atau Statik
- Batas Hardware atau Software
Ketika batas ini
tercapai, maka web server akan mengalami macet dan tidak responsif.
Biasanya, batas-batas
ini tercapai ketika ada beberapa hal yang terjadi.
- Banyaknya pengguna yang terhubung secara bersamaan.
Ketika ada pengguna yang
terhubung secara bersamaan. Maka sumber daya dari web server akan
terbagi-bagi juga dalam saat yang bersamaan. Proses input output
memakan waktu yang lama, pembacaan file yang berkali-kali dalam waktu
yang tidak jauh berbeda akan membuat web server kehilangan
keseimbangan dan akhirnya tidak bisa menyelesaikan permintaan.
- Serangan DDOS
Serangan DDOS atau
Distributed Denial Of Service, membuat server kewalahan melayani
serangan tersebut. Akibatnya, pengguna lainya tidak akan mendapatkan
sumber daya yang diminta.
- Virus
Adanya virus yang
menyebar melalui jutaan komputer bisa menghambat kinerja dari server.
Apabila ada satu juta komputer terinfeksi, maka mereka akan mencoba
menyebar melewati jaringan internet, dan salah satu layanan yang juga
terkena serangan adalah web server.
- Jaringan Lambat
Jaringan yang lambat
akan mengakibatkan server memrposes suatu permintaan lebih lama
daripada biasanya. Hal yang seperti ini menyebabkan bottleneck,
jadi ketika seharusnya server selesai memproses, dia harus menunggu
lama karena jaringanya lambat, hinga akhirnya semua beban menumpuk
dan server akhirnya down.
Beberapa cara juga bisa
dilakukan untuk membuat batas-batas web server tidak tercapai. Dengan
mengoptimalkan sumber daya yang ada, dan kemampuan dari web server.
- Mengatur Trafik Jaringan
Mengatur trafik jaringan
dengan membatasi sebuah permintaan dengan firewall, dan juga
memfilter permintaan HTTP yang buruk, juga melakukan pengaturan
bandwidth.
- Menggunakan Cache
Web server harus
menggunakan teknologi cache, sehingga resource yang sama diminta
berkali-kali tidak perlu melewati proses yang lama. Apalagi melewati
jalur IO yang padat dan lambat.
- Menggunakan Lebih dari Satu Web Server
Menggunakan satu web
server akan membuat sistem terbebani, namun apabila menggunaan dua
web server, maka server satunya bisa beristirahat dan membebaskan
sumber daya yang sudah diproses, dan web server lainya mengerjakan
beberapa dari tanggung jawab web server satu.
Memecah web server ini
merupakan salah satu cara yang sangat efektif, namun karena faktor
biaya membuat lebih dari web server bukanlah harga yang murah.
- Protocol HTTP
Setiap permintaan HTTP mempunyai dua
bagian, yaitu header dan content. Header untuk permintaan dan header
untuk pelayanan berbeda. HTTP server hanya merespon apabila ada
permintaan. Permintaan HTTP diberikan melalui URL, juga metode HTTP
yang digunakan.
Header pembuka HTTP, terdiri dari tiga
bagian. Metode, URL, dan versi HTTP. Method bisa berisi GET, POST,
PUT, HEAD. URL bisa berisi alamat sumber daya yang diminta, dan versi
mengindikasikan versi protocol HTTP (sekarang 1.1 saat ini ditulis)
HTTP server melakukan respon yang
berbeda-beda seiring dengan perbedaan metode, url atau versi.
Metode GET, digunakan untuk mengambil data.
Sedangkan metode POST, digunakan untuk memasang data. Metode PUT,
digunakan untuk menaruh data, dan metode HEAD digunakan untuk meminta
informasi.
Berbeda dengan header pembuka permintaan,
header pembuka respon bentuknya seperti ini.
Setelah header pembuka, akan ada lagi
header-header lainya. Header ini berbentuk mapping, seperti kamus,
dengan nama dan niainya.
Header berbentuk mapping ini jumlahnya
lebih banyak. Tidak mengikuti pola tertentu, dan diakhiri dengan
baris kosong.
Gambar di atas merupakan struktur dari
header mapping dari sisi permintaan. Isinya tidak terbatas, bahkan
kita bisa menambahkan header sesuai dengan kebutuhan kita.
Fomat dari header mapping, mempunyai format
<nama_mapping> :
<nilai_mapping>, seperti
Connection: Keep-Alive
Tipikal header respon dari server. Sama,
dia juga tidak terbatas dan bisa disesuaikan dengan kebutuhan.
Contohnya, apabila di web server ada sebuah
file dengan nama index.html¸maka
cara untuk mendapatkan file tersebut. Pengguna harus mengirimkan
kepada web server permintaan yang berbentuk seperti ini.
GET
/index.html HTTP/1.1
Connection:
Keep-Alive
User-Agent:
WebParticle (Skyfilter 32bit) XMLHTTPRequest
Dengan mengirimkan permintaan seperti di
atas, maka server akan merespon dengan bentuk seperti ini.
HTTP/1.1 200
OK
Content-type:
text/html
Content-length:
520
<!DOCTYPE
HTML>
<html>
…
…
…
</html>
Setelah header mapping terakhir, ada satu
baris kosong. Di bagian header mapping permintaan juga ada baris
kosong, namun tidak terlihat karena pengguna yang meminta layanan
tidak memberikan data apa-apa.
- Jenis HTTP Server
Tidak semua HTTP server bekerja dengan cara
yang sama. Ada HTTP server yang hanya menyediakan file statis, ada
juga yang menyediakan file dinamis. Selama aplikasi tersebut melayani
permintaan sesuai dengan aturan HTTP. Maka dia disebut dengan HTTP
Server.
Staticlet
Staticlet adalah web server yang tidak
begitu populer, kemampuanya terbatas dan hanya bisa melayani
pemberian file statis. Tidak bisa dikonfigurasi, dan lebih berguna
sebagai portal untuk membuat file sharing satu arah berbasis HTTP.
Apache
Apache merupakan salah satu web server yang
populer, dilengkapi dengan kemampuan bahasa PHP, CGI (Perl, Python),
juga konfigurasi menggunakan file .ht. Apache bisa melakukan tugasnya
dengan baik, konfigurasinya juga banyak dan sangat mudah dipelajari.
Nginx
Nginx adalah salah satu
web server yang bekerja dengan cepat. Nginx menggunakan C++, salah
satu bahasa yang bekerja dengan cepat.
IIS
IIS adalah web server
dari Microsoft, kemampunya dalah dia mampu menggunakan dan
mengoptimalkan teknologi Microsoft seperti .NET, ASP, WCF, Hyper-V,
dll.
GlassFish
GlassFish adalah salah
satu server yang menggunakan Java sebagai platformnya. Java sendiri
merupakan platform independen yang bisa berjalan di berbagai
paltform.
Apache terinstall
bersamaan saat kita menginstall Debian apabila kita mencentang Web
Server pada saat installasi.
Silahkan berkomentar dengan sopan sesuai topik yang dibahas. Mohon tidak meninggalkan URL. Silahkan berkomentar dengan sopan serta sesuai topik dan dimohon untuk tidak meninggalkan link aktif.
Terima Kasih.
EmoticonEmoticon