Heim >Web-Frontend >Front-End-Fragen und Antworten >Der Master analysiert für Sie den Unterschied zwischen HTTPS und HTTP
Als ich heute bei Yahoo arbeitete, stellte ich fest, dass ich die Kommunikation zwischen dem Client und dem Server mit einem Drittanbieter-Tool nicht abfangen konnte. Ich habe mir diese Situation noch nie genauer angesehen Die URL-Anfrage basierte auf https. Nach gg stellte ich fest, dass es einen großen Unterschied zwischen dem https-Protokoll und http gibt. Im Allgemeinen ist http effizienter und https sicherer.
Lassen Sie uns zunächst darüber sprechen, was HTTPS ist:
HTTPS (Secure Hypertext Transfer Protocol) Secure Hypertext Transfer Protocol ist ein sicherer Kommunikationskanal, der auf HTTP-Basis entwickelt wird und zum Austausch von Informationen zwischen Client-Computern und Servern dient. Es verwendet Secure Sockets Layer (SSL) für den Informationsaustausch, was einfach eine sichere Version von HTTP ist. Es wurde von Netscape entwickelt und in seinen Browser integriert und dient zum Komprimieren und Dekomprimieren von Daten und zum Zurücksenden der über das Netzwerk zurückgesendeten Ergebnisse. HTTPS verwendet tatsächlich Netscapes Secure Socket Layer (SSL) als Unterschicht der HTTP-Anwendungsschicht. (HTTPS verwendet Port 443 anstelle von Port 80 wie HTTP, um mit TCP/IP zu kommunizieren.) SSL verwendet ein 40-Bit-Schlüsselwort als RC4-Stream-Verschlüsselungsalgorithmus, der für die Verschlüsselung von Geschäftsinformationen geeignet ist. HTTPS und SSL unterstützen die Verwendung der digitalen X.509-Authentifizierung, sodass Benutzer bei Bedarf bestätigen können, wer der Absender ist.
Der Unterschied zwischen HTTPS und HTTP:
Für das https-Protokoll müssen Sie ein Zertifikat bei einer Zertifizierungsstelle beantragen. Im Allgemeinen gibt es nur wenige kostenlose Zertifikate und Sie müssen eine Gebühr zahlen. http ist ein Hypertext-Übertragungsprotokoll und Informationen werden im Klartext übertragen, während HTTP ein sicheres SSL-verschlüsseltes Übertragungsprotokoll ist. Ersteres ist 80 und letzteres ist 443.
Die HTTP-Verbindung ist ein zustandsloses HTTPS-Protokoll. Es handelt sich um ein Netzwerkprotokoll, das eine verschlüsselte Übertragung und Identitätsauthentifizierung durchführen kann. Probleme, die HTTPS löst:
1. Das Problem der Vertrauenswürdigkeit des Hosts. Server, die https verwenden, müssen ein Zertifikat von der Zertifizierungsstelle beantragen, um den Nutzungstyp des Servers nachzuweisen. Der Kunde wird dem sekundären Host vertrauen. Die Website des Systems und alle wichtigen Anwendungen vertrauen dem Host. Tatsächlich ist dies sehr ineffizient, aber die Bank achtet mehr auf die Sicherheit . Das macht für uns keinen Sinn. Unabhängig davon, ob das Zertifikat von ihm selbst oder von einem öffentlichen Ort ausgestellt wird, gehört der Client ihm selbst, daher müssen wir dem Server vertrauen.
2. Datenverlust und Manipulation während des Kommunikationsprozesses
Im allgemeinen Sinne bedeutet https, dass der Server über ein Zertifikat verfügt.
a) Der Hauptzweck besteht darin, sicherzustellen, dass der Server der Server ist, den er beansprucht Dies ist das Gleiche wie beim ersten Punkt.
b) Die gesamte Kommunikation mit dem Client erfolgt verschlüsselt, d. h. der Client tauscht den Schlüssel aus Handshake-Prozess im Allgemeinen. Alle Informationen werden verschlüsselt ausgetauscht. Selbst wenn ein Dritter den Schlüssel abfängt, hat dies keinen Sinn 🎜>In einigen Fällen, in denen Anforderungen an den Kunden bestehen, muss der Kunde zusätzlich zum Benutzernamen über ein Zertifikat verfügen.
a) Das Kundenzertifikat ähnelt hier /password, es gibt auch eine CA-zertifizierte Identität. Es sollte sich um eine Einzelperson handeln. Im Allgemeinen können Zertifikate nicht von anderen simuliert werden, sodass Sie Ihre Identität genauer bestätigen können.
b) Derzeit gibt es einige professionelle Versionen Viele Privatbanken verwenden diesen Ansatz möglicherweise als Backup für das Online-Banking der Bank of Communications. HTTPS muss umständlich sein. a) Das ursprüngliche einfache HTTP-Protokoll, ein Get und eine Antwort, erfordert in jeder Anwendung einen einzigen Handshake , zu viele Der Roundtrip wird sich definitiv auf die Leistung auswirken. b) Als nächstes müssen Client und Server den Sitzungsinhalt verschlüsseln/entschlüsseln Verbraucht immer noch zu viel CPU, daher gibt es dafür einen speziellen SSL-Chip. Wenn die CPU-Leistung relativ niedrig ist, wird die Leistung definitiv reduziert und mehr Anfragen werden nicht bedient.
Zeichen: Einführung in SSL:
SSL ist ein von Netscape vorgeschlagenes Sicherheits- und Vertraulichkeitsprotokoll. Es baut einen sicheren Kanal zwischen Browsern (wie Internet Explorer, Netscape Navigator) und Webservern (wie Netscape Enterprise Server, ColdFusion Server usw.) auf . SSL läuft oberhalb der TCP/IP-Schicht und unterhalb der Anwendungsschicht und stellt verschlüsselte Datenkanäle für Anwendungen bereit. Es verwendet Verschlüsselungsalgorithmen wie RC4, MD5 und RSA und verwendet einen 40-Bit-Schlüssel, der für die Verschlüsselung geeignet ist Geschäftsinformationen. Gleichzeitig hat Netscape das HTTPS-Protokoll entsprechend entwickelt und in seinen Browser integriert. HTTPS ist eigentlich SSL über HTTP. Es verwendet den Standardport 443, anstatt Port 80 wie HTTP für die Kommunikation mit TCP/IP zu verwenden. Das HTTPS-Protokoll verwendet SSL, um die Originaldaten auf dem Sender zu verschlüsseln und dann auf dem Empfänger zu entschlüsseln. Daher müssen Sender und Empfänger gegenseitig bekannte Schlüssel austauschen Entschlüsselung. Der Verschlüsselungs- und Entschlüsselungsprozess erfordert jedoch einen hohen Systemaufwand und verringert die Leistung der Maschine erheblich. Relevante Testdaten zeigen, dass die Effizienz der Datenübertragung mit dem HTTPS-Protokoll nur ein Zehntel der Effizienz mit dem HTTP-Protokoll beträgt. Wenn aus Gründen der Sicherheit und Vertraulichkeit alle Webanwendungen einer Website die SSL-Technologie zur Verschlüsselung aktivieren und das HTTPS-Protokoll zur Übertragung verwenden, wird die Leistung und Effizienz der Website stark reduziert, und es besteht keine Notwendigkeit dafür. Da im Allgemeinen nicht alle Daten ein so hohes Maß an Sicherheit und Vertraulichkeit erfordern, müssen wir nur das HTTPS-Protokoll für die interaktive Verarbeitung vertraulicher Daten verwenden, um das Beste aus beiden Welten zu nutzen. Kurz gesagt: Wenn Sie https nicht benötigen, versuchen Sie, es nicht zu verwenden.