Sunday, May 1, 2016

WEB SERVER

Advertisement


        1. 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.
        1. 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.
        1. 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.

        1. 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.

        1. 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.

Artikel Terkait

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