HTTP vs HTTPS-Leistung

363

Gibt es wesentliche Leistungsunterschiede zwischen http und https? Ich erinnere mich an die Lektüre, dass HTTPS ein Fünftel so schnell sein kann wie HTTP. Gilt dies für die Webserver / Browser der aktuellen Generation? Wenn ja, gibt es Whitepaper, die dies unterstützen?

Jim Geurts
quelle
1
Sie sollten auch HTTP2 ausprobieren, das Browser derzeit nur bei Verwendung mit HTTPS unterstützen. en.wikipedia.org/wiki/HTTP/2
Luca Steeb
1
httpsist immer langsamer als http(oder viel langsamer).
i486
Wenn ein transparentes Caching stattfindet (z. B. Tintenfisch), ist dies möglicherweise von Bedeutung. Das Protokoll selbst hat meines Erachtens keinen großen Overhead.
Rolf

Antworten:

231

Darauf gibt es eine sehr einfache Antwort: Profilieren Sie die Leistung Ihres Webservers, um festzustellen, wie hoch die Leistungseinbußen für Ihre spezielle Situation sind. Es gibt verschiedene Tools, mit denen Sie die Leistung eines HTTP- und eines HTTPS-Servers vergleichen können (JMeter und Visual Studio kommen in den Sinn), und sie sind recht einfach zu verwenden.

Niemand kann Ihnen eine sinnvolle Antwort ohne einige Informationen über die Art Ihrer Website, Hardware, Software und Netzwerkkonfiguration.

Wie andere bereits gesagt haben, wird es aufgrund der Verschlüsselung einen gewissen Overhead geben, der jedoch in hohem Maße von folgenden Faktoren abhängt:

  • Hardware
  • Serversoftware
  • Verhältnis von dynamischem zu statischem Inhalt
  • Client-Entfernung zum Server
  • Typische Sitzungslänge
  • Usw. (mein persönlicher Favorit)
  • Caching-Verhalten von Clients

Nach meiner Erfahrung sind Server mit hohem dynamischen Inhalt tendenziell weniger von HTTPS betroffen, da die für die Verschlüsselung aufgewendete Zeit (SSL-Overhead) im Vergleich zur Zeit für die Erstellung von Inhalten unbedeutend ist.

Server, die nur einen relativ kleinen Satz statischer Seiten bereitstellen, die leicht im Speicher zwischengespeichert werden können, haben einen viel höheren Overhead (in einem Fall wurde der Durchsatz in einem "Intranet" beeinträchtigt).

Bearbeiten: Ein Punkt, der von mehreren anderen angesprochen wurde, ist, dass SSL-Handshake die Hauptkosten von HTTPS sind. Das ist richtig, weshalb "typische Sitzungslänge" und "Caching-Verhalten von Clients" wichtig sind.

Viele, sehr kurze Sitzungen bedeuten, dass die Handshake-Zeit alle anderen Leistungsfaktoren überfordert. Längere Sitzungen bedeuten, dass die Handshake-Kosten zu Beginn der Sitzung anfallen, nachfolgende Anforderungen jedoch einen relativ geringen Overhead haben.

Das Client-Caching kann in mehreren Schritten erfolgen, von einem großen Proxyserver bis hin zum einzelnen Browser-Cache. Im Allgemeinen werden HTTPS-Inhalte nicht in einem gemeinsam genutzten Cache zwischengespeichert (obwohl einige Proxyserver ein Man-in-the-Middle-Verhalten ausnutzen können, um dies zu erreichen). Viele Browser speichern HTTPS-Inhalte für die aktuelle Sitzung und häufig über Sitzungen hinweg zwischen. Die Auswirkung des Nicht-Caching oder weniger Caching bedeutet, dass Clients denselben Inhalt häufiger abrufen. Dies führt zu mehr Anforderungen und Bandbreite, um die gleiche Anzahl von Benutzern zu bedienen.

James Schek
quelle
James, hatte gehofft, Sie könnten einen kurzen Kommentar zur Vergleichsgeschwindigkeit dieser aSSL-Lösung abgeben : assl.sullof.com/assl Gibt es etwas, das in Bezug auf die Leistung gewonnen wurde? Vielen Dank!
Matt Gardner
PS: Nach meinem Verständnis erfordert diese Lösung einen clientseitigen Schlüssel (der im Fall einer Webkit- / Titan-App implementiert werden könnte). Das Ziel besteht einfach darin, diese Komponente der Geschwindigkeitsgleichung zusammen mit den anderen von Ihnen genannten zu maximieren.
Matt Gardner
7
Dieser Beitrag beantwortet die Frage nicht wirklich. Es scheint, dass Jim Geurts nach der Leistung von HTTP und HTTPS selbst fragt, nicht nach einer bestimmten Implementierung. HTTPS ist zweifellos langsamer, weil es mehr Arbeit leistet. Die Frage ist also, wie viel langsamer? Jeder weiß, dass Sie unterschiedliche Ergebnisse erzielen, wenn Sie weitere Variablen hinzufügen.
Elliot Cameron
74
Diese Antwort erwähnt am Anfang viele irrelevante (mit anderen Worten falsche) Dinge . Er braucht 5 Absätze, um zur richtigen Antwort zu gelangen, nämlich HANDSHAKING .
Bobobobo
2
Über HTTPS bereitgestellte Inhalte werden nicht von Proxys zwischengespeichert . Alle modernen Browser
speichern
222

HTTPS erfordert einen ersten Handshake, der sehr langsam sein kann. Die tatsächliche Datenmenge, die im Rahmen des Handshakes übertragen wird, ist nicht sehr groß (normalerweise unter 5 kB). Bei sehr kleinen Anforderungen kann dies jedoch einen erheblichen Overhead bedeuten. Sobald der Handshake abgeschlossen ist, wird jedoch eine sehr schnelle Form der symmetrischen Verschlüsselung verwendet, sodass der Overhead dort minimal ist. Fazit: Viele kurze Anfragen über HTTPS sind viel langsamer als über HTTP. Wenn Sie jedoch viele Daten in einer einzigen Anfrage übertragen, ist der Unterschied unbedeutend.

Keepalive ist jedoch das Standardverhalten in HTTP / 1.1, sodass Sie einen einzelnen Handshake und dann viele Anforderungen über dieselbe Verbindung ausführen. Dies macht einen signifikanten Unterschied für HTTPS. Sie sollten Ihre Site wahrscheinlich profilieren (wie von anderen vorgeschlagen), um sicherzugehen, aber ich vermute, dass der Leistungsunterschied nicht spürbar ist.

Graeme Perrow
quelle
19
Es stellt sich heraus, dass diese Handshake-Kosten mindestens 4 bis 10 Mal pro Sitzung bezahlt werden, da die meisten Browser mehrere Verbindungen zu demselben Server verwenden. Abhängig davon, wie lange das https-Keep-Alive für einen Browser dauert, kann es während einer Sitzung wiederholt auftreten.
James Schek
6
In Bezug auf die HTTP-Keepalive-Funktion haben wir das Szenario erlebt, in dem die Verbindungen nicht dauerhaft bleiben. Für jede Anforderung wird die Anforderungsverbindung aufgebaut und abgebrochen, was einen MA-SSL-Handshake bedeutet. Es gibt Möglichkeiten, bei denen der Client oder Server das Schließen der Verbindungen konfiguriert hat. Tritt normalerweise in Tomcat / Websphere-Umgebungen auf.
Zkarthik
8
@JamesSchek Mehrere Verbindungen sollten dieselbe SSL- Sitzung wiederverwenden , was das Bild erheblich verändert. Gleiches gilt auch dann, wenn HTTP Keep-Alive nicht funktioniert.
Marquis von Lorne
14
@EJP Das stimmt. Und im Jahr 2013 verwenden die meisten Browser / Server und SSL / TLS-Implementierungen die Wiederverwendung von Sitzungen. Im Jahr 2008 war dies nicht immer eine sichere Annahme.
James Schek
3
Diese Frage wird in Google für "http vs https-Leistung" häufig angezeigt. Während die obige Antwort 2008 zutraf, gilt sie 2015 nicht mehr und sollte nicht als Grundlage für Entscheidungen zur Vermeidung der Verwendung von https verwendet werden.
Paul Schreiber
101

Um wirklich zu verstehen, wie HTTPS Ihre Latenz erhöht, müssen Sie verstehen, wie HTTPS-Verbindungen hergestellt werden. Hier ist ein schönes Diagramm . Der Schlüssel ist, dass anstatt dass der Client die Daten nach 2 "Etappen" erhält (eine Hin- und Rückfahrt, Sie senden eine Anfrage, der Server sendet eine Antwort), der Client Daten erst nach mindestens 4 Etappen (2 Hin- und Rückfahrten) erhält. . Wenn es also 100 ms dauert, bis ein Paket zwischen dem Client und dem Server verschoben wird, dauert Ihre erste HTTPS-Anforderung mindestens 500 ms.

Dies kann natürlich durch die Wiederverwendung der HTTPS-Verbindung (was Browser tun sollten) verringert werden, aber es erklärt einen Teil dieses anfänglichen Stillstands beim Laden einer HTTPS-Website.

twk
quelle
1
Wie kann man in Bezug auf einen Java-Client die HTTPS-Verbindung wiederverwendbar machen? Ich meine, kann ich ein statisches Objekt von HttpsConnection erstellen und es wiederverwenden? (in einem Webanwendungskontext)
Niks
1
5 Jahre später funktioniert der Link zum schönen + 1-Diagramm nicht. Kann jemand ihn finden und in die Antwort anstelle eines Links einfügen?
Jim Wolff
2
@ FRoZen gefunden alternativen Link
Stefan L
Ich denke auch, dass diese Seite ein sehr gutes Diagramm von http ist, um das ganze Bild besser zu verstehen: blog.catchpoint.com/2010/09/17/anatomyhttp
Elliptische Ansicht
1
@Nikhil Java verwendet die zugrunde liegende Verbindung automatisch wieder und teilt sie für alle Anforderungen, sofern dies nicht vom Benutzer über erzwungen wird disconnect. Überprüfen Sie die Dokumente .
Mohnish
76

Der Overhead ist NICHT auf die Verschlüsselung zurückzuführen. Auf einer modernen CPU ist die für SSL erforderliche Verschlüsselung trivial.

Der Overhead ist auf die langwierigen SSL-Handshakes zurückzuführen, die die Anzahl der für eine HTTPS-Sitzung erforderlichen Roundtrips gegenüber einer HTTP-Sitzung drastisch erhöhen.

Messen Sie (mit einem Tool wie Firebug) die Ladezeiten der Seite, während sich der Server am Ende einer simulierten Verbindung mit hoher Latenz befindet. Es gibt Tools, um eine Verbindung mit hoher Latenz zu simulieren - für Linux gibt es "netem". Vergleichen Sie HTTP mit HTTPS im selben Setup.

Die Latenz kann bis zu einem gewissen Grad verringert werden durch:

  • Stellen Sie sicher, dass Ihr Server HTTP-Keepalives verwendet. Auf diese Weise kann der Client SSL-Sitzungen wiederverwenden, sodass kein weiterer Handshake erforderlich ist
  • Reduzieren Sie die Anzahl der Anforderungen auf so wenige wie möglich - indem Sie Ressourcen nach Möglichkeit kombinieren (z. B. .js enthalten Dateien, CSS) und das clientseitige Caching fördern
  • Reduzieren Sie die Anzahl der Seitenladevorgänge, z. B. indem Sie nicht erforderliche Daten in die Seite laden (möglicherweise in einem versteckten HTML-Element) und diese dann mithilfe eines Client-Skripts anzeigen.
MarkR
quelle
8
Ich stimme @MarkR sehr zu. In meinem letzten Profil meiner Homepage, HTTP vs HTTPS, betrugen die durchschnittlichen Ladezeiten 1,5 s bzw. 4,5 s. Bei der Betrachtung der Verbindungsdetails war der große Verlangsamungsfaktor der zusätzliche Roundtrip aufgrund des SSL-Handshakes. Mobile Browser über 3G waren noch schlimmer. Die Zahlen waren 5s bzw. 9s.
Clint Pachl
26

Dezember 2014 Update

Mit der HTTP- und HTTPS-Test- Website von AnthumChris können Sie den Unterschied zwischen HTTP- und HTTPS-Leistung in Ihrem eigenen Browser problemlos testen : „Diese Seite misst die Ladezeit über unsichere HTTP- und verschlüsselte HTTPS-Verbindungen. Auf beiden Seiten werden 360 eindeutige, nicht zwischengespeicherte Bilder geladen (insgesamt 2,04 MB). “

Die Ergebnisse können Sie überraschen.

Es ist wichtig, über aktuelle Kenntnisse der HTTPS-Leistung zu verfügen, da die Let's Encrypt Certificate Authority dank Mozilla, Akamai, Cisco, Electronic Frontier Foundation und IdenTrust ab Sommer 2015 kostenlose, automatisierte und offene SSL-Zertifikate ausstellt.

Update Juni 2015

Updates zu Let's Encrypt - Ankunft im September 2015:

Weitere Infos auf Twitter: @letsencrypt

Weitere Informationen zur HTTPS- und SSL / TLS-Leistung finden Sie unter:

Weitere Informationen zur Bedeutung der Verwendung von HTTPS finden Sie unter:

Lassen Sie mich zusammenfassend Ilya Grigorik zitieren : "TLS hat genau ein Leistungsproblem: Es wird nicht häufig genug verwendet. Alles andere kann optimiert werden."

Vielen Dank an Chris - Autor des Benchmarks HTTP vs HTTPS Test - für seine Kommentare unten.

rsp
quelle
6
Dass "HTTP vs HTTPS Test" absichtlich täuscht, bitte nicht verlinken. Diese Seite vergleicht tatsächlich HTTP mit SPDY . Es ist wahr, wenn Sie mir nicht glauben, versuchen Sie es im IE und sehen Sie, was es sagt. Es gibt keine Situation, in der eine HTTP-Anforderung schneller ist als eine entsprechende HTTPS-Anforderung.
oder
3
Google hat SPDY gezwungen, gesicherte Verbindungen nur aus politischen und nicht aus technischen Gründen zu verwenden. HTTP / 2 (das die gleichen Techniken zur Geschwindigkeitsverbesserung von SPDY verwendet) kann eine ungesicherte Verbindung verwenden und ist dabei etwas schneller. Eine ungesicherte Verbindung ist immer noch mindestens ein bisschen schneller als eine gesicherte Verbindung mit demselben Protokoll. Der "HTTP vs HTTPS Test" täuscht absichtlich und ist irreführend.
Orrd
3
Die Website bietet einen quantitativen Vergleich mit reellen Zahlen und ist bestrebt, mehr Menschen zum Schutz ihrer Benutzer mit HTTPS zu ermutigen. Die Meinungen bringen uns nur so weit und wir haben immer die Freiheit, langsame, unsichere Anwendungen für IE über HTTP zu erstellen. Ich werde immer dafür stimmen, schnelle, hochmoderne und sichere Webanwendungen für Chrome / Firefox mit HTTPS zu erstellen.
AnthumChris
2
Die Arithmetik auf httpvshttps.com sieht falsch aus: 1,7 Sekunden im Vergleich zu 34 Sekunden sind nicht "95% schneller". Es ist 20 × schneller oder 1900% schneller. Es sollte eher die Geschwindigkeit als die Dauer vergleichen.
Colonel Panic
2
Der Test ist irreführend und täuscht. Per tools.ietf.org/html/rfc7540#section-3.2 gibt es keinen Grund , warum HTTP / 2 nicht auf eine nicht sichere Verbindung verwendet werden kann. Große Unternehmen drängen auf eine universelle HTTPS-Nutzung. Die Gründe variieren. Aber die Tatsache bleibt. Sofern sich auf der Seite keine persönlichen Daten befinden, gibt es keinen Grund, SSL auszuführen. Und während ja mit heutigen Computern der SSL-Handshake trivial ist. Wenn wir anfangen, dies und das zu sagen, ist das triviale Zeug einfach festgefahren. Erstellen Sie einen 1: 1-Test von HTTP / 1.1 gegen HTTP / 1.1 SSL und HTTP / 2 gegen HTTP / 2 SSL. Dann diskutieren.
Shinrai
23

Die aktuelle Top-Antwort ist nicht vollständig korrekt.

Wie andere hier bereits erwähnt haben, erfordert https Handshake und führt daher mehr TCP / IP-Roundtrips durch.

In einer WAN-Umgebung wird normalerweise die Latenz zum begrenzenden Faktor und nicht die erhöhte CPU-Auslastung auf dem Server.

Denken Sie daran, dass die Latenz von Europa in die USA etwa 200 ms betragen kann (Torundtrip-Zeit).

Sie können dies einfach (für den Einzelbenutzerfall) mit HTTPWatch messen .

kohlerm
quelle
12

Beachten Sie außerdem, dass einige (alle?) Webbrowser aus Sicherheitsgründen keine zwischen HTTPS erhaltenen zwischengespeicherten Inhalte auf der lokalen Festplatte speichern. Dies bedeutet, dass aus Sicht des Benutzers Seiten mit viel statischem Inhalt nach dem Neustart des Browsers langsamer geladen werden und aus Sicht Ihres Servers das Volumen der Anforderungen für statischen Inhalt über HTTPS höher ist als über HTTP.

Alexander
quelle
6
Das Senden des Headers "Cach-Control: max-age = X, public" führt dazu, dass moderne Browser (gerade getestete FF4, Chrome12, IE8, IE9) den Inhalt zwischenspeichern. Ich habe jedoch festgestellt, dass diese Browser ein bedingtes GET senden, was zu einer zusätzlichen Latenz für die zusätzlichen Roundtrips führen kann, insbesondere wenn eine SSL-Verbindung nicht zwischengespeichert ist (Keep Alive).
Clint Pachl
6

Darauf gibt es keine einzige Antwort.

Die Verschlüsselung verbraucht immer mehr CPU. Dies kann in vielen Fällen auf dedizierte Hardware verlagert werden, und die Kosten variieren je nach ausgewähltem Algorithmus. 3des ist zum Beispiel teurer als AES. Einige Algorithmen sind für den Verschlüsseler teurer als für den Entschlüsseler. Einige haben die entgegengesetzten Kosten.

Teurer als die Massenkrypto sind die Handshake-Kosten. Neue Verbindungen verbrauchen viel mehr CPU. Dies kann durch die Wiederaufnahme der Sitzung verringert werden, wobei alte Sitzungsgeheimnisse bis zu ihrem Ablauf aufbewahrt werden müssen. Dies bedeutet, dass kleine Anfragen von einem Kunden, der nicht mehr zurückkommt, am teuersten sind.

Bei Cross-Internet-Verkehr bemerken Sie diese Kosten möglicherweise nicht in Ihrer Datenrate, da die verfügbare Bandbreite zu gering ist. Aber Sie werden es sicherlich bei der CPU-Auslastung auf einem ausgelasteten Server bemerken.

Darron
quelle
6

Ich kann Ihnen (als DFÜ-Benutzer) sagen, dass dieselbe Seite über SSL um ein Vielfaches langsamer ist als über normales HTTP ...

Brian Knoblauch
quelle
6
Guter Punkt. Ich fand auch, dass die Ladezeiten über das Mobilfunknetz (3G) ebenfalls 2x bis 3x langsamer sind.
Clint Pachl
Ja! Nur anderthalb Jahre nach dieser Antwort zog ich in ein neues Haus und konnte endlich für weniger Geld auf DSL umsteigen als mit einer POTS-Leitung!
Brian Knoblauch
6

In einigen Fällen werden die Auswirkungen von SSL-Handshakes auf die Leistung durch die Tatsache gemindert, dass die SSL-Sitzung an beiden Enden (Desktop und Server) zwischengespeichert werden kann. Auf Windows-Computern kann die SSL-Sitzung beispielsweise bis zu 10 Stunden zwischengespeichert werden. Siehe http://support.microsoft.com/kb/247658/EN-US . Einige SSL-Beschleuniger verfügen auch über Parameter, mit denen Sie die Zeit zwischenspeichern können, zu der die Sitzung zwischengespeichert wird.

Eine weitere zu berücksichtigende Auswirkung besteht darin, dass statische Inhalte, die über HTTPS bereitgestellt werden, nicht von Proxys zwischengespeichert werden. Dies kann die Leistung mehrerer Benutzer verringern, die über denselben Proxy auf die Site zugreifen. Dies kann durch die Tatsache gemindert werden, dass statische Inhalte auch auf Desktops zwischengespeichert werden. Internet Explorer-Versionen 6 und 7 zwischenspeichern statische HTTPS-Inhalte zwischen Cache, sofern nicht anders angegeben (Menü Extras / Internetoptionen / Erweitert / Sicherheit / Verschlüsselte Seiten nicht speichern) auf die Festplatte).


quelle
4

Ich habe ein kleines Experiment durchgeführt und 16% Zeitunterschied für dasselbe Bild von flickr (233 kb) erhalten:

http://farm8.staticflickr.com/7405/13368635263_d792fc1189_b.jpg

https://farm8.staticflickr.com/7405/13368635263_d792fc1189_b.jpg

Geben Sie hier die Bildbeschreibung ein

Natürlich hängen diese Zahlen von vielen Faktoren ab, wie Computerleistung, Verbindungsgeschwindigkeit, Serverlast, QoS-Pfad (der bestimmte Netzwerkpfad vom Browser zum Server), aber es zeigt die allgemeine Idee: HTTPS ist langsamer als HTTP, da es Es sind weitere Vorgänge erforderlich (SSL-Handshake und Codierung / Decodierung von Daten).

Khachatur
quelle
4
Es kann keine statistische Analysemetrik basierend auf 2 Anforderungen erstellt werden, eine für jede.
Tom Roggero
3

Hier ist ein großartiger Artikel (ein bisschen alt, aber immer noch großartig) über die SSL-Handshake-Latenz. Hat mir geholfen, SSL als Hauptursache für Langsamkeit bei Kunden zu identifizieren, die meine App über langsame Internetverbindungen verwendeten:

http://www.semicomplete.com/blog/geekery/ssl-latency.html

OrPo
quelle
2

Da ich das gleiche Problem für mein Projekt untersuche, habe ich diese Folien gefunden. Älter aber interessant:

http://www.cs.nyu.edu/artg/research/comparison/comparison_slides/sld001.htm

Mircea Stanciu
quelle
Ich fand die vereinfachten Diagramme hilfreich, aber auch etwas mangelhaft. Ich denke, um die Anzahl der Rundreisen besser zu verstehen, ist diese Seite für http hilfreich: blog.catchpoint.com/2010/09/17/anatomyhttp Dann, so nah ich es für https beurteilen kann: Wir fügen eine Hin- und Rückfahrt hinzu.
Elliptische Ansicht
2

Hier scheint es einen bösen Randfall zu geben: Ajax über überlastetes WLAN.

Ajax bedeutet normalerweise, dass das KeepAlive nach etwa 20 Sekunden abgelaufen ist. Das WLAN bedeutet jedoch, dass die (idealerweise schnelle) Ajax-Verbindung mehrere Hin- und Rückfahrten durchführen muss. Schlimmer noch, das WLAN verliert häufig Pakete und es gibt TCP-Neuübertragungen. In diesem Fall arbeitet HTTPS wirklich sehr, sehr schlecht!

Richard
quelle
2

HTTP VS HTTPS LEISTUNGSVERGLEICH

Ich habe HTTPS immer mit langsameren Ladezeiten von Seiten im Vergleich zu einfachem altem HTTP in Verbindung gebracht. Als Webentwickler ist mir die Leistung von Webseiten wichtig, und alles, was die Leistung meiner Webseiten verlangsamt, ist ein Nein-Nein.

Um die Auswirkungen auf die Leistung zu verstehen, gibt Ihnen das folgende Diagramm eine grundlegende Vorstellung davon, was unter der Haube passiert, wenn Sie mithilfe von HTTPS eine Ressource anfordern.

Geben Sie hier die Bildbeschreibung ein

Wie Sie dem obigen Diagramm entnehmen können, müssen bei der Verwendung von HTTPS im Vergleich zur Verwendung von einfachem HTTP einige zusätzliche Schritte ausgeführt werden. Wenn Sie eine Anfrage mit HTTPS stellen, muss ein Handshake durchgeführt werden, um die Authentizität der Anfrage zu überprüfen. Dieser Handshake ist im Vergleich zu einer HTTP-Anforderung ein zusätzlicher Schritt und verursacht leider einen gewissen Overhead.

Um die Auswirkungen auf die Leistung zu verstehen und selbst zu sehen, ob die Auswirkungen auf die Leistung erheblich sind oder nicht, habe ich diese Website als Testplattform verwendet. Ich ging zu webpagetest.org und benutzte das visuelle Vergleichstool, um das Laden dieser Site mit HTTPS mit HTTP zu vergleichen.

Wie Sie hier sehen können, ist Test Video Ergebnis mit HTTPS einen Einfluss auf die Ladezeiten meiner Seite. Der Unterschied ist jedoch vernachlässigbar und ich habe nur einen Unterschied von 300 Millisekunden festgestellt. Es ist wichtig zu beachten, dass diese Zeiten von vielen Faktoren abhängen, wie z. B. der Computerleistung, der Verbindungsgeschwindigkeit, der Serverlast und der Entfernung zum Server.

Ihre Site kann unterschiedlich sein, und es ist wichtig, Ihre Site gründlich zu testen und die Auswirkungen auf die Leistung beim Wechsel zu HTTPS zu überprüfen.

Sunny SM
quelle
1
Im Allgemeinen ist das Beispiel gut, aber es ist komplizierter als dargestellt, insbesondere bei Perfect Forward Secrecy. Außerdem werden tatsächlich vier symmetrische Schlüssel verwendet.
Zaph
0

Es gibt eine Möglichkeit, dies zu messen. Das Apache-Tool namens jmeter misst den Durchsatz. Wenn Sie eine große Stichprobe Ihres Dienstes mit jmeter in einer kontrollierten Umgebung mit und ohne SSL einrichten, sollten Sie einen genauen Vergleich der relativen Kosten erhalten. Ihre Ergebnisse würden mich interessieren.

Dacracot
quelle
-1

HTTPS hat einen Verschlüsselungs- / Entschlüsselungsaufwand, sodass es immer etwas langsamer ist. Die SSL-Beendigung ist sehr CPU-intensiv. Wenn Sie Geräte zum Auslagern von SSL haben, ist der Unterschied in den Latenzen je nach Auslastung Ihrer Server möglicherweise kaum spürbar.

Corey Goldberg
quelle
-1

Ein wichtigerer Leistungsunterschied besteht darin, dass eine HTTPS-Sitzung ketp-geöffnet ist, während der Benutzer verbunden ist. Eine HTTP-Sitzung dauert nur für eine einzelne Elementanforderung.

Wenn Sie eine Site mit einer großen Anzahl gleichzeitiger Benutzer betreiben, erwarten Sie, dass Sie viel Speicher kaufen.

Martin Beckett
quelle
2
Nicht in HTTP 1.1. Verbindungen bleiben lange offen.
Sklivvz
-1

Dies wird mit ziemlicher Sicherheit zutreffen, da für SSL ein zusätzlicher Verschlüsselungsschritt erforderlich ist, der für Nicht-SLL-HTTP einfach nicht erforderlich ist.

Orion Adrian
quelle
2
Dass es einen Leistungsunterschied zwischen den beiden Fällen gibt.
David The Man
2
Die Frage lautet jedoch: "Gibt es wesentliche Leistungsunterschiede zwischen http und https?"
Sklivvz
-1

Das HTTPS beeinflusst tatsächlich die Seitengeschwindigkeit ...

Die obigen Zitate zeigen die Dummheit vieler Menschen in Bezug auf die Sicherheit und Geschwindigkeit der Website. Das Handshake von HTTPS / SSL-Servern führt zu einem anfänglichen Stillstand beim Herstellen von Internetverbindungen. Es gibt eine langsame Verzögerung, bevor etwas auf dem Browserbildschirm Ihres Besuchers gerendert wird. Diese Verzögerung wird in Informationen zur Zeit bis zum ersten Byte gemessen.

Der HTTPS-Handshake-Overhead wird in den Time-to-First-Byte-Informationen (TTFB) angezeigt. Übliche TTFB reichen von unter 100 Millisekunden (Best-Case) bis über 1,5 Sekunden (Worst-Case). Aber mit HTTPS sind es natürlich 500 Millisekunden schlimmer.

Drahtlose 3G-Roundtrip-Verbindungen können 500 Millisekunden oder länger dauern. Die zusätzlichen Fahrten verdoppeln die Verzögerungen auf 1 Sekunde oder mehr. Dies ist ein großer negativer Einfluss auf die mobile Leistung. Sehr schlechte Nachrichten.

Mein Rat: Wenn Sie keine vertraulichen Daten austauschen, benötigen Sie überhaupt kein SSL. Wenn Sie jedoch eine E-Commerce-Website mögen, können Sie HTTPS nur auf bestimmten Seiten aktivieren, auf denen vertrauliche Daten wie Anmelden und Auschecken ausgetauscht werden.

Quelle: Pagepipe

svelandiag
quelle
-2

Browser können das HTTP / 1.1-Protokoll entweder mit HTTP oder HTTPS akzeptieren, Browser können jedoch nur das HTTP / 2.0-Protokoll mit HTTPS verarbeiten. Die Protokollunterschiede von HTTP / 1.1 zu HTTP / 2.0 machen HTTP / 2.0 im Durchschnitt 4-5 mal schneller als HTTP / 1.1. Von Websites, die HTTPS implementieren, tun dies die meisten über das HTTP / 2.0-Protokoll. Daher ist HTTPS aufgrund des unterschiedlichen Protokolls, das es im Allgemeinen verwendet, fast immer schneller als HTTP. Wenn jedoch HTTP über HTTP / 1.1 mit HTTPS über HTTP / 1.1 verglichen wird, ist HTTP im Durchschnitt etwas schneller als HTTPS.

Hier sind einige Vergleiche, die ich mit Chrome (Ver. 64) durchgeführt habe:

HTTPS über HTTP / 1.1:

  • 0,47 Sekunden durchschnittliche Ladezeit der Seite
  • 0,05 Sekunden langsamer als HTTP über HTTP / 1.1
  • 0,37 Sekunden langsamer als HTTPS über HTTP / 2.0

HTTP über HTTP / 1.1

  • Durchschnittliche Ladezeit von 0,42 Sekunden
  • 0,05 Sekunden schneller als HTTPS über HTTP / 1.1
  • 0,32 Sekunden langsamer als HTTPS über HTTP / 2.0

HTTPS über HTTP / 2.0

  • 0,10 Sekunden durchschnittliche Ladezeit
  • 0,32 Sekunden schneller als HTTP über HTTP / 1.1
  • 0,37 Sekunden schneller als HTTPS über HTTPS / 1.1
abcjme
quelle