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
Libérer: 2024-12-02 14:48:11
original
921 Les gens l'ont consulté

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");
Copier après la connexion

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

Sec-WebSocket-Protocol: protocol
Copier après la connexion

Vous pouvez également spécifier plusieurs protocoles :

var ws = new WebSocket("ws://example.com/path", ["protocol1", "protocol2"]);
Copier après la connexion

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

Sec-WebSocket-Protocol: protocol1, protocol2
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal