29Jul

Bagaimana Web Server Dengarkan Permintaan Baru?

click fraud protection

Saat belajar tentang server web dan cara kerjanya, Anda mungkin penasaran jika mereka terus mendengarkan permintaan atau jika mereka menunggu sampai mereka menerima permintaan untuk beraksi. Dengan pemikiran tersebut, Q & SuperUser terbaru memiliki jawaban untuk memuaskan keingintahuan pembaca.

Pertanyaan Hari Ini &Sesi jawaban datang kepada kami atas izin SuperUser - subdivisi dari Stack Exchange, pengelompokan berbasis komunitas dari Q & A situs web.

Screenshot milik xmodulo / Linux Screenshots( Flickr).

Pertanyaan

User reader SuperUser user2202911 ingin mengetahui bagaimana server web mendengarkan permintaan baru:

Saya mencoba untuk memahami detail 'tingkat lebih dalam' tentang bagaimana server web bekerja. Saya ingin tahu apakah sebuah server, misalnya Apache, misalnya, terus polling untuk permintaan baru atau jika bekerja dengan semacam sistem interupsi. Jika itu adalah interupsi, apa yang memicu interrupt? Apakah itu driver kartu jaringan?

Bagaimana server web mendengarkan permintaan baru?

instagram viewer

Jawaban

SuperUser kontributor Greg Bowser memiliki jawaban untuk kita:

Jawaban singkatnya adalah semacam sistem interupsi. Intinya, mereka menggunakan blocking I / O, artinya mereka tidur( block) sambil menunggu data baru.

  1. Server membuat soket mendengarkan dan kemudian memblokir sambil menunggu koneksi baru. Selama masa ini, kernel menempatkan proses tersebut ke dalam keadaan yang terganggu dan menjalankan proses lainnya. Ini adalah poin penting;Setelah polling proses terus menerus akan menghabiskan sumber daya CPU.Kernel dapat menggunakan sumber daya sistem secara lebih efisien dengan memblokir proses sampai ada pekerjaan yang harus dilakukan.
  2. Saat data baru tiba di jaringan, kartu jaringan mengeluarkan interupsi.
  3. Melihat ada interupsi dari kartu jaringan, kernel, melalui driver kartu jaringan, membaca data baru dari kartu jaringan dan menyimpannya di memori.(Ini harus dilakukan dengan cepat dan umumnya ditangani di dalam penangan interupsi.)
  4. Kernel memproses data yang baru tiba dan mengaitkannya dengan soket. Sebuah proses yang memblokir pada soket tersebut akan ditandai runnable, artinya sekarang layak dijalankan. Ini tidak harus segera dijalankan( kernel mungkin memutuskan untuk menjalankan proses lainnya).
  5. Pada waktu senggang, kernel akan membangunkan proses server web yang diblokir.(Karena sekarang bisa dijalankan.)
  6. Proses server web terus berjalan seolah-olah tidak ada waktu yang berlalu. Sistem penghentian panggilannya kembali dan memproses semua data baru. Lalu lanjutkan ke langkah 1.

Punya sesuatu untuk ditambahkan ke penjelasannya? Terdengar dalam komentar. Ingin membaca lebih banyak jawaban dari pengguna Stack Exchange tech-savvy lainnya? Simak thread diskusi selengkapnya disini.