Fonksiyon | Web tarayıcıları için bir TCP bağlantısı üzerinden çift yönlü iletişim |
---|---|
Kısaltma | ws |
Oluşturulma tarihi | 2011 |
Liman | 80 ve 443 |
RFC | 6455 |
WebSocket , web tarayıcıları için bir TCP bağlantısı üzerinden tam çift yönlü iletişim kanalları oluşturmak için uygulama katmanının bir ağ protokolünü ve World Wide Web'in bir programlama arayüzünü belirleyen bir Web standardıdır . Protokol tarafından standardize edilmiştir IETF içinde RFC 2011 yılında 6455 ve programlama arayüzünün W3C .
WebSocket protokolü, tarayıcılar ve web sunucuları için bir TCP soketinde iki yönlü (veya " tam çift yönlü ") bir iletişim kanalı açmak için kullanılır . Daha spesifik olarak, bu nedenle şunları sağlar:
Tarayıcı performansındaki gelişmeyi takiben web uygulamalarının artan etkileşimi, istemci web uygulaması ile sunucu süreçleri arasında iki yönlü iletişim tekniklerinin hızla geliştirilmesini gerekli kılmıştır. İstemcinin XMLHttpRequest nesnesi aracılığıyla istek çağrısına ve istemciye daha sonra yanıt vermek üzere sunucu tarafından depolanan uzun TTL türüne sahip HTTP isteklerine dayanan teknikler, bu eksikliğin üstesinden gelmeyi mümkün kılmış ve başarılı Ajax mimarileri tarafından popüler hale getirilmiştir. .
Bilgisayar bilimcisi Stéphane Bortzmeyer'e göre , "WebSocket bu nedenle uygulamalara TCP ile hemen hemen aynı hizmeti sunuyor" , ancak çağdaş Web haline gelen "ormanda" ağ akışlarının ( güvenlik duvarları vb.) Önündeki birçok aracı engeli aşma avantajına sahiptir. . Yeni bir aktarım protokolü oluşturmak için çok az filtreleme olan HTTP mimarisini (röle, kimlik doğrulama, bağlantı noktaları 80 ve 443) kullanarak, Websocket'in yaratıcıları artık TCP aracılığıyla garanti edilmeyen iki yönlü bir ağ iletişimi sağlamayı amaçlamaktadır. Websocket'in temel sınırlaması, genel bir protokol olmamasıdır: iletişim, mutlaka istemcinin web tarayıcısı veya belirli özel kütüphaneler aracılığıyla yapılmalıdır ( "Uygulamalar" bölümüne bakın ).
WebSocket programlama arayüzü WHATWG içinde geliştirilmiştir .
WebSocket'in ilkesi, uygulama katmanının üzerinde yeni bir protokol oluşturmaktan ziyade ağ katmanında bulunan filtreleme sorunlarını çözmenin tartışmasız daha iyi olduğu gerçeği adına, geliştirme sırasında spesifikasyon organları içinde itiraz edildi.
Websocket'in önceki sürümlerinin API'sinde bir güvenlik açığı keşfedildi. El sıkışma aşamasında bir JavaScript dosyasını kötü amaçlı yazılımla değiştirerek göz atma sırasında güvenlik ihlal edildi . Bu kusur API'nin kendisinde olduğu için tarayıcıdaki herhangi bir yama ile düzeltilemedi. Firefox 4 ve 5, Opera 11 ve Internet Explorer 9 gibi tarayıcıların bazı sürümlerinde, WebSocket bu kusur nedeniyle devre dışı bırakılmıştır.
Firefox'taki güvenlik açığı Firefox 6'dan (Gecko 6.0 motoru) düzeltildi.
Internet Explorer, websocket'i IE10 ile uygulamıştır.
Opera'da web soketini yeniden etkinleştirmek her zaman mümkündü. Opera 12'den websocket etkinleştirilir.
Özellikler | Krom | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Sürüm -76 desteği | 6 | 4.0 (2.0) | Destek yok | 11.00 (devre dışı) | 5.0.1 |
Protokol sürüm 7 desteği | Destek yok | 6.0 | Destek yok | Destek yok | Destek yok |
Protokol sürüm 10 desteği | 14 | 7.0 | HTML5 Laboratuvarları | ? | ? |
Standart - RFC 6455 Desteği | 16 | 11.0 | 10 | 12.10 | 6 |