Dove vengono conservate queste informazioni ("questa connessione è tra computer A
e server F
")?
Una connessione TCP viene riconosciuta dall'IP e dalla porta di origine e dall'IP e dalla porta di destinazione. Il tuo sistema operativo, tutti i dispositivi sensibili alla sessione intermedi e il sistema operativo del server riconosceranno la connessione da questo.
HTTP funziona con richiesta-risposta: il client si connette al server, esegue una richiesta e riceve una risposta. Senza keep-alive, la connessione a un server HTTP viene chiusa dopo ogni risposta. Con HTTP keep-alive mantieni aperta la connessione TCP sottostante fino a quando non vengono soddisfatti determinati criteri.
Ciò consente più coppie richiesta-risposta su una singola connessione TCP, eliminando alcune delle connessioni relativamente lente di TCP.
Quando IIS (F) invia l'intestazione keep alive (o l'utente invia keep-alive), significa che (E, C, B) salva una connessione
No. I router non hanno bisogno di ricordare le sessioni. In effetti, non è necessario che più pacchetti TCP appartenenti alla stessa sessione TCP passino tutti attraverso gli stessi router, ovvero perché TCP possa gestirli. I router scelgono semplicemente il percorso IP migliore e inoltrano i pacchetti. Keep-Alive è solo per client, server e altri dispositivi intermedi in grado di riconoscere la sessione.
che è solo per la mia sessione?
Significa che nessun altro può usare quella connessione
Questa è l' intenzione delle connessioni TCP : è una connessione end-to-end destinata solo a queste due parti.
In caso affermativo, significa che mantenere vivo l'intestazione ridurre il numero di utenti di connessione sovrapposti?
Definisci "connessioni sovrapposte". Vedi connessione persistente HTTP per alcuni vantaggi e svantaggi, come:
- Riduzione dell'utilizzo di CPU e memoria (perché meno connessioni aperte contemporaneamente).
- Abilita il pipeline HTTP di richieste e risposte.
- Ridotta congestione di rete (meno connessioni TCP).
- Latenza ridotta nelle richieste successive (senza handshaking).
in caso affermativo, per quanto tempo mi viene salvata la connessione? (in altre parole, se imposto mantieni vivo- "mantieni" fino a quando?)
Una tipica risposta keep-alive è simile a questa:
Keep-Alive: timeout=15, max=100
Vedere ad esempio l' intestazione Keep-Alive del protocollo HTTP (Hypertext Transfer Protocol) (una bozza per HTTP / 2 in cui l'intestazione keep-alive è spiegata in maggiore dettaglio rispetto a 2616 e 2086 ):
Un host imposta il valore del timeout
parametro sul tempo in cui l'host consentirà a una connessione inattiva di rimanere aperta prima che venga chiusa. Una connessione è inattiva se nessun dato viene inviato o ricevuto da un host.
Il max
parametro indica il numero massimo di richieste che un client effettuerà o che un server consentirà di effettuare sulla connessione persistente. Una volta inviato il numero specificato di richieste e risposte, l'host che includeva il parametro potrebbe chiudere la connessione.
Tuttavia, il server è libero di chiudere la connessione dopo un tempo o un numero arbitrario di richieste (purché restituisca la risposta alla richiesta corrente). La modalità di implementazione dipende dal tuo server HTTP.