WebSocket: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
un and con un 'e'... errore di traduzione
chiudo <code>; formattazione
Riga 3:
'''WebSocket''' è una tecnologia [[web]] che fornisce canali di comunicazione [[full-duplex]] attraverso una singola connessione [[Transmission Control Protocol|TCP]]. L'[[Application programming interface|API]] del WebSocket è stata standardizzata dal [[World Wide Web Consortium|W3C]] e il protocollo WebSocket è stato standardizzato dall'[[Internet Engineering Task Force|IETF]] come RFC 6455.
 
WebSocket è disegnato per essere implementato sia lato [[browser]] che lato [[server]], ma può essere utilizzato anche da qualsiasi applicazione client-server. Il protocollo è indipendente dal protocollo TCP. La sua unica correlazione con l'HTTP è nel modo in cui fa l'[[handshake]] durante una Upgrade request tra server. Il protocollo WebSocket permette maggiore interazione tra un browser e un server, facilitando la realizzazione di applicazioni che forniscono contenuti e giochi in tempo reale. Questo è reso possibile fornendo un modo standard per il server di mandare contenuti al browser senza dover essere sollecitato dal client e permettendo ai messaggi di andare e venire tenendo la connessione aperta.
 
In aggiunta, le comunicazioni sono fatte attraverso la porta TCP 80, che è un vantaggio per quegli ambienti che bloccano porte non standard utilizzando dei [[firewall]]. Il protocollo WebSocket è supportato attualmente da numerosi browser, incluso [[Google Chrome]], [[Internet Explorer]], [[Firefox]], [[Safari (browser)|Safari]] e [[Opera (browser)|Opera]].
Riga 18:
Sec-WebSocket-Version: 13
Origin: http://example.com
 
</source>
 
Line 28 ⟶ 27:
Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk=
Sec-WebSocket-Protocol: chat
</source>
 
</source>
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 Websocket.
 
Ognuna delle linee termina con un EOL, <code>\n</code> o <code>\r\n</code> e deve essere presente una linea bianca 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 con la chiave non codificata. Il risultato è codificato con [[SHA-1]] e successivamente con base64.
Line 38 ⟶ 37:
 
Dettagli per generare la chiave di risposta:
* <code>x3JJHMbDL1EzLkh9GBhXDw==258EAFA5-E914-47DA-95CA-C5AB0DC85B11</code> codificata con SHA-1 restituisce il valore esadecimale 0x<code>1d29ab734b0c9585240069a6e4e3e91b61da19690x1d29ab734b0c9585240069a6e4e3e91b61da1969</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 Websocket in entrambe le direzioni.