En-têtes HTTP dans l'API client WebSocket
Il est bien connu que la personnalisation des en-têtes HTTP peut être réalisée avec les clients d'en-tête HTTP qui prennent en charge cette fonctionnalité. Mais comment y parvenir spécifiquement avec l'API WebSocket dans la plateforme Web ?
Est-ce possible ?
En bref, la réponse est non. Seuls le champ de chemin et de protocole peuvent être spécifiés.
Explication plus longue
Il n'existe aucune méthode intégrée dans l'API JavaScript WebSocket pour définir des en-têtes supplémentaires. Cependant, vous pouvez spécifier le chemin HTTP ("GET /xyz") et l'en-tête du protocole ("Sec-WebSocket-Protocol") lors de l'initialisation du constructeur WebSocket.
L'en-tête Sec-WebSocket-Protocol, qui peut être utilisé pour l'authentification spécifique au websocket, est dérivé du deuxième argument facultatif du constructeur :
var ws = new WebSocket("ws://example.com/path", "protocol"); var ws = new WebSocket("ws://example.com/path", ["protocol1", "protocol2"]);
Possible Solution
Une approche courante pour gérer l'authentification/autorisation WebSocket consiste à utiliser un système de ticket. Ici, la page hébergeant le client WebSocket demande un ticket au serveur et l'inclut dans la configuration de la connexion (par exemple, dans l'URL/chaîne de requête, le champ de protocole ou comme premier message après l'établissement de la connexion). Le serveur vérifie ensuite la validité du ticket et autorise la connexion s'il réussit.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!