Maison >interface Web >js tutoriel >Comment puis-je ajouter des en-têtes HTTP personnalisés à mon client WebSocket en JavaScript ?

Comment puis-je ajouter des en-têtes HTTP personnalisés à mon client WebSocket en JavaScript ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-02 14:48:11913parcourir

How Can I Add Custom HTTP Headers to My WebSocket Client in JavaScript?

En-têtes HTTP dans l'API client Websocket

L'API WebSocket fournit un moyen simple d'ajouter des en-têtes HTTP personnalisés à votre client. Cependant, il convient de noter que seuls certains en-têtes peuvent être spécifiés.

Limites de personnalisation

Contrairement à ce que l'on croit, l'API JavaScript WebSockets ne vous permet pas de spécifier des en-têtes HTTP arbitraires. . Seuls les champs chemin et protocole peuvent être définis. Le chemin est spécifié dans le premier argument du constructeur WebSocket, tandis que l'en-tête du protocole est spécifié dans son deuxième argument facultatif.

Spécification de l'en-tête du protocole

var ws = new WebSocket("ws://example.com/path", "protocol");

Le code ci-dessus génère l'en-tête suivant :

Sec-WebSocket-Protocol: protocol

Vous pouvez également spécifier plusieurs protocoles :

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

Résultant de l'en-tête suivant :

Sec-WebSocket-Protocol: protocol1, protocol2

Authentification/Autorisation

Une approche courante pour l'authentification sur WebSockets consiste à utiliser un système de billetterie. Le serveur génère un ticket que le client inclut dans l'URL, le champ de protocole ou le premier message après la connexion. Le serveur valide ensuite le ticket et poursuit ou refuse la connexion en conséquence.

Authentification de base (obsolète)

L'authentification de base était précédemment acceptée, mais est obsolète et n'est plus n'est plus pris en charge par les navigateurs modernes.

Supplémentaire Notes

Il convient de mentionner que l'en-tête Authorization peut être généré à partir du nom d'utilisateur et du mot de passe dans l'URI WebSocket (bien que cette méthode soit également obsolète).

Pour en savoir plus sur la sécurité WebSocket , reportez-vous à cet article : https://devcenter.heroku.com/articles/websocket-security

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn