Hallo TS,
Bei HTTPs muss er pro Verbindung erst die Verschlüsselung aushandeln,
Nein, dafür gibt es Sessions und session resumption. Der Handshake muss erst nach Ablauf der Session wiederholt werden.
dann die Ressource verschlüsseln und kann dann erst senden.
Nein, TLS unterstützt stream ciphers, es muss also nicht erst alles verschlüsselt werden, sondern es wird ein Stream rausgeschickt; und selbst wenn kein stream cipher benutzt wird, die anderen ciphers sind block ciphers, es muss also nur der Block abgewartet werden und nicht das ganze Dokument.
Ich vermute mal, dass das Aushandeln der Verschlüsselung und das Verschlüsseln ca. vier- bis fünfmal solange dauert, wie ein unverschlüsselter einfacher Request.
Vermutungen sind im Bereich Performance immer schlecht. Wieviel langsamer HTTPS ist, hängt sehr stark vom Anwendungsfall ab, das musst du benchmarken. HTTPS kann in der Praxis sogar deutlich schneller sein als HTTP, weil HTTP 2 benutzt werden kann - hängt aber, wie gesagt, vom Anwendungsfall ab.
Edit: Siehe auch dieser Artikel und diesen Test.
LG,
CK