Server mendengarkan pada port 80 tidak HARUS menangani beberapa proses. Daemon TCP sederhana dari tahun-tahun yang lebih tua hanya dapat menangani satu koneksi pada satu waktu. Anda dapat meniru perilaku ini dengan memiliki program seperti netcat
mendengarkan pada port tertentu dan mencoba menghubungkan dua mesin ke sana. Satu akan masuk, yang lain akan bangkit tanpa koneksi. Daemon ini sebagian besar tidak berguna sehingga Anda tidak akan melihatnya lagi.
Untuk sesuatu seperti server web, ia mendengarkan langsung di port. Yang perlu diingat adalah bahwa ia berada di atas perpustakaan soket sistem operasi. Ketika koneksi baru dibuat, perpustakaan soket meneruskan soket baru ke perangkat lunak server web. Pada titik itu, perangkat lunak server web memiliki beberapa opsi.
Satu kemungkinan adalah bahwa ia melewati objek-soket ke utas baru dalam proses yang sama. Setiap kali komunikasi terjadi melalui soket ini, utas ini akan menanganinya. Proses induk memediasi thread mana yang aktif pada waktu tertentu, yang bisa banyak.
Kemungkinan lain adalah bahwa ia memutar proses baru dan meneruskan objek soket ke proses. Seperti yang saya pahami, sekarang tergantung pada sistem soket sistem operasi yang memediasi komunikasi antara proses anak ini dan target mereka. Proses induk masih memiliki beberapa kontrol atas proses, seperti membunuh yang digantung dan komunikasi antar-proses lainnya.
Mana dari pendekatan ini yang lebih efisien tergantung pada sistem operasi. IIRC, Apache dapat berjalan di kedua mode.
Pada dasarnya, perpustakaan soket menyediakan tingkat pemrosesan paralel ke server web. Ia dapat menangani beberapa koneksi simultan yang secara aktif mentransfer data, semuanya sambil menerima koneksi baru.
Untuk peramban yang dapat memutar beberapa upaya koneksi ke server web untuk meningkatkan waktu pemuatan, paralelisme juga berlaku pada ujung peramban, ini adalah hal yang baik dan luar biasa. Browser melacak keadaan halaman saat memuat, dan beberapa upaya koneksi yang diputarnya adalah bagian dari proses.
recv()
dalam setiap proses.