WebSocket: Porovnání verzí

Z Wikipedie, otevřené encyklopedie
Smazaný obsah Přidaný obsah
Vytvořeno překladem stránky „WebSocket
značka: editace z rozšíření Překlad
(Žá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]

Stav provádění
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

hybi-00

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

Šablona:Notelist

Odkazy

Externí odkazy


Chybná citace: Nalezena značka <ref> pro skupinu „pozn.“, ale neexistuje příslušná značka <references group="pozn."/>