2010-11-22 12 views
13

So che HTTP keep-alive è attivo per impostazione predefinita in HTTP 1.1 ma voglio trovare un modo per confermare che funzioni effettivamente.Come testare HTTP Keep alive funziona in realtà

Qualcuno sa di un modo semplice per eseguire il test da un browser Web (ad esempio, come dare un senso al wirehark). So che ho bisogno di cercare più richieste HTTP sulla stessa connessione TCP, ma non so come confermare che in wireshark o in qualsiasi altro modo.

Grazie!

risposta

4

Se si utilizza Windows Vista o versione successiva, è possibile utilizzare Gestione risorse. La scheda Rete elencherà tutte le connessioni TCP aperte e il processo con cui sono state avviate. Apri un browser con una scheda, cerca la tua pagina e prova.

+0

Grazie per quello. Non ho Resource Manager (penso che sia per i server), ma ho usato TCPView da sysinternals. Aiuta (ancora confondendo però !!!) – sub

+0

Si potrebbe anche solo eseguire 'netstat'. – Brad

16

Come Ron Garrity said on ServerFault, è possibile utilizzare Curl come questo:

curl -Iv http://www.aptivate.org 2>&1 | grep -i 'connection #0' 

Ed emette queste due righe se keep-alive sta lavorando:

* Connection #0 to host www.aptivate.org left intact 
* Closing connection #0 

E se keep-alive non funziona, quindi emette semplicemente questa riga:

* Closing connection #0 
0

Innanzitutto, prova a catturare il traffico sulla targa sito et in Wireshark e limitare a ciò che vi serve con un filtro come:

tcp port 80 and host targetwebsite.com 

quindi caricare la pagina in un browser o prenderlo con qualsiasi strumento che avete. Se la pagina Web di destinazione si aggiorna automaticamente o uno dei valori in esso contenuti, lasciarlo aperto finché non si ha almeno una modifica in esso.

Ora si dispone di dati sufficienti e è possibile interrompere la procedura di acquisizione in Wireshark.

Si dovrebbero vedere dozzine di record e il loro protocollo dovrebbe essere TCP o HTTP. Ai fini del tuo semplice controllo rapido, non avrai bisogno dei record TCP. Quindi, rimuoverli applicando un altro filtro. Nella parte superiore della finestra c'è un campo "filtro". Digitare http lì e wireshark nasconderà tutti i record tranne quelli che hanno un protocollo HTTP.

Ora seleziona un record e guarda il livello successivo di dettagli, che puoi trovare nella seconda casella sotto tutti i record. Per essere sicuro che stai guardando nel posto giusto, la prima riga inizia con "Frame XYZ". La quarta riga inizia con "Transmission Control Protocol". Cercare i numeri di porta dopo "Porta SRC" e "Porta DST:". A seconda del record, uno di questi numeri appartiene al server web (in genere 80) e l'altro mostra il numero di porta alla fine.

Controllare ora un paio di record GET diversi. Per sapere se la richiesta è un record GET, controlla la colonna Info. Se i numeri di porta nella tua parte vengono usati più volte, tutte queste richieste sono state fatte tramite HTTP keepalive.

Ricordare che la maggior parte dei browser aprirà più connessioni, anche se il server Web supporta keepalive. Quindi, NON concludere la tua valutazione trovando solo una porta diversa.

Problemi correlati