WebSocket: Porovnání verzí
Vytvořeno překladem stránky „WebSocket“ |
(Žádný rozdíl)
|
Verze z 13. 6. 2017, 19:20
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 žádost 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 pomocí brány firewall. 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, Internet Exploreru, Firefoxu, Safari a Opeře. WebSocket však také vyžaduje podporu webových aplikací na straně serveru.
Přehled
Na rozdíl od HTTP, WebSocket umožňuje obousměrnou (full-duplex) 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
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á test suite zpráva 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] a 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]
Protokol | Návrh datum | Internet Explorer | Firefox[16] (PC) | Firefox (Android) | Chrome (PC, Mobilní telefon) | Safari (Mac, iOS) | Opera (PC, Mobilní telefon) | Android Browser |
---|---|---|---|---|---|---|---|---|
hixie-75 | 4. února 2010 | 4 | 5.0.0 | |||||
hixie-76 |
Květen 6, 2010 Květen 23, 2010 |
4.0 (vypnuto) | 6 | 5.0.1 | 11.00 (vypnuto) | |||
7 hybi-07 | 22. dubna 2011 | 6[17][pozn. 1] | ||||||
8 hybi-10 | 11. července 2011 | 7[19]Chybná citace: Chyba v tagu <ref> ; citace bez názvu musí mít vlastní obsah
|
7 | 14[20] | ||||
13 Šablona:IETF RFC | Prosinec, 2011 | 10[21] | 11 | 11 | 16[22] | 6 | 12.10[23] | 4.4 |
Viz také
Poznámky
Odkazy
- ↑ Šablona:Cite IETF
- ↑ Dostupné online.
- ↑ HTML5 WebSocket: A Quantum Leap in Scalability for the Web
- ↑ Dostupné online.
- ↑ Ian Fette; Alexey Melnikov (December 2011).
- ↑ [s.l.]: [s.n.] Dostupné online. ISBN 978-1-4302-4740-1.
- ↑ Dostupné online.
- ↑ Dostupné online.
- ↑ Dostupné online.
- ↑ Dostupné online.
- ↑ Dostupné online.
- ↑ Dostupné online.
- ↑ Dostupné online.
- ↑ Dostupné online.
- ↑ Dostupné online.
- ↑ Dostupné online.
- ↑ Dostupné online.
- ↑ WebSockets - MDN [online]. Mozilla Foundation, 2011-09-30 [cit. 2011-12-10]. Dostupné online.
- ↑ Dostupné online.
- ↑ Dostupné online.
- ↑ Dostupné online.
- ↑ Dostupné online.
- ↑ Dostupné online.
Externí odkazy
- IETF Hypertext-Obousměrný (HyBi) pracovní skupina
- Na WebSocket protokolu - návrhu Normy vydávané IETF HyBi Pracovní Skupiny
- Na WebSocket protokolu - Internet-Draft publikován IETF HyBi Pracovní Skupiny
- Na WebSocket protokolu - Původní protokol návrh Ian Hickson
- Na WebSocket API - W3C Pracovní Koncept specifikaci API
- Na WebSocket API - W3C Doporučení Kandidáta specifikaci API
- WebSocket.org WebSocket dema, loopback testů, obecné informace a společenství
Chybná citace: Nalezena značka <ref>
pro skupinu „pozn.“, ale neexistuje příslušná značka <references group="pozn."/>