Is one http keepalive connection always over a long persistent tcp connection
Non esiste una connessione TCP "persistente". Tutte le connessioni TCP persistono dalla connessione iniziale alla chiusura.
When the http connection closed , will the tcp connection be closed at the same time?
Non esiste il concetto di "connessione chiusa" per HTTP. HTTP conosce solo le richieste e le risposte e viene effettuato uno scambio la richiesta viene inviata completamente e la risposta è completamente ricevuta. Con keep-alive puoi avere più di questi scambi all'interno di una singola connessione TCP.
La chiusura della connessione TCP significa la chiusura della connessione HTTP, ma non esiste una chiusura esplicita della connessione HTTP.