it.phhsnews.com


it.phhsnews.com / In che modo i server Web ascoltano nuove richieste?

In che modo i server Web ascoltano nuove richieste?


Quando si imparano i server Web e come funzionano, si può essere curiosi di ascoltare costantemente le richieste o attendere fino a quando non ricevono un richiesta di entrare in azione. Con questo in mente, il post di Q & A di SuperUser di oggi ha le risposte per soddisfare la curiosità di un lettore.

La sessione di domande e risposte di oggi ci viene fornita per gentile concessione di SuperUser, una suddivisione di Stack Exchange, un raggruppamento di siti Web di domande e risposte.

Schermata per gentile concessione di xmodulo / Linux Screenshots (Flickr).

La domanda

Il lettore SuperUser user2202911 vuole sapere come i server web ascoltano nuove richieste:

Sto cercando di capire i dettagli di "livello più profondo" come funzionano i server web. Voglio sapere se un server, per esempio, Apache, sta continuamente interrogando per nuove richieste o se funziona con una sorta di sistema di interrupt. Se si tratta di un'interruzione, che cosa sta provocando l'interruzione? È il driver della scheda di rete?

In che modo un server web ascolta le nuove richieste?

La risposta

Il collaboratore SuperUser Greg Bowser ha la risposta per noi:

La risposta breve è una sorta di sistema di interruzione . Essenzialmente, usano l'I / O di blocco, il che significa che dormono (bloccano) mentre aspettano nuovi dati.

  1. Il server crea un socket di ascolto e poi blocca in attesa di nuove connessioni. Durante questo tempo, il kernel mette il processo in uno stato interrompibile sleep e esegue altri processi. Questo è un punto importante; avere il processo di polling continuo sprecherebbe risorse della CPU. Il kernel è in grado di utilizzare le risorse di sistema in modo più efficiente bloccando il processo fino a quando non c'è lavoro per farlo.
  2. Quando arrivano nuovi dati sulla rete, la scheda di rete emette un interrupt.
  3. Vedendo che c'è un interrompendo dalla scheda di rete, il kernel, tramite il driver della scheda di rete, legge i nuovi dati dalla scheda di rete e li archivia in memoria. (Questo deve essere fatto rapidamente e generalmente viene gestito all'interno del gestore di interrupt.)
  4. Il kernel elabora i dati appena arrivati ​​e li associa con un socket. Un processo che sta bloccando su quel socket verrà contrassegnato come eseguibile, il che significa che ora è idoneo per essere eseguito. Non viene necessariamente eseguito immediatamente (il kernel potrebbe decidere di eseguire altri processi ancora).
  5. A suo piacimento, il kernel riattiverà il processo del server Web bloccato. (Poiché ora è eseguibile.)
  6. Il processo del server Web continua ad essere eseguito come se non fosse trascorso il tempo. La sua chiamata di sistema di blocco ritorna e elabora qualsiasi nuovo dato. Quindi vai al passaggio 1.

Hai qualcosa da aggiungere alla spiegazione? Audio disattivato nei commenti. Vuoi leggere più risposte dagli altri utenti di Stack Exchange esperti di tecnologia? Controlla il thread completo di discussione qui.


Digita più veloce su smartphone, tablet o laptop con le scorciatoie di espansione del testo

Digita più veloce su smartphone, tablet o laptop con le scorciatoie di espansione del testo

Un "expander di testo" corregge automaticamente una breve combinazione di caratteri che scrivi su frasi più lunghe. Possono essere utilizzati ovunque in qualsiasi sistema operativo. Ad esempio, puoi digitare "bbl" e farlo espandere automaticamente a "Tornerò più tardi". Questo è particolarmente utile su smartphone e tablet con tastiere tattili, ma può anche essere usato per risparmiare tempo su un laptop o desktop con una tastiera tradizionale.

(how-to)

Come montare e utilizzare un exFAT Drive su Linux

Come montare e utilizzare un exFAT Drive su Linux

Il file system exFAT è ideale per unità flash e schede SD. È come FAT32, ma senza il limite di dimensioni del file di 4 GB. Puoi usare le unità exFAT su Linux con supporto completo in lettura-scrittura, ma dovrai prima installare alcuni pacchetti. Prova a connettere un'unità disco formattata exFAT senza installare il software richiesto e vedrai spesso "Impossibile mount "messaggio di errore che dice" tipo di file system sconosciuto: 'exfat'.

(how-to)