Selasa, 12 Januari 2010

WEB SERVER

Sebuah server Web adalah sebuah program komputer yang memberikan (menyediakan) konten, misalnya halaman web ini, dengan menggunakan Hypertext Transfer Protocol. Istilah web server juga dapat merujuk ke komputer atau mesin virtual menjalankan program.

1.Tinjauan
Fungsi utama web server adalah memberikan halaman web untuk klien. Ini berarti pengiriman dokumen HTML dan konten tambahan yang mungkin termasuk oleh sebuah dokumen, seperti foto, style sheet dan JavaScripts.

Seorang klien, biasanya sebuah web browser atau web crawler, memulai komunikasi dengan membuat permintaan untuk sumber daya tertentu menggunakan server HTTP dan merespon dengan isi yang sumber daya, atau pesan kesalahan jika tak mampu melakukannya. Sumber daya biasanya file nyata pada server memori 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 meng-upload file.

Banyak server web generik juga mendukung script sisi server (misalnya Apache HTTP Server dan PHP). Ini berarti bahwa perilaku dari server web dapat ditulis dalam file terpisah, sementara perangkat lunak server yang sebenarnya tetap tidak berubah. Biasanya, fungsi ini digunakan untuk membuat dokumen HTML on-the-fly sebagai lawan untuk kembali dokumen tetap. Ini disebut sebagai konten statis dinamis dan masing-masing. Yang pertama terutama digunakan untuk mengambil dan / atau memodifikasi informasi dalam database. Yang terakhir ini, bagaimanapun, biasanya jauh lebih cepat dan mudah di-cache.

Sangat niched server web dapat ditemukan dalam perangkat seperti printer dan router untuk memudahkan administrasi menggunakan antarmuka pengguna yang sudah akrab dalam bentuk halaman web.

2.Sejarah web server
Pada tahun 1989 Tim Berners-Lee mengusulkan kepada majikannya CERN (Organisasi Eropa untuk Riset Nuklir) sebuah proyek baru, yang memiliki tujuan meringankan pertukaran informasi antara para ilmuwan dengan menggunakan sistem hypertext. Sebagai hasil dari pelaksanaan proyek ini, pada tahun 1990 Berners-Lee menulis dua program:

* Browser bernama WorldWideWeb;
* Pertama di dunia web server, kemudian dikenal sebagai CERN httpd, yang berlari dalam 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 banyak kelompok-kelompok sosial yang berbeda orang, pertama dalam organisasi ilmiah, kemudian di universitas dan akhirnya di industri.

Pada tahun 1994 Tim Berners-Lee memutuskan untuk membentuk World Wide Web Consortium untuk mengatur pengembangan lebih lanjut dari banyak teknologi yang terlibat (HTTP, HTML, dll) melalui proses standarisasi.

3.Fitur umum
1. Virtual hosting untuk melayani banyak situs web menggunakan satu alamat IP.
2. Mendukung file besar untuk dapat melayani file yang ukurannya lebih besar dari 2 GB pada 32 bit OS.
3. Bandwidth throttling membatasi kecepatan respon agar tidak jenuh jaringan dan untuk dapat melayani lebih banyak klien.
4. Server-side scripting untuk menghasilkan halaman web dinamis, tapi tetap menjaga web server dan implementasi situs web terpisah dari satu sama lain.

4.Path terjemahan
Web server mampu memetakan jalan komponen dari suatu Uniform Resource Locator (URL) ke:

* Sistem file lokal sumber daya (untuk statis permintaan);
* Internal atau eksternal nama program (untuk dinamis permintaan).

Untuk permintaan statis arah URL ditentukan oleh klien relatif ke Web server direktori root.

Perhatikan URL berikut ini akan diminta oleh klien:

http://www.example.com/path/file.html

Web klien browser akan menerjemahkannya ke dalam sambungan ke www.example.com dengan permintaan HTTP 1.1 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. Mesin Unix, ini biasanya / var / www. Hasilnya adalah sumber daya sistem file lokal:

/var/www/path/file.html

Web server akan membaca file tersebut, jika ada, dan mengirim respon ke klien browser web. Tanggapan akan menjelaskan isi dari file dan berisi file itu sendiri.

5.Batas beban
Sebuah web server (program) telah menentukan batas beban, karena hanya dapat menangani sejumlah klien konkuren koneksi (biasanya antara 2 sampai 80.000, secara default antara 500 dan 1.000) per alamat IP (dan TCP port) dan dapat melayani hanya maksimum tertentu jumlah permintaan per detik, tergantung pada:

* Pengaturan sendiri;
* Jenis permintaan HTTP;
* Konten asal (statis atau dinamis);
* Fakta bahwa konten dilayani atau tidak di-cache;
* Perangkat keras dan perangkat lunak OS batas di mana ia bekerja.

Ketika web server dekat dengan atau di atas batas-batasnya, ia menjadi kelebihan beban dan dengan demikian tidak responsif.

6.Kernel-mode-mode dan pengguna web server
Sebuah server Web dapat juga diimplementasikan ke dalam kernel OS, atau di ruang pengguna (seperti aplikasi biasa lainnya).

Kernel yang di-server web (seperti Tux pada GNU / Linux atau Microsoft IIS pada Windows) biasanya akan bekerja lebih cepat karena, sebagai bagian dari sistem, dapat langsung menggunakan semua sumber daya perangkat keras yang dibutuhkan, seperti:

* Non-paged memori;
* Waktu CPU-potong;
Adapter jaringan * buffer.

Web server yang berjalan dalam modus pengguna harus meminta izin untuk sistem yang menggunakan memori lebih besar atau lebih sumber daya CPU. Ini tidak hanya permintaan untuk kernel memakan waktu, tetapi mereka tidak selalu puas karena sistem sumber daya cadangan untuk penggunaan sendiri dan memiliki tanggung jawab untuk berbagi sumber daya perangkat keras dengan semua menjalankan aplikasi lain.

Aplikasi juga tidak dapat mengakses sistem buffer internal, yang menyebabkan buffer tidak berguna salinan yang menciptakan cacat lain-mode pengguna web server. Sebagai akibatnya, satu-satunya cara bagi pengguna-mode web server untuk mencocokkan modus kernel-pertunjukan adalah untuk meningkatkan kualitas kode standar yang jauh lebih tinggi daripada kode yang digunakan ke server web lain yang berjalan di kernel.

Ini lebih sulit di bawah Windows daripada di Linux dimana user-mode overhead adalah 6 kali lebih kecil daripada di bawah Windows. [1]

7.Overload menyebabkan
Pada setiap saat web server dapat kelebihan beban karena:

* Terlalu banyak lalu lintas Web yang sah. Ribuan atau bahkan jutaan klien memukul situs web dalam interval waktu yang singkat. (Slashdot e.g. efek);
* DDoS. Distributed Denial of Service serangan;
* Computer cacing yang abnormal kadang-kadang menyebabkan lalu lintas karena jutaan komputer yang terinfeksi (tidak terkoordinir di antara mereka);
* XSS virus dapat menyebabkan lalu lintas tinggi karena jutaan terinfeksi browser dan / atau web server;
* Internet web robot. Lalu lintas tidak disaring / terbatas pada 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;
* Web server (komputer) tidak tersedianya parsial. Hal ini dapat terjadi karena yang dibutuhkan atau mendesak pemeliharaan atau upgrade, kegagalan perangkat keras atau perangkat lunak back-end (misalnya DB) kegagalan, dan sebagainya; dalam kasus ini server web yang tersisa terlalu banyak lalu lintas dan menjadi kelebihan beban.

8.Gejala overload
Gejala yang kelebihan beban server web adalah:

* Permintaan dilayani dengan (mungkin panjang) penundaan (dari 1 detik untuk beberapa ratus detik);
* 500, 502, 503, 504 error HTTP dikembalikan ke klien (kadang-kadang juga tidak terkait 404 atau bahkan 408 kesalahan dapat dikembalikan);
* Koneksi TCP yang menolak atau mengatur ulang (terputus) sebelum konten dikirim kepada klien;
* Dalam kasus yang sangat langka, hanya sebagian isi akan dikirim (tetapi perilaku ini bisa jadi dianggap sebagai bug, bahkan jika itu biasanya tergantung pada sumber daya sistem tidak tersedia).

9.Anti-overload teknik
Untuk sebagian beban mengatasi batasan di atas dan untuk mencegah overload, situs web yang paling populer menggunakan teknik-teknik umum seperti:

* Mengelola lalu lintas jaringan, dengan menggunakan:
o Firewall untuk memblokir lalu lintas yang tidak diinginkan yang berasal dari sumber IP yang buruk atau memiliki pola yang buruk;
o HTTP manajer untuk menjatuhkan, mengarahkan atau menulis ulang permintaan memiliki pola HTTP buruk;
o Bandwidth manajemen dan traffic shaping, dalam rangka untuk merapikan puncak dalam penggunaan jaringan;
* Menggelar web cache teknik;
* Menggunakan nama domain yang berbeda untuk melayani berbeda (statis dan dinamis) konten oleh 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 kecil dan menengah file; idenya adalah untuk dapat sepenuhnya cache berukuran kecil dan menengah file dan melayani secara efisien besar atau besar (lebih dari 10-1.000 MB) file menurut menggunakan pengaturan yang berbeda;
# Menggunakan banyak Web server (program) per komputer, masing-masing terikat untuk kartu jaringan sendiri dan IP address;
# Menggunakan banyak Web server (komputer) yang dikelompokkan bersama sehingga mereka bertindak atau dipandang sebagai salah satu server Web yang besar, lihat juga: Beban pengimbang;
# Menambahkan lebih banyak sumber daya perangkat keras (yaitu RAM, disk) untuk setiap komputer;
# Tuning OS parameter untuk kemampuan hardware dan penggunaan;
# Menggunakan program komputer yang lebih efisien untuk web server, dll;
# Menggunakan workarounds lain, terutama jika konten dinamis yang terlibat.

Tidak ada komentar:

Posting Komentar