suchen
HeimWeb-FrontendH5-TutorialDetaillierte Einführung in die Übersetzung der WebSocket-API-HTML5-Spezifikation

1. Einführung

Damit die Webanwendung eine bidirektionale Kommunikation mit dem Serverprozess aufrechterhalten kann, finden Sie hier die Einführung von WebSocket Schnittstelle.

2. Konsistenzanforderungen (weggelassen)

3. Terminologie (weggelassen)

4 .WebSocketSchnittstelle

(Code weggelassen)

WebSocket(URL, Protokolle)Konstruktorkann übergeben werden1-2 Parameter. Der erste Rigel gibt die URL an, mit der eine Verbindung hergestellt werden soll. Der zweite Parameter kann, sofern deklariert, ein String oder ein StringArray sein. Wenn es sich um eine Zeichenfolge handelt, entspricht sie einem Array, das nur diese Zeichenfolge enthält. Wenn der zweite Parameter weggelassen wird, entspricht er einem leeren Array [d. h. egal, was im zweiten Parameter übergeben wird, es wird als String-Array behandelt]. Jede Zeichenfolge im Array ist ein Unterprotokollname. Die Verbindung kann nur hergestellt werden, wenn der Server erklärt, dass er eines der Unterprotokolle ausgewählt hat. Alle Unterprotokollnamen müssen die folgenden Anforderungen erfüllen: Diese Zeichenfolgen müssen den Protokolldeklarationsheader WebSocket Sec-WebSocket-Protocol Inhalt①.

Wenn der

WebSocket()-Konstruktor aufgerufen wird, muss der Benutzeragent die folgenden Schritte ausführen:

(1) Von

url URL werden anhand der 🎜>-Parameter analysiert, um den Host, den Port, den Ressourcennamen und das Sicherheits-Protokoll zu erhalten (Host, Port, Ressourcenname und sicher). Wenn dieser Vorgang fehlschlägt, wird eine SyntaxError-Ausnahme ausgelöst und die folgenden Schritte werden abgebrochen. (2) Wenn

secure

leer ist, aber das ursprüngliche Eingabeskript ein Muster aufweist, das selbst ein Sicherheitsprotokoll ist, wie z. B. HTTPS , dann wird die Ausnahme SecurityError ausgelöst. (Wenn secure falsch ist, aber der Ursprung des Eintragsskripts eine Schemakomponente hat, die selbst ein sicheres Protokoll ist, z. B. HTTPS, dann wird eine SecurityError-Ausnahme.)

(3) Wenn der im Parameter verwendete Port so eingestellt ist, dass der Zugriff durch den Benutzeragenten verboten ist, wird eine SecurityError-Ausnahme ausgelöst. Die Ports 80 und 443 sollten nicht blockiert werden, einschließlich sicher istfalse, 443 Port kann nicht blockiert werden und sicher ist true Wenn 80 Port nicht blockiert werden kann [Hier bedeutet dies, dass es zwei Arten von WebSocket gibt In der Form hat ws kein Sicherheitsprotokoll. Standardmäßig verwendet es den Port 80 wss verfügt standardmäßig über den Port 443, auch wenn das verwendete Protokoll keinen entsprechenden Port erfordert Der Zugriff auf 443 und 80 kann nicht verboten werden. (4) Wenn der Parameter Protokolle

nicht deklariert ist, wird er zu einem leeren Array. Andernfalls, wenn der Parameter protocols eine Zeichenfolge ist, wird er zu einem Array, das die Zeichenfolge enthält. (5) Wenn eine Variable

in den

Protokollen mehr als diesen Parameter deklariert oder die Anforderungen von ① nicht erfüllt, dann Lösen Sie die Ausnahme SyntaxError aus und beenden Sie die folgenden Schritte. (6) origin

sei die ASCII-Serialisierung des Ursprungs des Eintragsskripts, konvertiert in ASCII-Kleinbuchstaben.

(7) Geben Sie ein neues WebSocket

Objekt und fahren Sie mit den folgenden Schritten im Hintergrundprogramm fort. (8) Erstellen Sie eine Datenbank mit den angegebenen Host, Port, Ressourcennamen und sicheren

und

Protokollen Liste und eine leere Liste von Erweiterungen (extensions) und eine Liste von Ursprung von WebSocketVerbinden. Um die richtigen Cookies zu senden, müssen Sie den Header Cookie verwenden, in dem der Wert an übergeben wird Benutzer Der gespeicherte Cookie-Wert und die URL werden berechnet. Für diese Zwecke handelt es sich hierbei nicht um eine API ohne das HTTP-Protokoll.

Während der Ausführung des „WebSocketVerbindungsaufbau-Algorithmus“, wenn der Benutzeragent die Antwort des Servers überprüft, wenn der vom Server empfangene Statuscode nicht 101, der Benutzeragent MUSS diese WebSocket-Verbindung beenden.

Achtung! Die Verwendung von HTTP hier kann zu ernsthaften Sicherheitsrisiken für den Browserkontext führen. Stellen Sie sich zum Beispiel vor, dass ein Host ein Server ist, der mit WebSocket auf einem Pfad und einer offenen HTTP-Umleitung eingerichtet ist, die auf einen anderen Pfad verweist . Plötzlich kann jedes Skript, dem eine bestimmte WebSocket-URL zugewiesen ist, auf diesen Dienst zugreifen und mit anderen Hosts im Internet kommunizieren, selbst wenn das Skript nach URL sucht ist der korrekte Hostname.

Hinweis: Wenn die Ausführung des

WebSocket-Verbindungsalgorithmus fehlschlägt, wird der WebSocket-Verbindungsfehleralgorithmus ausgelöst . Dieser Algorithmus führt den Algorithmus zum Schließen der WebSocket-Verbindung aus, der die WebSocket-Verbindung schließt und close Event , die Ausführungsschritte sind wie unten beschrieben. Wenn das globale Objekt des Skripts ein

Window

-Objekt oder ein über die WorkerUtils-Schnittstelle instanziiertes Objekt ist, Dieser Konstruktor muss sichtbar sein. Das Attribut url

muss aus der an den Konstruktor übergebenen URL geparst werden. Das Attribut readyState

stellt den Status der Verbindung dar. Es hat die folgenden Werte:

CONNECTING

, der entsprechende Wert ist

0 zeigt an, dass die Verbindung nicht hergestellt wurde OPEN

, der entsprechende Wert ist

1 , was anzeigt, dass WebSocketDie Verbindung hergestellt wurde und die Kommunikation möglich ist CLOSING

, der entsprechende Wert ist

2 zeigt an, dass die Verbindung einen schließenden Handshake durchläuft oder dass die Methode close() aufgerufen wurde; CLOSED

, der entsprechende Wert ist

3, was darauf hinweist, dass die Verbindung geschlossen wurde oder nicht geöffnet werden kann. Wenn das

WebSocket

instanziierte Objekt erstellt wird, muss sein readyState-Wert auf VERBINDEN. Der Anfangswert des Attributs

extensions muss eine leere Zeichenfolge sein. Wenn die WebSocket-Verbindung hergestellt ist, kann ihr Wert gemäß den folgenden Regeln geändert werden.

Hinweis: Wenn der Server die Erweiterung ausgewählt hat, gibt das Attribut Erweiterung die vom Server ausgewählte Erweiterung zurück. (Derzeit war dieses Feld immer ein leeres Feld)

Protokoll Die Attributinitialisierung muss eine leere Zeichenfolge sein. Wenn die WebSocket-Verbindung hergestellt ist, kann ihr Wert gemäß den folgenden Regeln geändert werden.

Hinweis: Wenn der Server ein Unterprotokoll angibt, gibt das Attribut Protokoll das vom Server ausgewählte Unterprotokoll zurück. Die Methode

close() muss gemäß den folgenden Schritten ausgeführt werden:

(1) Wenn diese Methode den ersten Parameter übergibt, dieser aber nicht gleich ist bis 1000 oder nicht im Bereich von 3000 bis 4999, werfen Sie die Ausnahme InvalidAccessErroraus und beenden Sie die folgenden Schritte.

(2) Wenn der zweite Parameter übergeben wird, führen Sie die folgenden Unterschritte aus:

①Lassen Sie Rohgrund zum zweiten der Methodenparameter werden

( gefolgt vom Weglassen von )

(3) Führen Sie den ersten Matching-Schritt unten aus

①Wenn das Attribut readyState CLOSING oder CLOSED ist, passiert nichts.

②Wenn die WebSocket-Verbindung nicht hergestellt wurde, beenden Sie den Aufbau der WebSocket-Verbindung und readyState ist auf CLOSING gesetzt.

③Wenn der schließende Handshake von

WebSocket noch nicht begonnen hat, starten Sie den schließenden Handshake von WebSocket und readyState ist auf CLOSING gesetzt. Wenn der erste Parameter übergeben wird, muss der von der WebSocket-Schließmeldung verwendete Statuscode die durch den ersten Parameter angegebene Ganzzahl sein. Wenn auch der zweite Parameter deklariert ist, muss reason nach dem Statuscode der Abschlussnachricht angegeben werden.

④In anderen Fällen setzen Sie den Attributwert

readyState auf CLOSING.

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die Übersetzung der WebSocket-API-HTML5-Spezifikation. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
H5: Wie es die Benutzererfahrung im Web verbessertH5: Wie es die Benutzererfahrung im Web verbessertApr 19, 2025 am 12:08 AM

H5 verbessert die Erfahrung des Webbenutzers mit Multimedia -Support, Offline -Speicher und Leistungsoptimierung. 1) Multimedia -Unterstützung: H5 und Elemente vereinfachen die Entwicklung und verbessern die Benutzererfahrung. 2) Offline -Speicher: Webstorage und IndexedDB ermöglichen die Verstärkung der Erfahrung offline. 3) Leistungsoptimierung: Webworker und Elemente optimieren die Leistung, um den Bandbreitenverbrauch zu verringern.

Dekonstruieren von H5 -Code: Tags, Elemente und AttributeDekonstruieren von H5 -Code: Tags, Elemente und AttributeApr 18, 2025 am 12:06 AM

Der HTML5 -Code besteht aus Tags, Elementen und Attributen: 1. Das Tag definiert den Inhaltstyp und ist von Winkelklammern umgeben, wie z. 2. Elemente bestehen aus Start -Tags, Inhalten und End -Tags wie Inhalten. 3. Attribute definieren Schlüsselwertpaare im Start-Tag und verbessern Funktionen, z. B.. Dies sind die grundlegenden Einheiten zum Aufbau von Webstruktur.

H5 -Code verstehen: Die Grundlagen von HTML5H5 -Code verstehen: Die Grundlagen von HTML5Apr 17, 2025 am 12:08 AM

HTML5 ist eine Schlüsseltechnologie zum Aufbau moderner Webseiten und bietet viele neue Elemente und Funktionen. 1. HTML5 führt semantische Elemente wie usw. ein, die die Webseitenstruktur und die SEO verbessern. 2. Support Multimedia-Elemente und Einbetten von Medien ohne Plug-Ins. 3. Formulare verbessern neue Eingangstypen und Überprüfungseigenschaften und vereinfachen Sie den Überprüfungsprozess. 4. Bieten Sie Offline- und lokale Speicherfunktionen an, um die Leistung der Webseiten und die Benutzererfahrung zu verbessern.

H5 -Code: Best Practices für WebentwicklerH5 -Code: Best Practices für WebentwicklerApr 16, 2025 am 12:14 AM

Zu den Best Practices für den H5 -Code gehören: 1. Verwenden Sie korrekte DocType -Deklarationen und Zeichenkodierung; 2. Verwenden Sie semantische Tags; 3.. HTTP -Anfragen reduzieren; 4. Verwenden Sie asynchrone Laden; 5. Bilder optimieren. Diese Praktiken können die Effizienz, Wartbarkeit und Benutzererfahrung von Webseiten verbessern.

H5: Die Entwicklung von Webstandards und TechnologienH5: Die Entwicklung von Webstandards und TechnologienApr 15, 2025 am 12:12 AM

Webstandards und -technologien haben sich bisher aus HTML4, CSS2 und einfachem JavaScript entwickelt und haben erhebliche Entwicklungen erfahren. 1) HTML5 führt APIs wie Leinwand und Webstorage ein, die die Komplexität und Interaktivität von Webanwendungen verbessern. 2) CSS3 fügt Animations- und Übergangsfunktionen hinzu, um die Seite effektiver zu gestalten. 3) JavaScript verbessert die Entwicklungseffizienz und die Lesbarkeit der Code durch moderne Syntax von Node.js und ES6, wie z. B. Pfeilfunktionen und Klassen. Diese Änderungen haben die Entwicklung von Leistungsoptimierung und Best Practices von Webanwendungen gefördert.

Ist H5 eine Abkürzung für HTML5? Erforschen der DetailsIst H5 eine Abkürzung für HTML5? Erforschen der DetailsApr 14, 2025 am 12:05 AM

H5 ist nicht nur die Abkürzung von HTML5, sondern auch ein breiteres Ökosystem der modernen Webentwicklungstechnologie: 1. H5 enthält HTML5, CSS3, JavaScript und verwandte APIs und Technologien; 2. Es bietet eine reichhaltigere, interaktive und reibungslose Benutzererfahrung und kann nahtlos auf mehreren Geräten ausgeführt werden. 3. Mit dem H5 -Technologie -Stack können Sie reaktionsschnelle Webseiten und komplexe interaktive Funktionen erstellen.

H5 und HTML5: häufig verwendete Begriffe in der WebentwicklungH5 und HTML5: häufig verwendete Begriffe in der WebentwicklungApr 13, 2025 am 12:01 AM

H5 und HTML5 beziehen sich auf dasselbe, nämlich HTML5. HTML5 ist die fünfte Version von HTML, die neue Funktionen wie semantische Tags, Multimedia -Support, Leinwand und Grafiken, Offline -Speicher und lokaler Speicher bietet, die Ausdrucksfähigkeit und Interaktivität von Webseiten verbessert.

Worauf bezieht sich H5? Erforschen des KontextesWorauf bezieht sich H5? Erforschen des KontextesApr 12, 2025 am 12:03 AM

H5REFERSTOHTML5, ApivotaltechnologyInwebdevelopment.1) HTML5IntroducesNewelementsandapisrich, Dynamicwebapplications.2) ITSUPP ortsmultimediaWitHoutPlugins, BETHINGINGUSEREXPERICERCROSSDEVICES.3) SEMANTICELEMENTSIMPROVEPENTENTENTENTRUCTENTRUCTELUREANDSEO.4) H5'SRespo

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

mPDF

mPDF

mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung