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!