Le sessioni HTTP e le sessioni TLS sono indipendenti.
HTTP tiene traccia della sessione di solito con i cookie HTTP. Le richieste da una singola sessione HTTP possono essere inviate su più connessioni TLS ciascuna con le proprie sessioni TLS.
La sessione TLS è tracciata con ticket di sessione TLS. Il ticket di sessione tiene traccia dei parametri di crittografia (quale cifra da utilizzare, chiave di sessione, ecc.); i parametri di crittografia sono generalmente associati a una singola connessione TLS, ma TLS può anche riprendere una sessione TLS per creare una nuova connessione TLS con gli stessi parametri di crittografia di una connessione precedente.
Inoltre, se si dispone di un server proxy, può multiplexare più richieste da diversi client in una singola connessione TLS, e questo significa che si può avere più sessioni HTTP in una singola connessione TLS.
When a client requests an SSL web resource via a browser (ie: a login request) and then follows up with additional requests are all the requests executed in the same SSL session? Or does the browser create and tear down the session with each request?
Questa è l'implementazione definita. I programmi utente possono decidere di utilizzare più connessioni TLS e / o sessioni se ritengono che ciò sia vantaggioso per le prestazioni. Il browser moderno in genere apre diverse connessioni TLS per rendere le richieste HTTP / 1.1 contemporaneamente fino a un limite (di solito 4-8 connessioni simultanee), quindi riutilizza le connessioni il più possibile. I browser moderni solitamente utilizzano una singola connessione TLS per le richieste HTTP / 2 in quanto HTTP / 2 supporta la richiesta multiplexing in modo nativo.
And do servers track session state across these requests solely through cookies which are encrypted over the SSL protocol
I server HTTP tracciano solo la sessione HTTP tramite i cookie HTTP. La parte TLS del server Web tiene traccia delle connessioni TLS, ma questo è indipendente dalle sessioni HTTP. Alcuni server Web possono anche utilizzare l'autenticazione reciproca per autenticare l'utente tramite certificato client SSL; e questo può essere usato per tenere traccia della sessione anche se il server è configurato per passare le informazioni sul certificato client nella richiesta HTTP (ad esempio come intestazioni HTTP ).
or is there any functionality provided through SSL where servers know that the initial request came from the same browser as the following requests?
TLS ha ticket di sessione per tenere traccia delle sessioni TLS.
If it's just via encrypted cookies what is to prevent someone from spoofing the cookie value somehow and making a request with that spoofed cookie thus impersonating the original user?
Se un utente malintenzionato può in qualche modo impossessarsi del cookie dal browser dell'utente, sei già fregato.