Pengertian web server dapat diartikan sebagai berikut :
- Komputer yang memiliki tanggung jawab untuk menerima HTTP request dari client, yang biasanya menggunakan web browser dan melayani dalam bentuk halaman web, dimana biasanya berupa dokumen HTML dan objek link seperti gambar dll.
- Program komputer yang melayani HTTP.
Banyak program web server yang beredar, tetapi pada dasarnya memiliki fitur yang sama yaitu :
- HTTP: merespon permintaan HTTP dan memberikan jawaban HTTP dengan memberikan dokumen HTML dan memberikan informasi kesalahan bila terjardi kesalahan.
- Logging: web server memiliki fasilitas logging tentang informasi client yang melakukan request, respon yang diberikan oleh server, disimpan pada suatu file log. Dari file log tersebut webmaster dapat membuat analisa statistik dengan menjalan aplikasi log analyzer.
- Configurability, dapat dilakukan konfigurasi bahkan dengan aplikasi eksternal
- Authentication, memberikan fasilitas authorisasi (meminta informasi username dan password), sebelum mengakses suatu atau semua resource
- Dapat menangani tidak hanya konten static tetapi juga konten dinamik yang diberikan dari berbagai interface (SSI, CGI, SCGI, FastCGI, PHP, ASP, ASP.NET, ServerAPI, dll)
- Mendukung Modular, memberikan fasilitas diluar program inti, dan ditempatkan dalam bentuk modular, sehingga server bisa memanggilnya apabila diperlukan.
- HTTPS protokol HTTP dengan keamanan enkripsi dari SSL maupun TLS. Menggunakan koneksi pada port 443.
- Kompresi terhadap konten dengan menggunakan fasilitas gzip, sehingga bisa mengurangi penggunaan bandwidth
- Virtual Host, membentuk multi web server walau hanya menggunakan 1 alamat IP
- Mendukung file dengan ukuran besar
- Bandwidth Throttling, dapat mengatur penggunaan bandwidth terhadap pengakses
Konten yang diberikan oleh webserver dapat dikatakan :
- statik, apabila berasal dari file yang terdapat pada filesistem
- dinamik, apabila berasal dari suatu program atau script yang dipanggil oleh web server.
Translasi Path
Web server melakukan peralihan jalur dari URL menuju ke filesistem, dimana URL pada web server relatif terhadap direktori document root.
Contoh client mengakses suatu alamat
http://www.example.com/path/file.html
Web browser akan merubah menjadi HTTP/1.1 request
GET /path/file.html HTTP/1.1
Host : www.example.com
Web server pada www.example.com akan menambahkan path tersebut pada akar direktori. Pada mesin Unix biasanya terletak di /var/www/htdocs, sehingga menjadi
/var/www/htdocs/path/file.html
Web server akan membaca file tersebut, apabila file tersebut dapat ditemukan maka akan dikirimkan kepada client sebagai HTTP respon.
Konkuren (concurency)
Aplikasi program web server menggunakan teknik pemrograman konkuren. Bahkan dikombinasikan dengan finite state machine dan non-blocking I/O, untuk melayani permintaan HTTP.
Sejarah
Pada tahun 1998 Tim Berners-Lee mengusulkan kepada CERN (Pusat penelitian nuklir di Eropa) sebuah proyek dengan tujuan mempermudah pertukaran informasi antar peneliti dengan menggunakan sistem hypertext. Hasil dari proyek ini adalah 2 buah program, yaitu browser dengan nama WorldWideWeb dan Web server, yang jalan di mesin NeXTSTEP.
Perangkat Lunak
Top rangking program aplikasi web server adalah :
- Apache HTTP Server dari Apache Software Foundation
- Internet Information Services (IIS) dari Microsoft
- Sun Java System Web Server dari Sun Microsystem, dalam bentuk Sun ONE web server, iPlanet web server, dan Netscape Enterprice Server
- Zeus Web Server dari Zeus Technology