Deniz Özkan | Websocket Nedir?
15358
post-template-default,single,single-post,postid-15358,single-format-standard,ajax_fade,page_not_loaded,,footer_responsive_adv,qode-theme-ver-14.2,qode-theme-bridge,disabled_footer_top,wpb-js-composer js-comp-ver-5.4.7,vc_responsive

Websocket Nedir?

Websocket Nedir?

Merhabalar,

Yazmaya uzun süredir ara verdiğimin farkındayım, lakin biraz yoğun bir sürecin içerisindeydim. Dönüşümü çok güzel bir konu olduğunu düşündüğüm WebSocket’lerle yapmak istedim. HTML5 standartları arasında yer alan bu özellik HTTPprotokolünün özellikle Real-Time veri akışlarındaki kısıtlamalarını, güçlüklerini ortadan kaldırır nitelikte…

Bilindiği üzere HTTP üzerinde Request-Response yapısı bulunmaktadır. Yani istemcinin gönderdiği talebe karşılık sunucunun vereceği bir cevap beklenir. Bu sistem, özellikle değişim gösteren içeriklerin incelenmesinde yetersiz kalmaktaydı. bu sorunun üstesinden kalkmak için Polling denen sistem sıklıkla kullanılmaktaydı. Polling yönteminde istemci belirli periyotlarla sunucuya talep gönderir ve gelen cevapları okur. Benzeri bir çok yöntem bulunmaktadır. Ama bunların tümü tek talebe karşılık tek cevap veren yöntemler idi. WebSocketler, bu yöntemlerden farklı olarak, tek talep gönderilir ve sonrasında cevap için sürekli hattı dinlenir prensibine dayanır.. Sunucu cevabı gönderdikten sonra, gerçekleşen herhangi bir değişiklikten sonra istemciye tekrar cevap gönderir.

WebSockets’ in HTTP’ nin standart çalışma modeline göre daha önemli avantajları bulunmaktadır. HTTPprotokolüne baktığımızda aşağıdaki handikaplara sahip olduğunu görmekteyiz.

  • Hızlı bir iletişim olması için tasarlanmamıştır.
  • Her bir request’ de mesaj başlığı(Message Header) gibi kısımlar veri ile dolduklarından paket hareket eden paket boyutları artmaktadır.
  • Özellikle istemci tarafındaki uygulamaya ait verileri güncel tutabilmek için tarayıcı üzerinden sürekli olarak bir talep gönderilmesi gerekir.
  • Daha kısıtlı bir Cross Domain desteği bulunmaktadır.
  • Bazı vakalarda ve özellike Long Polling ve Streaming tekniklerinin uygulandığı hallerde, Proxy veya Firewall gibi ara katmanlar cevap sürelerinde gecikmelere neden olabilir.
  • Diğer yandan Long Polling ve Streaming teknikleri ölçeklenebilir(Scalable) değildir.

WebSockets’ in ise bu dezavantajlar karşısında sunduğu önemli avantajlar mevcuttur. Bunları şu şekilde sıralayabiliriz;

  • Gerektiği kadar verinin gönderilmesi söz konusudur.
  • Bandwith daha efektif olarak kullanılır.
  • Cross Domain desteği sağlamaktadır.
  • Firewall ve Proxy’ ler üzerinden de iletişim sunabilir.
  • Şu an için bazı Javascript implementasyonları haricinde Binary veri akışı desteği de sunar.
  • TCP tabanlı yük dengeleyicileri(Load Balancer) içerir.

Standart HTTP ve WebSocket arasındaki farkları bir de şekilsel olarak şöyle ifade edebiliriz.

Yani mantık olarak, tek bir Request kanalı açılır ve gerekli olduğu sürece WebSocket Response göndermeye devam eder.

Bu yazı NASIL YAPILIR” dan ziyade “NEDİR” sorusuna cevap vermek amacıyla hazırlandı. Umarım yapının anlaşılması için etkili bir yazı olabilmiştir. Aklınıza takılan herhangi bir soru için yorumları, ya da iletişim kanallarımı kullanabilirsiniz.

“NASIL YAPILIR” kısmına gireceğimiz daha sonraki yazımda buluşmak üzere…

Henüz yorum yok

Yorum yapmak ister misiniz?