WebSocket

Z Wikipedii, wolnej encyklopedii
Przejdź do nawigacji Przejdź do wyszukiwania

WebSocket jest technologią zapewniającą dwukierunkowy kanał komunikacji za pośrednictwem jednego gniazda TCP. Stworzono ją do komunikacji przeglądarki internetowej z serwerem internetowym, ale równie dobrze może zostać użyta w innych aplikacjach typu klient lub serwer. Została ustandaryzowana przez Internet Engineering Task Force w Request for Comments 6455[1] w 2011 roku a interfejs WebSocket w Web IDL jest standaryzowany przez World Wide Web Consortium.

WebSocket został zaprojektowany tak, aby mógł być przesyłany przez istniejącą infrastrukturę przystosowaną do transmisji HTTP (czyli przez już skonfigurowane do tego celu serwery proxy, przechodził przez ustawienia zapory sieciowej jeżeli tylko dopuszczany jest ruch HTTP). Natomiast jest zaprojektowany w tym celu, aby zapewnić interakcję (czyli dwukierunkową swobodną wymianę komunikatów) pomiędzy przeglądarką internetową a serwerem. Umożliwia on serwerowi wysyłanie danych do przeglądarki nawet wtedy jeżeli przeglądarka o te dane wcześniej nie zapyta (wystarczy, że wcześniej zestawiono odpowiedni kanał komunikacji).

Znakomicie zmniejsza to obciążenie sieci, serwera i samej przeglądarki. Unika się dodatkowych komunikatów przesyłanych i przetwarzanych po obu stronach tylko dla utrzymania stałej komunikacji oraz umożliwia serwerowi przesyłanie do przeglądarki w czasie rzeczywistym nowych danych kiedy tylko pojawią się na serwerze. Przykładowo aplikacja pocztowa działająca w przeglądarce może natychmiast wyświetlić nowy mail, który właśnie przyszedł bez potrzeby odświeżania strony przez użytkownika.

Przeglądarki wspierające WebSocket[edytuj | edytuj kod]

WebSocket został zaimplementowany w przeglądarkach: Firefox 4, Google Chrome 4, Opera 11, Internet Explorer 10 oraz Safari 5 (również w mobilnym Safari dla iOS 4.2). Z powodu luk w zabezpieczeniach WebSocket został domyślnie wyłączony w Firefoksie 4 i Operze 11 do czasu ich naprawienia[2][3] Aktualnie wszystkie najpopularniejsze przeglądarki wspierają tę technologię[4].

Układ URL[edytuj | edytuj kod]

Specyfikacja WebSocket definiuje dwa nowe URI, ws: i wss:, dla nieszyfrowanych i szyfrowanych połączeń.

Zasada działania jest taka, że przeglądarka nawiązuje połączenie za pomocą standardowego protokołu HTTP, po czym wysyła specjalny nagłówek HTTP Upgrade header informujący o tym, że dalsza komunikacja w ramach tego połączenia ma być realizowana przy pomocy kanału WebSocket.

Zobacz też[edytuj | edytuj kod]

Przypisy[edytuj | edytuj kod]