WebSocket

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

WebSocket je počítačový komunikační protokol, poskytující plně duplexní (obousměrný) komunikační kanál přes jediné TCP připojení. Protokol WebSocket byl standardizován komisí IETF jako RFC 6455 v roce 2011, a WebSocket API ve Webové IDL bylo standardizováno konsorciem W3C.

WebSocket je navržen tak, aby mohl být prováděn ve webových prohlížečích a na webových serverech, ale může být použita jakákoliv klientská a serverová aplikace. WebSocket je nezávislý protokol založený na základě TCP. Jeho jediný vztah k HTTP je, že jeho handshake (navázání spojení) je interpretováno HTTP servery jako požadavek na upgrade.[1] Protokol WebSocket umožňuje interakci mezi prohlížečem a webovým serverem s nižší režií, usnadňuje real-time přenos dat ze serveru a na server. To je možné proto, že poskytuje standardizovaný způsob pro odeslání obsahu ze serveru do prohlížeče, aniž by to bylo na požadavek klienta (jako v AJAXu), a umožňuje předání zpráv tam i zpět, zatímco je udržováno otevřené spojení. Tímto způsobem může probíhat obousměrná (bi‑directional) komunikace mezi prohlížečem a serverem. Tato komunikace probíhá přes TCP port číslo 80 (nebo 443 v případě TLS-šifrovaných spojení), což je výhoda pro ta prostředí, kde jsou newebová připojení k Internetu blokována firewallem. Podobně obousměrné komunikace prohlížeč-server bylo dosahováno nestandardizovanými způsoby používajícími provizorní technologie, jako je Comet.

Protokol WebSocket, je v současné době podporován ve většině hlavních prohlížečů, včetně Google Chrome, Microsoft Edge, MS Internet Exploreru, Firefoxu, Safari a Opeře. WebSocket však vyžaduje podporu také na straně serveru, i od webových aplikací.

Přehled[editovat | editovat zdroj]

Na rozdíl od HTTP, WebSocket umožňuje obousměrnou komunikaci.[2][3] Navíc, WebSocket umožňuje proudy zpráv na základě TCP. Vlastní TCP se zabývá proudy bajtů a ne vlastním konceptem zpráv. Před příchodem WebSocketu, byla obousměrná komunikace na portu 80 byla dosažitelné pomocí kanálů Comet; nicméně její realizace byla netriviální a vzhledem k režii TCP handshake a HTTP záhlaví nad sebou, je neefektivní pro malé zprávy. WebSocket protokol si klade za cíl řešit tyto problémy, aniž by byla ohrožena bezpečnost předpoklady web.

Protokol WebSocket, specifikace definuje ws a wss jako dvě nové uniform resource identifier (URI) systémů[4] , které jsou používány pro nešifrované a případně šifrované spojení. Na rozdíl od režimu jméno a fragment (# není podporován), zbytek URI komponenty je definován pomocí obecné syntaxe URI.[5]

Pomocí prohlížeče Developer Tools, vývojáři mohou kontrolovat navazování spojení WebSocketu, stejně jako jeho rámců.[6]

Implementace v prohlížečích[editovat | editovat zdroj]

Zabezpečená verze protokolu WebSocket je implementována ve Firefoxu 6,[7] Safari 6, Google Chrome 14,[8] Opeře 12.10 a Internet Exploreru 10.[9] Podrobná zpráva z testů protokolu[10] uvádí shodu těchto prohlížečů na jeho konkrétní aspekty.

Starší, méně bezpečná verze protokolu byla realizována v Opeře 11 a Safari 5, stejně jako v mobilní verzi Safari v iOS 4.2.[11] BlackBerry prohlížeč v OS7 implementuje protokol WebSocket.[12] Z důvodu chyby v návrhu byl zakázán ve Firefoxu 4 a 5,[13] jakož i v Opeře 11.[14]

K dispozici je také přepínač příkazového řádku --enable-websocket-nad-spdy pro Google Chrome, které umožňuje používat rané experimentální implementace WebSocketu přes SPDY.[15]

stav
protokol,
verze
datum návrhu
 
Internet Explorer
 
Firefox[16]
(PC)
Firefox
(Android)
Chrome
(PC, přenosné)
Safari
(Mac, iOS)
Opera
(PC, přenosné)
Android Browser
 
hixie-75 4. února 2010 4 5.0.0
hixie-76
hybi-00
6. května 2010
23. května 2010
4.0 (vypnuto) 6 5.0.1 11.00 (vypnuto)
hybi-07, v7 22. dubna 2011 6[17][P 1]
hybi-10, v8 11. července 2011 7[19][P 2] 7 14[20]
rfc:6455, v13 prosinec 2011 10[21] 11 11 16[22] 6 12.10[23] 4.4

Odkazy[editovat | editovat zdroj]

Poznámky[editovat | editovat zdroj]

  1. Gecko-based browsers versions 6–10 implement the WebSocket object as "MozWebSocket",[18] requiring extra code to integrate with existing WebSocket-enabled code.
  2. {{{1}}}

Reference[editovat | editovat zdroj]

V tomto článku byl použit překlad textu z článku WebSocket na anglické Wikipedii.

  1. FETTE, Ian; MELNIKOV, Alexey. RFC 6455 The WebSocket Protocol [online]. IETF, prosinec 2011. Kapitola 1.7.  
  2. . Dostupné online.  
  3. HTML5 WebSocket: A Quantum Leap in Scalability for the Web
  4. . Dostupné online.  
  5. Ian Fette; Alexey Melnikov (December 2011).
  6. [s.l.] : [s.n.]. Dostupné online. ISBN 978-1-4302-4740-1.  
  7. . Dostupné online.  
  8. . Dostupné online.  
  9. . Dostupné online.  
  10. . Dostupné online.  
  11. . Dostupné online.  
  12. . Dostupné online.  
  13. . Dostupné online.  
  14. . Dostupné online.  
  15. . Dostupné online.  
  16. . Dostupné online.  
  17. . Dostupné online.  
  18. . Dostupné online.  
  19. . Dostupné online.  
  20. . Dostupné online.  
  21. . Dostupné online.  
  22. . Dostupné online.  
  23. . Dostupné online.  

Související články[editovat | editovat zdroj]

Externí odkazy[editovat | editovat zdroj]