WebSocket: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m +wikilink |
Nessun oggetto della modifica |
||
Riga 72:
== Handshake del protocollo ==
Per stabilire una connessione
Richiesta del client:
Riga 95:
</syntaxhighlight>
L'handshake ricorda l'implementazione HTTP così il server può gestirla come una normale richiesta di connessione sulla stessa porta. All'interno della richiesta vengono specificati degli opportuni campi che identificano una richiesta
Ognuna delle linee termina con un EOL, <code>\n</code> o <code>\r\n</code> e deve essere presente una linea vuota alla fine.
Il client invia un <code>Sec-WebSocket-Key</code> che è un valore casuale codificato con [[base64]]. Per generare un codice di risposta, il codice <code>258EAFA5-E914-47DA-95CA-C5AB0DC85B11</code> è concatenato alla chiave ricevuta, che '''non''' viene decodificata. Il risultato è codificato con [[SHA-1]] e successivamente con base64. Infine, la stringa risultante viene inserita nella risposta con l'header <code>Sec-WebSocket-Accept</code>.
Dettagli per generare la chiave di risposta:
* <code>x3JJHMbDL1EzLkh9GBhXDw==258EAFA5-E914-47DA-95CA-C5AB0DC85B11</code> codificata con SHA-1 restituisce il valore esadecimale <code>0x1d29ab734b0c9585240069a6e4e3e91b61da1969</code>.
* Codificando questa stringa con base64 si ottiene il codice <code>HSmrc0sMlYUkAGmm5OPpG2HaGWk=</code>, che è il valore inserito nella risposta.
Quando viene stabilita la connessione, il client ed il server possono inviare dati tramite il
== Estensioni sperimentali ==
Google Chrome ha un'opzione a riga di comando (<code>--enable-websocket-over-spdy</code>) che permette di abilitare una versione sperimentale dei
== Sviluppo ==
|