Saya memiliki pertanyaan tentang penggunaan komputer sebagai web server. Mengapa komputer tertentu menjadi web server? Fitur apa yang membuatnya mampu menjadi web server? Apakah ada kasus di mana sebuah komputer dapat bertindak sebagai server web?
Cukup banyak setiap komputer dapat digunakan sebagai [web] server, asalkan dapat terhubung ke jaringan, dan dapat menjalankan perangkat lunak server web. Sebagai web server bisa sangat sederhana, dan ada yang gratis dan open source web server, dalam prakteknya, setiap perangkat dapat bertindak sebagai server web.
Masalah yang lebih besar adalah jejaring samping. Dalam rangka untuk sistem yang bertindak sebagai server, mesin-mesin lainnya perlu untuk dapat mengaksesnya. Jika itu's hanya untuk digunakan di LAN, tidak ada masalah; namun, jika itu's untuk penggunaan yang lebih luas dari Internet, maka data harus diarahkan untuk itu. Ini memerlukan alamat IP statis yang berhubungan dengan server (atau port diteruskan melalui router), atau layanan eksternal yang dapat memetakan nama domain/subdomain untuk mengubah alamat IP dinamis.
(FWIW, anda bisa beli $10 komputer yang dapat bertindak sebagai dasar web server.)
Tentu saja, sementara setiap perangkat dapat bertindak sebagai server web, fungsi dari situs web dapat sangat bervariasi, dan sangat cepat (atau lambat koneksi) mungkin tidak dapat bersaing dengan tuntutan tergantung pada apa situs web tertentu.
Saya perhatikan bahwa segala sesuatu di atas berbicara tentang web server - tapi hal yang sama dapat dikatakan untuk hampir semua jenis server.
It's tidak rumit sama sekali. Itu hanya tergantung pada definisi anda tentang "web server".
It's sepenuhnya mungkin untuk menjalankan "web server" pada perangkat sederhana seperti mikrokontroler.
Membiarkan adalah mempertimbangkan apa yang telanjang minimal server web akan perlu untuk dilakukan. Itu akan perlu untuk output beberapa teks - tidak tentu bahkan dalam HTML untuk klien. Ini akan perlu untuk mengetahui permintaan adalah permintaan, dan merespon dengan tepat. Anda tidak't bahkan perlu konektivitas jaringan jika anda "klien" adalah lokal. Itu akan menjadi sepenuhnya sia-sia web server.
Ini akan menjadi server web setara dengan ini.
Menambahkan konektivitas jaringan untuk klien (Ethernet adalah bagus, tapi ada's tidak ada alasan teknis anda dapat't terhubung ke server web yang berjalan pada wifi) dan mampu rute dari klien akan lebih baik.
$5 ESP8266 – a ini dengan murah, minimal mikrokontroler dengan wifi bisa menangani lebih dari itu, dan mungkin bahkan dasar konten dinamis
Saya menggunakan sesuatu seperti itu untuk cepat berbagi file menggunakan Python. It's masih sepenuhnya mungkin untuk menulis sesuatu seperti ini pada mikrokontroler atau bahkan menjalankannya pada ponsel.
Konten statis adalah membosankan. Menambahkan bahasa dinamis dan anda'a perlu untuk mulai berpikir lebih berat sistem. Hal-hal yang berjalan di Linux atau Windows yang bagus.
Pada titik ini, anda're berbicara router konsumen, kecil aplikasi yang menggunakan halaman web di UI dan semua itu.
Web server isn't bahkan masalah yang kompleks dan dapat ditulis dalam lima baris bash dan berjalan di Linux. Sekarang doom... Tetapi setiap sistem yang dapat menjalankan doom dapat menjalankan web server.
Baik web server setup mampu menangani beban yang diberikan agak rumit.
Secara harfiah, setiap komputer dapat menjadi server web jika memiliki berikut ini:
Tapi apakah itu cukup? Sekarang, yang's pertanyaan rumit.
Untuk komputer untuk menjadi server web yang menyajikan modern halaman web atau aplikasi web untuk seluruh komunitas (seperti sekolah, perusahaan, museum):
Tapi itu hanya minimal untuk operasi kecil. Ketika operasi anda akan lebih besar (yaitu anda mendapatkan lalu lintas berat dan melayani kompleks aplikasi web bukan halaman statis), kebutuhan anda tumbuh. Akhirnya anda akan perlu:
Untuk memanfaatkan infrastruktur Internet untuk melayani seluruh dunia, anda akan perlu:
Tanpa ini, semua yang anda miliki adalah potensi web server.
Pemrograman/Software perspektif:
Sebuah program yang mampu mendengarkan Port 80 pada Network adapter. Yang berjalan pada OS yang anda miliki. Dan dapat memproses permintaan menurut HTTP definisi.
Sebuah program yang mendengarkan setiap port dapat dicapai dari setiap komputer di jaringan yang sama. Idealnya, ini harus menjadi standar yang dikenal port (80 dan 8080 untuk HTML server; memilih di luar 1024 untuk aplikasi kustom). Bahkan praktek umum untuk menjalankan pengembangan jaringan dicapai program pada komputer yang sama yang anda lakukan pengembangan di.
Jika anda dapat mencapai ini melalui localhost, anda dapat mencapai tempat ini dari mana saja dalam jaringan yang sama, dan dari mana pun ada jalan untuk mesin ini dan untuk adapter jaringan.
Peringatan: banyak semua-dalam-satu lingkungan pengembangan di default instalasi membatasi akses ke Localhost. Anda tidak ingin admin tools dicapai dari Internet, setelah semua.
Hardware:
Hardware dimulai di suatu tempat di "yang berusia 10 tahun komputer yang menjalankan XP atau Linux" dan berakhir di suatu tempat di sekitar "128 core, dengan 2 TiB RAM dan 256 TiB Ssd dalam serangan", dengan DB yang berjalan pada server yang berbeda juga. Aplikasi Web cenderung pleasingly parallelizable, sehingga anda dapat/harus itu bahkan lebih dengan cluster server-server tersebut. Dan Geocast. Dan didistribusikan desain. Dan banyak hal lainnya. Hal ini sepenuhnya tergantung pada apa yang skala sedang kita bicarakan.
Yang paling sederhana web server anda mungkin memenuhi adalah router yang anda gunakan, btw. Mereka semua menjalankan Web server untuk konfigurasi tujuan, host pada Linux (yang melakukan semua DHCP dan NAT bekerja).
Jaringan:
Setelah jalan dari jaringan lain, termasuk di mana saja di Internet – sekarang yang adalah cerita yang sama sekali berbeda dan bahkan lebih keras dari pemrograman aplikasi. Antara NAT Router anda dan operator kelas NAT, hal ini menjadi benar-benar keras.
Jika anda memiliki di tangan setiap jenis komputer (PC, laptop, smartphone, raspberryPI...) dengan Python terinstal, cukup ketik:
$ python -m SimpleHTTPServer
Atau jika anda memiliki Node.js dipasang:
$ npm install http-server -g
$ http-server
Selamat, anda memiliki web server!