Funkcjonować | Dwukierunkowa komunikacja przez połączenie TCP dla przeglądarek internetowych |
---|---|
Akronim | ws |
Data utworzenia | 2011 |
Port | 80 i 443 |
RFC | 6455 |
Websocket jest standardem Web wyznaczająca protokołu sieciowego w warstwie aplikacji i interfejsu programowania w World Wide Web do stworzenia pełnego dupleksu kanałów komunikacji za pośrednictwem połączenia TCP dla przeglądarek internetowych. Protokół został ustandaryzowany przez IETF w RFC 6455 w 2011 r., A interfejs programowania przez W3C .
Protokół WebSocket służy do otwierania dwukierunkowego (lub „ pełnego dupleksu ”) kanału komunikacyjnego w gnieździe TCP dla przeglądarek i serwerów WWW . Mówiąc dokładniej, umożliwia zatem:
Rosnąca interaktywność aplikacji internetowych, w następstwie poprawy wydajności przeglądarek, szybko spowodowała konieczność opracowania technik komunikacji dwukierunkowej między aplikacją internetową klienta a procesami serwera. Techniki polegające na wywołaniu żądania przez klienta za pośrednictwem obiektu XMLHttpRequest i wykorzystaniu przez serwer żądań HTTP o długim typie TTL do późniejszej odpowiedzi do klienta pozwoliły przezwyciężyć ten brak i zostały spopularyzowane dzięki udanej architekturze Ajax .
Według naukowca komputer Stéphane Bortzmeyer , „websocket dlatego oferuje praktycznie te same usługi aplikacji jak TCP” , ale ma tę zaletę, omijając liczne przeszkody pośredniczących do sieci przepływów ( firewalle itd.) W „dżungli”, która ma stać się współczesnym WWW . Wykorzystując architekturę HTTP (przekaźnik, uwierzytelnianie, porty 80 i 443), bardzo mało filtrowania, do stworzenia nowego protokołu transportowego, twórcy Websocket dążą do zapewnienia dwukierunkowej komunikacji sieciowej, która nie była już gwarantowana przez TCP. Głównym ograniczeniem Websocket jest to, że nie jest to protokół ogólny: komunikacja musi koniecznie odbywać się za pośrednictwem przeglądarki internetowej klienta lub określonych bibliotek dedykowanych (patrz sekcja „Implementacje” ).
Interfejs programowania WebSocket został opracowany w ramach WHATWG .
Sama zasada WebSocket została zakwestionowana w organach specyfikacji podczas jej opracowywania, ponieważ prawdopodobnie lepiej było rozwiązać problemy z filtrowaniem występujące w warstwie sieciowej niż tworzyć nowy protokół nad nią. Warstwy aplikacji.
W API wczesnych wersji Websocket wykryto lukę w zabezpieczeniach. Bezpieczeństwo zostało naruszone podczas przeglądania, zastępując plik JavaScript złośliwym oprogramowaniem na etapie uzgadniania . Ponieważ ta wada występuje w samym API, nie można jej naprawić żadną poprawką w przeglądarce. W niektórych wersjach przeglądarek, takich jak Firefox 4 i 5, Opera 11 i Internet Explorer 9, usługa WebSocket została wyłączona z powodu tej usterki.
Luka bezpieczeństwa w Firefoksie została poprawiona w Firefoksie 6 (silnik Gecko 6.0).
Internet Explorer zaimplementował websocket z IE10.
W Operze zawsze można było ponownie aktywować websocket. Od wersji Opera 12, websocket jest aktywowany.
Charakterystyka | Chrom | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Wsparcie dla wersji -76 | 6 | 4,0 (2,0) | Bez wsparcia | 11.00 (wyłączone) | 5.0.1 |
Obsługa protokołu w wersji 7 | Bez wsparcia | 6.0 | Bez wsparcia | Bez wsparcia | Bez wsparcia |
Obsługa protokołu w wersji 10 | 14 | 7.0 | Laboratorium HTML5 | ? | ? |
Standard - RFC 6455 Wsparcia | 16 | 11.0 | 10 | 12.10 | 6 |