Server web atau peladen web adalah perangkat lunak server, atau perangkat keras yang didedikasikan untuk menjalankan perangkat lunak ini, yang dapat memenuhi permintaan klien di World Wide Web. Server web dapat, secara umum, berisi satu atau lebih situs web. Server web memproses permintaan jaringan yang masuk melalui HTTP dan beberapa protokol terkait lainnya.
Fungsi utama server web adalah untuk menyimpan, memproses, dan mengirimkan halaman web ke klien.[1] Komunikasi antara klien dan server berlangsung menggunakan Hypertext Transfer Protocol (HTTP). Halaman yang dikirimkan adalah dokumen HTML yang paling sering, yang mungkin termasuk gambar, style sheet dan skrip di samping konten teks.
Agen pengguna, umumnya peramban web atau perayap web, memulai komunikasi dengan membuat permintaan untuk sumber daya tertentu menggunakan HTTP dan server merespons dengan konten sumber daya itu atau pesan kesalahan jika tidak dapat melakukannya. Sumber daya biasanya berupa file nyata pada penyimpanan sekunder server, tetapi ini belum tentu demikian dan tergantung pada bagaimana server web diimplementasikan.
Sementara fungsi utamanya adalah untuk menyajikan konten, implementasi penuh HTTP juga mencakup cara penerimaan konten dari klien. Fitur ini digunakan untuk mengirimkan formulir web, termasuk mengunggah file.
Server web sering ditemukan tertanam dalam perangkat seperti printer, router, webcam dan hanya melayani jaringan lokal. Server web kemudian dapat digunakan sebagai bagian dari sistem untuk memantau atau mengelola perangkat yang dimaksud. Ini biasanya berarti bahwa tidak ada perangkat lunak tambahan yang harus diinstal pada komputer klien karena hanya diperlukan browser web (yang sekarang disertakan dengan sebagian besar sistem operasi).
Sejarah
Pada bulan Maret 1989, Sir Tim Berners-Lee mengusulkan proyek baru kepada majikannya CERN, dengan tujuan memudahkan pertukaran informasi antara para ilmuwan dengan menggunakan sistem hypertext.[2][3] Proyek ini menghasilkan Berners-Lee menulis dua program pada tahun 1990:
Server web pertama di dunia, yang kemudian dikenal sebagai CERN httpd, yang berjalan pada NeXTSTEP
Antara 1991 dan 1994, kesederhanaan dan keefektifan teknologi awal yang digunakan untuk berselancar dan bertukar data melalui World Wide Web membantu untuk memindahkan mereka ke berbagai sistem operasi dan menyebarkan penggunaannya di antara organisasi ilmiah dan universitas, dan kemudian ke industri.
Pada tahun 1994, 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 standardisasi.
Sumber daya sistem file lokal (untuk permintaan statis)
Nama program internal atau eksternal (untuk permintaan dinamis)
Untuk permintaan statis path URL yang ditentukan oleh klien relatif terhadap direktori root server web.
Pertimbangkan URL berikut karena akan diminta oleh klien melalui HTTP:
http://www.example.com/path/file.html
Agen pengguna klien akan menerjemahkannya ke koneksi www.example.com dengan permintaan HTTP / 2 berikut:
GET /path/file.html HTTP/2
Host: www.example.com
Server web pada www.example.com akan menambahkan path yang diberikan ke path direktori root-nya. Di server Apache, ini biasanya /home/www (pada mesin Unix, biasanya /var/www). Hasilnya adalah sumber daya sistem file lokal:
/home/www/path/file.html
Server web kemudian membaca file, jika ada, dan mengirimkan respons ke browser web klien. Respons akan menggambarkan konten file dan berisi file itu sendiri atau pesan kesalahan akan kembali mengatakan bahwa file tersebut tidak ada atau tidak tersedia.
Server web mode-kernel dan mode-pengguna
Server web dapat dimasukkan ke dalam kernelOS, atau di ruang pengguna (seperti aplikasi reguler lainnya).
Server web yang berjalan dalam mode pengguna harus meminta izin sistem untuk menggunakan lebih banyak memori atau lebih banyak sumber daya CPU. Permintaan ini ke kernel tidak hanya memakan waktu, tetapi mereka tidak selalu puas karena sistem cadangan sumber daya untuk penggunaannya sendiri dan memiliki tanggung jawab untuk berbagi sumber daya perangkat keras dengan semua aplikasi yang berjalan lainnya. Menjalankan dalam mode pengguna juga bisa berarti salinan buffer tidak berguna yang merupakan batasan lain untuk server web mode pengguna.
Batas beban
Server web (program) telah menetapkan batas beban, karena ia hanya dapat menangani sejumlah kecil koneksi klien secara bersamaan (biasanya antara 2 dan 80.000, secara default antara 500 dan 1.000) per alamat IP (dan port TCP) dan hanya dapat melayani sejumlah maksimum permintaan per detik (RPS, juga dikenal sebagai kueri per detik atau QPS) tergantung pada:
Ketika server web dekat atau melebihi batasnya, itu menjadi tidak responsif.
Penyebab overload
Setiap saat server web dapat kelebihan beban karena:
Kelebihan kunjungan web yang sah. Ribuan atau bahkan jutaan klien yang terhubung ke situs web dalam interval pendek, mis., Efek Slashdot;
Serangan Distributed Denial of Service. Serangan denial-of-service (serangan DoS) atau serangan distributed denial-of-service (serangan DDoS) adalah upaya untuk membuat komputer atau sumber daya jaringan tidak tersedia bagi pengguna yang dituju;
Worm komputer yang terkadang menyebabkan lalu lintas tidak normal karena jutaan komputer yang terinfeksi (tidak terkoordinasi di antara mereka)
Worm XSS dapat menyebabkan lalu lintas tinggi karena jutaan browser atau server web yang terinfeksi;
Bot internet Lalu lintas tidak disaring / dibatasi pada situs web besar dengan sumber daya yang sangat sedikit (bandwidth, dll.);
Internet (jaringan) melambat, sehingga permintaan klien dilayani lebih lambat dan jumlah koneksi bertambah banyak sehingga batas server tercapai;
Server web (komputer) tidak tersedianya sebagian. Ini dapat terjadi karena pemeliharaan atau peningkatan yang disyaratkan atau mendesak, kegagalan perangkat keras atau lunak, kegagalan back-end (mis., Database), dll .; dalam kasus ini server web yang tersisa mendapatkan terlalu banyak lalu lintas dan menjadi kelebihan beban.
Gejala overload
Gejala server web yang kelebihan beban adalah:
Permintaan dilayani dengan penundaan (mungkin lama) (dari 1 detik hingga beberapa ratus detik).
Server web menanggapi dengan kode kesalahan HTTP, seperti 500, 502,[5] 503,[6] 504,[7] 408, atau bahkan 404, yang tidak pantas untuk kondisi kelebihan beban.[8]
Server web menolak atau me-reset (menginterupsi) koneksi TCP sebelum mengembalikan konten apa pun.
Dalam kasus yang sangat jarang, server web hanya mengembalikan sebagian dari konten yang diminta. Perilaku ini dapat dianggap sebagai bug, meskipun biasanya muncul sebagai gejala kelebihan beban.
Teknik anti-overload
Untuk sebagian mengatasi batas beban rata-rata di atas dan untuk mencegah kelebihan beban, sebagian besar situs web populer menggunakan teknik umum seperti:
Mengelola lalu lintas jaringan, dengan menggunakan:
Firewall untuk memblokir lalu lintas yang tidak diinginkan yang berasal dari sumber IP buruk atau memiliki pola buruk
Manajer lalu lintas HTTP untuk menjatuhkan, mengarahkan ulang, atau menulis ulang permintaan yang memiliki pola HTTP buruk
Menggunakan nama domain atau alamat IP yang berbeda untuk menyajikan konten yang berbeda (statis dan dinamis) oleh server web yang terpisah, mis.:
http://images.example.com
http://example.com
Menggunakan nama domain atau komputer yang berbeda untuk memisahkan file besar dari file kecil dan menengah; idenya adalah untuk dapat sepenuhnya cache file kecil dan menengah dan untuk secara efisien melayani file besar atau besar (lebih dari 10 - 1000 MB) dengan menggunakan pengaturan yang berbeda
Menggunakan banyak server internet (program) per komputer, masing-masing terikat pada kartu jaringan dan alamat IP sendiri
Menggunakan banyak server internet (komputer) yang dikelompokkan bersama di belakang penyeimbang beban sehingga mereka bertindak atau dilihat sebagai satu server web besar
Menambahkan lebih banyak sumber daya perangkat keras (mis. RAM, disk) ke setiap komputer
Menyetel parameter OS untuk kemampuan dan penggunaan perangkat keras
Menggunakan program komputer yang lebih efisien untuk server web, dll.
Menggunakan solusi lain, terutama jika konten dinamis terlibat.