Peladen web
Server web atau peladen web adalah perangkat lunak server, atau perangkat keras yang didedikasikan untuk 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:
- Peramban web bernama WorldWideWeb[4]
- 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.
Terjemahan path
Server web dapat memetakan komponen path dari Uniform Resource Locator (URL) menjadi:
- 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 kernel OS, 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:
- Pengaturannya sendiri,
- Jenis permintaan HTTP,
- Apakah kontennya statis atau dinamis,
- Apakah konten di-cache, dan
- keterbatasan perangkat keras dan perangkat lunak OS komputer tempat server web berjalan.
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
- Manajemen bandwidth dan pembentukan lalu lintas, untuk memuluskan puncak dalam penggunaan jaringan
- Menggunakan teknik cache web
- 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.
Saham
Februari 2019
Di bawah ini adalah statistik terbaru pangsa pasar semua situs server web teratas di Internet oleh W3Techs. Penggunaan Server Web untuk Situs Web.
Produk | Vendor | Persen |
---|---|---|
Apache | Apache | 44.3% |
nginx | NGINX, Inc. | 41.0% |
IIS | Microsoft | 8.9% |
LiteSpeed Web Server | LiteSpeed Technologies | 3.9% |
GWS | 0.9% |
Semua server web lain digunakan oleh kurang dari 1% dari situs web.
Juli 2018
Di bawah ini adalah statistik terbaru pangsa pasar semua situs server web teratas di Internet oleh W3Techs Penggunaan Server Web untuk Situs Web.
Produk | Vendor | Produk |
---|---|---|
Apache | Apache | 45.9% |
nginx | NGINX, Inc. | 39.0% |
IIS | Microsoft | 9.5% |
LiteSpeed Web Server | LiteSpeed Technologies | 3.4% |
GWS | 1.0% |
Semua server web lain digunakan oleh kurang dari 1% dari situs web.
Februari 2017
Di bawah ini adalah statistik terbaru pangsa pasar dari semua situs server web teratas di Internet oleh Netcraft Survei Server Web Februari 2017 .
Produk | Vendor | Januari 2017 | Persen | Februari 2017 | Persen | Perubahan | Warna bagan |
---|---|---|---|---|---|---|---|
IIS | Microsoft | 821,905,283 | 45.66% | 773,552,454 | 43.16% | −2.50 | red |
Apache | Apache | 387,211,503 | 21.51% | 374,297,080 | 20.89% | −0.63 | black |
nginx | NGINX, Inc. | 317,398,317 | 17.63% | 348,025,788 | 19.42% | 1.79 | green |
GWS | 17,933,762 | 1.00% | 18,438,702 | 1.03% | 0.03 | blue |
Februari 2016
Di bawah ini adalah statistik terbaru pangsa pasar dari semua situs server web teratas di Internet oleh Netcraft Survei Server Web Februari 2016.
Produk | Vendor | Januari 2016 | Persen | Februari 2016 | Persen | Perubahan | Warna bagan |
---|---|---|---|---|---|---|---|
Apache | Apache | 304,271,061 | 33.56% | 306,292,557 | 32.80% | 0.76 | black |
IIS | Microsoft | 262,471,886 | 28.95% | 278,593,041 | 29.83% | 0.88 | red |
nginx | NGINX, Inc. | 141,443,630 | 15.60% | 137,459,391 | 16.61% | −0.88 | green |
GWS | 20,799,087 | 2.29% | 20,640,058 | 2.21% | −0.08 | blue |
Apache, IIS dan Nginx adalah server web yang paling banyak digunakan di World Wide Web.[9][10]
Lihat pula
Referensi
- ^ Patrick, Killelea (2002). Web performance tuning (edisi ke-2nd). Beijing: O'Reilly. hlm. 264. ISBN 059600172X. OCLC 49502686.
- ^ Zolfagharifard, Ellie (2018-11-24). "'Father of the web' Sir Tim Berners-Lee on his plan to fight fake news". The Telegraph (dalam bahasa Inggris). ISSN 0307-1235. Diakses tanggal 2019-02-01.
- ^ "History of Computers and Computing, Internet, Birth, The World Wide Web of Tim Berners-Lee". history-computer.com. Diakses tanggal 2019-02-01.
- ^ Macaulay, Tom. "What are the best open source web servers?". ComputerworldUK. Diakses tanggal 2019-02-01.
- ^ Fisher, Tim; Lifewire. "Getting a 502 Bad Gateway Error? Here's What to Do". Lifewire (dalam bahasa Inggris). Diakses tanggal 2019-02-01.
- ^ Fisher, Tim; Lifewire. "Getting a 503 Service Unavailable Error? Here's What to Do". Lifewire (dalam bahasa Inggris). Diakses tanggal 2019-02-01.
- ^ "What is a 502 bad gateway and how do you fix it?". IT PRO (dalam bahasa Inggris). Diakses tanggal 2019-02-01.
- ^ Handbook of digital forensics and investigation. Casey, Eoghan., Altheide, Cory. Burlington, Mass.: Academic Press. 2010. hlm. 451. ISBN 9780080921471. OCLC 649907705.
- ^ Vaughan-Nichols, Steven J. "Apache and IIS' Web server rival NGINX is growing fast". ZDNet (dalam bahasa Inggris). Diakses tanggal 2019-02-01.
- ^ Hadi, Nahari (2011). Web commerce security: design and development. Krutz, Ronald L. Indianapolis: Wiley Pub. ISBN 9781118098899. OCLC 757394142.
Pranala luar
- RFC 2616, dokumen Request for Comments yang mendefinisikan protokol HTTP 1.1