29Jul

Ako si webové servery počúvajú nové žiadosti?

Keď sa dozviete o webových serveroch a ako fungujú, možno by ste boli zvedaví, či neustále počúvajú požiadavky alebo čakajú, kým nedostanú žiadosť o akciu. S ohľadom na to má dnešný príspevok SuperUser Q & A odpovede na uspokojenie zvedavosti čitateľa.

dnešná otázka &Odpoveď na zasadnutie nám príde s láskavým dovolením SuperUser - subdivíziu Stack Exchange, komunitne riadeného zoskupenia webových stránok Q & A.

Snímka s ukážkou xmodulo / Linux Screenshots( Flickr).

Otázka

čítačka SuperUser user2202911 chce vedieť, ako webové servery počúvajú nové požiadavky:

Snažím sa pochopiť podrobnejšie informácie o tom, ako fungujú webové servery. Chcem vedieť, či napríklad server, napríklad Apache, neustále informuje o nových požiadavkách alebo ak funguje nejaký systém prerušenia. Ak je to prerušenie, čo vyvoláva prerušenie? Je to ovládač sieťovej karty?

Ako webový server počúva nové požiadavky?

Odpoveď

SuperUser prispievateľ Greg Bowser má odpoveď pre nás:

Krátka odpoveď je nejaký systém prerušenia. V podstate používajú blokovanie I / O, čo znamená, že spia( blokujú) pri čakaní na nové údaje.

  1. Server vytvorí počúvaciu soketu a potom čaká na nové pripojenia. Počas tohto času jadro umiestni proces do stavu prerušiteľného spánku a spustí ďalšie procesy. To je dôležitý bod;neustále prebiehajúci procesný prieskum by spôsobil plytvanie zdrojmi CPU.Jadro je schopné efektívnejšie využívať systémové prostriedky tým, že zablokuje proces, kým to nebude robiť.
  2. Po príchode nových údajov do siete sieťová karta vydáva prerušenie.
  3. Keď vidíte, že je sieťová karta prerušená, jadro prostredníctvom ovládača sieťovej karty číta nové dáta zo sieťovej karty a uloží ich do pamäte.(Toto sa musí robiť rýchlo a spravuje sa vo vnútri obslužného programu prerušenia.)
  4. Jadro spracováva novo prijímané údaje a priradí ich k zásuvke. Proces, ktorý blokuje túto zásuvku, bude označený ako spustiteľný, čo znamená, že je teraz možné spustiť.Nepotrebuje okamžite bežať( jadro sa môže rozhodnúť, že ďalšie procesy budú spustené).
  5. Vo svojom voľnom čase sa jadro prebudí proces zablokovaného webového servera.(Keďže je teraz spustiteľné.)
  6. Proces webového servera pokračuje v vykonávaní, akoby neprebehol žiadny čas. Jeho blokovací systémový hovor sa vráti a spracováva nové dáta. Potom prejdite na krok 1.

Musíte niečo doplniť k vysvetleniu? Znížte komentáre. Chcete si prečítať viac odpovedí od iných používateľov technológie Stack Exchange? Pozrite sa na celý diskusný príspevok tu.