WebSocket

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

WebSocket je webový komunikační protokol, který umožňuje interaktivní komunikaci mezi webovými prohlížeči a webovými servery v reálném čase. Byl vyvinut jako náhrada stávajících technologií, jako je AJAX, které mají omezení a neefektivitu při udržování stálého spojení mezi klientem a serverem. WebSocket poskytuje plnoduplexní komunikaci, což znamená, že jak server, tak klient mohou okamžitě odesílat data v obou směrech. Protokol WebSocket je definován jako standard od roku 2011 a je podporován většinou moderních webových prohlížečů a serverových platforem. Jeho použití umožňuje vytvářet interaktivní webové aplikace, které mohou přenášet data mezi klientem a serverem v reálném čase. WebSocket je navržen tak, aby překonal nevýhody tradičních protokolů a poskytoval efektivní a spolehlivou komunikaci. V článku o WebSocketu na české Wikipedii se dozvíte více informací o tomto protokolu, jeho vlastnostech, principu fungování a způsobu implementace ve webových aplikacích.+N240- Taktéž jsou zde představeny standardy a technologie, které jsou součástí WebSocketu, a jsou popsány příklady použití a výhody protokolu.

WebSocket je počítačový [url= servery jako požadavek na upgrade. 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 případě [[AJAX][Protokol (informatika)|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. +more Jeho jediný vztah k HTTP je, že jeho handshake (navázání spojení) je interpretováno[/url]]u), 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, nejen klienta (prohlížeče) a jeho JavaScriptu.

Přehled

Na rozdíl od HTTP, WebSocket umožňuje obousměrnou komunikaci. Navíc, WebSocket umožňuje proudy zpráv na základě TCP. +more 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 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, bez ohrožení bezpečnostních předpokladů webu.

Protokol WebSocket specifikace definuje ws a wss jako dvě nové uniform resource identifier (URI) systémů, 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.

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

Bezpečnostní aspekty

Na rozdíl od běžných požadavků HTTP mezi doménami nejsou požadavky WebSocket omezeny zásadou stejného původu. Servery WebSocket proto musí během navazování připojení ověřit hlavičku „Origin“ proti očekávaným zdrojům, aby se vyhnuly útokům únosu WebSocket mezi weby (podobně jako padělání požadavků mezi weby), které by mohly být možné, když je připojení ověřeno pomocí souborů cookie nebo HTTP autentizace. +more Je lepší použít tokeny nebo podobné ochranné mechanismy k ověření připojení WebSocket, když jsou přes WebSocket přenášena citlivá (soukromá) data. Živý příklad zranitelnosti byl viděn v roce 2020 v podobě Cable Haunt.

Implementace v prohlížečích

Zabezpečená verze protokolu WebSocket je implementována ve Firefoxu 6, Safari 6, Google Chrome 14, Opeře 12. 10 a Internet Exploreru 10. +more Podrobná zpráva z testů protokolu 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. +more BlackBerry prohlížeč v OS7 implementuje protokol WebSocket. Z důvodu chyby v návrhu byl zakázán ve Firefoxu 4 a 5, jakož i v Opeře 11.

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.

[url=https://tools. +moreietf. org/html/draft-hixie-thewebsocketprotocol-75]hixie-75[/url]4. února 201045. 0
[url=https://tools. ietf. org/html/draft-hixie-thewebsocketprotocol-76]hixie-76[/url] [url=https://tools. ietf. org/html/draft-ietf-hybi-thewebsocketprotocol-00]hybi-00[/url]6. května 2010 23. května 20104. 0 (vypnuto)65. 111. 00 (vypnuto)
[url=https://tools. ietf. org/html/draft-ietf-hybi-thewebsocketprotocol-07]hybi-07[/url], v722. dubna 20116 requiring extra code to integrate with existing WebSocket-enabled code.
[url=https://tools. ietf. org/html/draft-ietf-hybi-thewebsocketprotocol-10]hybi-10[/url], v811. července 20117714
rfc:6455, v13prosinec 201110111116612. 104. 4
.

Odkazy

Reference

Související články

AJAX * Síťový socket

Externí odkazy

[url=https://datatracker. ietf. +moreorg/wg/hybi/charter/]IETF Hypertext-Obousměrný (HyBi)[/url], datatracker. ietf. org, (hypertext bi-directional); ** rfc:6455, na WebSocket protokolu - návrh normy, IETF HyBi. ** [url=https://tools. ietf. org/html/draft-ietf-hybi-thewebsocketprotocol]Internet-Draft[/url], tools. ietf. org, IETF HyBi. ** Hickson, Ian: [url=https://tools. ietf. org/html/draft-hixie-thewebsocketprotocol-76]původní návrh protokolu[/url], tools. ietf. org. * specifikace API, W3C ** [url=https://web. archive. org/web/20150607035919/http://dev. w3. org/html5/websockets/]WebSocket API, pracovní koncept[/url], dev. w3. org ** [url=http://www. w3. org/TR/websockets/]WebSocket API, doporučení (kandidát)[/url], w3. org * [url=https://web. archive. org/web/20180916101105/http://websocket. org/]WebSocket. org[/url] - dema, loopback testy, obecné informace a společenství. * [url=https://www. zdrojak. cz/clanky/web-sockets/]Web Sockets[/url] - Zdroják. cz.

Kategorie:Protokoly aplikační vrstvy Kategorie:Aplikační protokoly IP Kategorie:Webový software Kategorie:JavaScript Kategorie:World Wide Web Kategorie:Programovací jazyky

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top