Heim > Web-Frontend > js-Tutorial > Kann ich HTTP-Header in der WebSocket-API anpassen?

Kann ich HTTP-Header in der WebSocket-API anpassen?

DDD
Freigeben: 2024-12-20 00:06:08
Original
786 Leute haben es durchsucht

Can I Customize HTTP Headers in the WebSocket API?

HTTP-Header in der WebSocket-Client-API

Es ist allgemein bekannt, dass die Anpassung von HTTP-Headern mit HTTP-Header-Clients erreicht werden kann, die diese Funktion unterstützen. Aber wie erreicht man das konkret mit der WebSocket-API in der Webplattform?

Ist das möglich?

Kurz gesagt lautet die Antwort Nein. Es können nur der Pfad und das Protokollfeld angegeben werden.

Längere Erklärung

In der JavaScript-WebSocket-API gibt es keine integrierte Methode zum Festlegen zusätzlicher Header. Sie können jedoch den HTTP-Pfad („GET /xyz“) und den Protokollheader („Sec-WebSocket-Protocol“) während der Initialisierung des WebSocket-Konstruktors angeben.

Der Sec-WebSocket-Protocol-Header, der sein kann wird für die Websocket-spezifische Authentifizierung verwendet und wird vom optionalen zweiten Argument des Konstruktors abgeleitet:

var ws = new WebSocket("ws://example.com/path", "protocol");
var ws = new WebSocket("ws://example.com/path", ["protocol1", "protocol2"]);
Nach dem Login kopieren

Möglich Lösung

Ein gängiger Ansatz zur Handhabung der WebSocket-Authentifizierung/Autorisierung ist ein Ticketsystem. Dabei fordert die Seite, die den WebSocket-Client hostet, ein Ticket vom Server an und bindet es in den Verbindungsaufbau ein (z. B. in der URL/Abfragezeichenfolge, im Protokollfeld oder als erste Nachricht nach dem Verbindungsaufbau). Der Server überprüft dann die Gültigkeit des Tickets und autorisiert die Verbindung, wenn sie erfolgreich ist.

Das obige ist der detaillierte Inhalt vonKann ich HTTP-Header in der WebSocket-API anpassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage