Sebuah server web adalah sebuah teknologi informasi yang memproses permintaan melalui HTTP , dasar protokol jaringan yang digunakan untuk mendistribusikan informasi pada World Wide Web . Istilah ini dapat merujuk baik ke seluruh sistem komputer , suatu alat , atau khusus untuk software yang menerima dan mengawasi permintaan HTTP.
Ikhtisar

Fungsi utama dari web server adalah untuk menyimpan, mengolah, dan menyampaikan halaman web ke klien . Komunikasi antara klien dan server berlangsung menggunakan Hypertext Transfer Protocol (HTTP) . Halaman yang paling sering disampaikan adalah dokumen HTML , yang mungkin termasuk gambar , style sheet dan skrip di samping konten teks.
Seorang agen pengguna , biasanya sebuah web browser atau web crawler , memulai komunikasi dengan membuat permintaan untuk sumber daya tertentu menggunakan HTTP dan server merespon dengan isi yang sumber daya atau pesan kesalahan jika tidak dapat melakukannya. Sumber daya biasanya file nyata pada server penyimpanan sekunder , tetapi hal ini belum tentu demikian dan tergantung pada bagaimana web server diimplementasikan .
Sementara fungsi utama adalah untuk melayani konten, implementasi penuh HTTP juga mencakup cara untuk menerima konten dari klien. Fitur ini digunakan untuk mengirimkan formulir web , termasuk upload file.
Banyak server web generik juga mendukung server-side scripting menggunakan Active Server Pages (ASP), PHP , atau lainnya bahasa scripting . Ini berarti bahwa perilaku dari server web dapat ditulis dalam file terpisah, sedangkan perangkat lunak server yang sebenarnya tetap tidak berubah. Biasanya, fungsi ini digunakan untuk menghasilkan dokumen HTML dinamis ("on-the-fly") sebagai lawan untuk kembali dokumen statis . Yang pertama terutama digunakan untuk mengambil dan / atau memodifikasi informasi dari database . Yang terakhir ini biasanya jauh lebih cepat dan lebih mudah cache tetapi tidak dapat memberikan konten dinamis .
Server web tidak selalu digunakan untuk melayani World Wide Web . Mereka juga dapat ditemukan tertanam di perangkat seperti printer , router , Webcam dan melayani hanya jaringan lokal . Web server kemudian dapat digunakan sebagai bagian dari sistem untuk memantau dan / atau pemberian perangkat yang bersangkutan. Hal ini biasanya berarti bahwa tidak ada perangkat lunak tambahan harus diinstal pada komputer klien, karena hanya browser web diperlukan (yang sekarang disertakan dengan kebanyakan sistem operasi ).
Sejarah
Pada tahun 1989 Tim Berners-Lee mengajukan sebuah proyek baru untuk majikannya CERN , dengan tujuan meringankan pertukaran informasi antara para ilmuwan dengan menggunakan hypertext sistem. Proyek ini mengakibatkan Berners-Lee menulis dua program pada tahun 1990:
- Sebuah browser yang disebut WorldWideWeb .
- Server pertama di dunia web, kemudian dikenal sebagai CERN httpd , yang berjalan pada NeXTSTEP
Antara 1991 dan 1994, kesederhanaan dan efektivitas teknologi awal yang digunakan untuk surfing dan pertukaran data melalui World Wide Web pada port membantu mereka untuk banyak sistem operasi yang berbeda dan menyebarkan penggunaannya di antara organisasi ilmiah dan universitas, dan kemudian ke industri.
Pada tahun 1994 Tim Berners-Lee memutuskan untuk membentuk World Wide Web Consortium (W3C) untuk mengatur pengembangan lebih lanjut dari banyak teknologi yang terlibat ( HTTP , HTML , dll) melalui proses standarisasi.
Fitur umum
- Virtual hosting untuk melayani banyak situs web menggunakan satu alamat IP
- Dukungan file besar untuk dapat melayani file yang ukurannya lebih besar dari 2 GB pada 32 bit OS
- Bandwidth throttling membatasi kecepatan respon agar tidak jenuh jaringan dan untuk dapat melayani lebih banyak klien
- Server-side scripting untuk menghasilkan halaman web dinamis , tetap menjaga web server dan situs implementasi terpisah dari satu sama lain.
Terjemahan jalur-
Web server mampu memetakan jalan komponen dari Uniform Resource Locator (URL) ke:
- Sebuah sumber daya sistem file lokal (untuk permintaan statis)
- Nama program internal atau eksternal (untuk permintaan dinamis)
Untuk permintaan statis arah URL ditentukan oleh klien relatif ke direktori root web server.
Pertimbangkan URL berikut karena akan diminta oleh klien:
http://www.example.com/path/file.html
Klien agen pengguna akan menerjemahkannya ke dalam koneksi ke www.example.com dengan HTTP 1.1 permintaan berikut:
GET /path/file.html HTTP/1.1
Host: www.example.com
Web server pada www.example.com akan menambahkan path yang diberikan jalan dari direktori root. Pada server Apache , ini biasanya / home / www (Pada Unix mesin, biasanya / var / www). Hasilnya adalah sumber daya sistem file lokal:
/home/www/path/file.html
Web server kemudian membaca file, jika ada, dan mengirim respon ke web browser klien. Tanggapan akan menjelaskan isi dari file dan berisi file itu sendiri atau pesan kesalahan akan kembali mengatakan bahwa file tidak ada atau tidak tersedia.
Kernel-mode dan user-mode server web
Sebuah server web dapat berupa incororated ke OS kernel , atau di ruang pengguna (seperti aplikasi biasa lainnya).
Sebuah web server-kernel (seperti Microsoft IIS pada Windows atau TUX pada GNU / Linux) biasanya akan bekerja lebih cepat, karena, sebagai bagian dari sistem, dapat langsung menggunakan semua sumber daya perangkat keras yang dibutuhkan, seperti memori non-paged, CPU waktu-iris, adapter jaringan, atau buffer.
Web server yang berjalan dalam mode pengguna harus meminta sistem izin untuk menggunakan lebih banyak memori atau lebih sumber daya CPU. Tidak hanya permintaan ini untuk kernel memakan waktu, tetapi mereka tidak selalu puas karena sumber daya cadangan sistem untuk penggunaan sendiri dan memiliki tanggung jawab untuk berbagi sumber daya perangkat keras dengan semua aplikasi yang berjalan lainnya. Pelaksana dalam modus pengguna juga bisa berarti salinan penyangga berguna yang cacat lain untuk user-mode server web.
Beban batas
Sebuah server web (program) telah menentukan batas beban, karena hanya dapat menangani sejumlah klien konkuren koneksi (biasanya antara 2 dan 80.000, secara default antara 500 dan 1.000) per alamat IP (dan TCP port) dan dapat melayani hanya jumlah maksimum tertentu permintaan per detik tergantung pada:
- pengaturan sendiri,
- jenis permintaan HTTP,
- apakah konten yang statis atau dinamis,
- apakah konten tersebut cache , dan
- yang keras dan lunak keterbatasan OS dari komputer yang menjalankan Web server.
Ketika web server dekat dengan atau di atas batas, itu menjadi tidak responsif.
Penyebab kelebihan Pada setiap saat web server dapat kelebihan beban karena:
- Kelebihan lalu lintas web yang sah. Ribuan atau bahkan jutaan klien menghubungkan ke situs web dalam interval pendek, misalnya, efek Slashdot ;
- Distributed Denial of Service serangan. Sebuah serangan dos (DoS serangan) atau didistribusikan denial-of-service attack (DDoS) merupakan upaya untuk membuat komputer atau jaringan sumber daya tidak tersedia untuk pengguna yang dimaksudkan;
- Cacing komputer yang kadang-kadang menyebabkan lalu lintas normal karena jutaan komputer yang terinfeksi (tidak terkoordinir di antara mereka);
- Virus XSS dapat menyebabkan lalu lintas tinggi karena jutaan terinfeksi browser dan / atau web server;
- Internet bots Lalu Lintas tidak disaring / terbatas di situs web yang besar dengan sangat sedikit sumber daya (bandwith, dll);
- Internet (jaringan) slowdowns, sehingga permintaan klien dilayani lebih lambat dan jumlah sambungan meningkat sehingga mencapai batas server;
- Server web ( komputer ) tidak tersedianya parsial. Hal ini dapat terjadi karena yang dibutuhkan atau mendesak pemeliharaan atau upgrade, perangkat keras atau perangkat lunak kegagalan, back-end (misalnya, basis data ) kegagalan, dll .; dalam kasus ini server web yang tersisa terlalu banyak lalu lintas dan menjadi kelebihan beban.
Gejala kelebihan Gejala server web kelebihan beban adalah:
- Permintaan dilayani dengan (mungkin panjang) penundaan (dari 1 detik untuk beberapa ratus detik).
- Web server mengembalikan kode kesalahan HTTP , seperti 500, 502, 503, 504, 408, atau bahkan 404 , yang pantas untuk kondisi overload.
- Web server menolak atau ulang (interupsi) TCP koneksi sebelum kembali konten.
- Dalam kasus yang sangat jarang, web server mengembalikan hanya sebagian dari konten yang diminta. Perilaku ini dapat dianggap sebagai bug , bahkan jika itu biasanya muncul sebagai gejala overload.
Teknik anti-kelebihanUntuk sebagian mengatasi batasan di atas rata-rata beban dan untuk mencegah overload, situs web yang paling populer menggunakan teknik umum seperti:
- Mengelola lalu lintas jaringan, dengan menggunakan:
- Firewall untuk memblokir lalu lintas yang tidak diinginkan yang berasal dari sumber IP yang buruk atau memiliki pola yang buruk
- Manajer lalu lintas HTTP untuk menjatuhkan, mengarahkan atau menulis ulang permintaan memiliki buruk HTTP pola
- Manajemen bandwidth dan traffic shaping , dalam rangka untuk merapikan puncak dalam penggunaan jaringan
- Menyebarkan web cache teknik
- Menggunakan berbagai nama domain untuk melayani berbeda (statis dan dinamis) dengan server web yang terpisah, yaitu:
- http://images.example.com
- http://www.example.com
- Menggunakan nama domain yang berbeda dan / atau komputer untuk memisahkan file-file besar dari file kecil dan menengah; idenya adalah untuk dapat sepenuhnya cache yang file kecil dan menengah dan efisien melayani besar atau besar (lebih dari 10-1.000 MB) file dengan menggunakan pengaturan yang berbeda
- Menggunakan banyak server internet (program) per komputer, masing-masing terikat sendiri kartu jaringan dan alamat IP
- Menggunakan banyak server internet (komputer) yang dikelompokkan bersama-sama di belakang penyeimbang beban sehingga mereka bertindak atau terlihat sebagai salah satu web server yang besar
- Menambahkan sumber daya perangkat keras yang lebih (yaitu RAM , disk ) untuk setiap komputer
- Tuning parameter OS untuk kemampuan hardware dan penggunaan
- Menggunakan lebih efisien program komputer untuk server web, dll
- Menggunakan lainnya workarounds , terutama jika konten dinamis yang terlibat