nl.phhsnews.com


nl.phhsnews.com / Hoe luisteren webservers naar nieuwe verzoeken?

Hoe luisteren webservers naar nieuwe verzoeken?


Wanneer u meer te weten komt over webservers en hoe ze werken, bent u misschien nieuwsgierig of ze voortdurend naar verzoeken luisteren of wachten totdat ze een aanvraag ontvangen verzoek om in actie te komen. Met dat in gedachten heeft de SuperUser Q & A-post van vandaag de antwoorden om de nieuwsgierigheid van een lezer te bevredigen.

De Question & Answer-sessie van vandaag komt tot ons dankzij SuperUser - een onderdeel van Stack Exchange, een door de gemeenschap gestuurde groep van Q & A-websites.

Screenshot met dank aan xmodulo / Linux Screenshots (Flickr).

De vraag

SuperUser-lezer user2202911 wil weten hoe webservers naar nieuwe aanvragen luisteren:

Ik probeer de details van 'dieper niveau' te begrijpen van hoe webservers werken. Ik wil weten of een server, bijvoorbeeld Apache, bijvoorbeeld continu peilt naar nieuwe aanvragen of dat deze werkt via een soort interrupt-systeem. Als het een interrupt is, wat vonk dan met de interrupt? Is het de netwerkkaartstuurprogramma?

Hoe luistert een webserver naar nieuwe aanvragen?

Het antwoord

SuperUser-bijdrager Greg Bowser heeft het antwoord voor ons:

Het korte antwoord is een soort interrupt-systeem . In wezen gebruiken ze I / O blokkeren, wat betekent dat ze slapen (blokkeren) tijdens het wachten op nieuwe gegevens.

  1. De server maakt een luisterende socket en blokkeert vervolgens tijdens het wachten op nieuwe verbindingen. Gedurende deze tijd zet de kernel het proces in een onderbreekbare slaap -status en voert andere processen uit. Dit is een belangrijk punt; het continu hebben van de procespolling zou CPU-bronnen verspillen. De kernel kan de systeembronnen efficiënter gebruiken door het proces te blokkeren totdat er werk voor is.
  2. Wanneer nieuwe gegevens op het netwerk aankomen, geeft de netwerkkaart een interruptie af.
  3. Zien dat er een onderbreken van de netwerkkaart leest de kernel via het stuurprogramma van de netwerkkaart de nieuwe gegevens van de netwerkkaart en slaat deze op in het geheugen. (Dit moet snel worden gedaan en wordt meestal afgehandeld binnen de interrupt handler.)
  4. De kernel verwerkt de nieuw binnengekomen data en associeert deze met een socket. Een proces dat op dat socket blokkeert, wordt gemarkeerd als ranable, wat betekent dat het nu kan worden uitgevoerd. Het hoeft niet noodzakelijkerwijs onmiddellijk te worden uitgevoerd (de kernel kan besluiten om nog andere processen uit te voeren).
  5. Op zijn gemak zal de kernel het geblokkeerde webserverproces ontwaken. (Aangezien het nu uitvoerbaar is.)
  6. Het webserverproces wordt voortgezet alsof er geen tijd verstreken is. De blokkerende systeemoproep wordt geretourneerd en alle nieuwe gegevens worden verwerkt. Ga vervolgens naar stap 1.

Heb je iets toe te voegen aan de uitleg? Geluid uit in de reacties. Wilt u meer antwoorden van andere technisch onderlegde Stack Exchange-gebruikers lezen? Bekijk hier de volledige discussiethread


Het kan uw computer niet schelen als u alles verliest: back-upup nu

Het kan uw computer niet schelen als u alles verliest: back-upup nu

Het probleem met het catastrofale gegevensverlies is dat het moeilijk is om u voor te stellen dat het gebeurt met u ... totdat het is. Je hebt waarschijnlijk je ogen op honderd artikelen gegooid, en dacht dat het goed zou komen, anders kom je er uiteindelijk wel uit. Voordat je ook hier verder gaat, geef me de kans om uit te leggen waarom je dit zou moeten doen, maak een back-up van je foto's, documenten en creatief werk precies op dit moment - en hoe om het op de juiste manier te doen Computers falen (vaak) Er zijn ons hele leven dwaze verhalen over computers verkocht.

(how-to)

Tekstberichten en iMessages in iOS verwijderen

Tekstberichten en iMessages in iOS verwijderen

Of u ze nu via iMessage of SMS hebt ontvangen, soms moet u berichten uit de berichtengeschiedenis van uw iOS-apparaat verwijderen. Misschien haal je oude rommel op, of moet je misschien berichten met meer gevoelige informatie verwijderen. Wat uw reden ook is, u kunt specifieke berichten uit gesprekken verwijderen of hele conversaties in één keer verwijderen (en u kunt ook instellen dat berichten automatisch verlopen).

(how-to)