WebSocket Nedir ve Nasıl Çalışır

Bu makale, WebSocket'in ne olduğunu, nasıl çalıştığını ve HTTP ile ilişkisini inceleyecek.

Efe Demir

Efe Demir

5 June 2025

WebSocket Nedir ve Nasıl Çalışır

WebSocket, istemciler ve sunucular arasında gerçek zamanlı, çift yönlü iletişimi sağlayan bir iletişim protokolüdür. Bu makalede, WebSocket'in ne olduğunu ve nasıl çalıştığını, avantajları ve temel bileşenleri dahil olmak üzere inceleyeceğiz. WebSocket dünyasına ve heyecan verici yeteneklerine dalarken bize katılın.

What is WebSocket

WebSocket, web uygulamalarında gerçek zamanlı, çift yönlü iletişim kanalları oluşturmak için kullanılan bir protokoldür. Genellikle bir istek ve ardından bir yanıttan oluşan geleneksel HTTP isteklerinin aksine, WebSocket, sunucunun istemciye gerçek zamanlı veri göndermesini ve aynı zamanda istemciden veri almasını sağlayan kalıcı bir bağlantı kurabilir. Geleneksel yoklama veya uzun yoklama ile karşılaştırıldığında, WebSocket ağ trafiğini ve gecikmeyi önemli ölçüde azaltarak veri iletiminin verimliliğini ve hızını artırır. Özellikle gerçek zamanlı web uygulamaları ve çevrimiçi oyunlar geliştirmek için kullanışlıdır.

WebSocket bağlantısı nedir? WebSocket, tarayıcı ile sunucu arasında iki yönlü bir iletişim kanalı oluşturarak, sunucunun, tarayıcının sunucuya sürekli olarak istek göndermesine gerek kalmadan, proaktif olarak tarayıcıya mesaj göndermesini sağlar. Prensip, tarayıcı ve sunucu arasında bir "soket" oluşturmayı ve bir el sıkışma yoluyla veri iletmeyi içerir. Protokol hem tarayıcıdan hem de sunucudan destek gerektirdiğinden, uygulamada değerlendirilmesi ve ele alınması gerekir.

WebSocket Principle

WebSocket Principle

WebSocket, HTTP ile uyumluluğu, düşük yükü ve verimli iletişimi ile bilinen, HTML5 ile tanıtılan TCP tabanlı çift yönlü bir iletişim protokolüdür. WebSocket, gerçek zamanlı çift yönlü veri iletimi için istemci ve sunucu arasında kalıcı bir bağlantı kurar.

WebSocket'in ana özelliği, istemci veya sunucu bir sonlandırma isteği başlatana kadar devam eden kalıcı bir TCP bağlantısının kurulmasıdır. WebSocket, HTTP/1.1'deki Yükseltme başlık bilgisi aracılığıyla sunucuya, protokolü HTTP/1.1'den WebSocket protokolüne yükseltme isteğini bildirir.

WebSocket, HTTP protokolü üzerine kurulmuştur ve tüm WebSocket istekleri, daha sonra sunucu tarafında belirli bir başlık bilgisi Yükseltme olarak tanınan standart HTTP protokolü aracılığıyla gönderilir. WebSocket, el sıkışma sırasında Sec-WebSocket-Key şifrelemesini ve SHA-1 imzasını kullandığından, HTTP WebSocket için esastır.

WebSocket bağlantısı kurulduktan sonra, istemci ve sunucu birbirlerine ikili akışlar veya Unicode dizeleri gönderebilir. Tüm veriler maskelenir ve maske değeri sunucu tarafından rastgele oluşturulur. Verileri göndermeden önce, üçüncü taraflarca kötü niyetli kurcalamayı önlemek için maskelenmesi gerekir.

WebSocket'in iletişim protokolünün çerçevelere (veri paketleri) dayalı olduğunu belirtmekte fayda var. Tam bir veri paketi, her biri verilerin bir bölümünü ve başlık bilgilerini içeren birden fazla çerçeveye bölünebilir.

The Relationship Between WebSocket and HTTP

WebSocket VS HTTP

Her İki Protokol de Ağ İletişimi İçin Kullanılır.

Bir WebSocket bağlantısı kurulurken, WebSocket protokolü HTTP protokolünün kullanılmasını gerektirir. Özellikle, istemci bir WebSocket bağlantısı kurmak istediğinde, bir HTTP isteği aracılığıyla bir el sıkışma isteği gönderir. Sunucu el sıkışmayı kabul ederse, bir el sıkışma yanıtı gönderir ve ardından HTTP protokolü WebSocket protokolüne yükseltilir.

HTTP ve WebSocket protokolleri ayrıca farklı kullanımlara sahiptir. HTTP protokolü esas olarak istemci ve sunucu arasındaki istek ve yanıt iletişimi için kullanılırken, WebSocket protokolü esas olarak gerçek zamanlı iletişim ve sunucu itme için kullanılır. Basit bir ifadeyle, HTTP protokolü "soru ve cevap" iken, WebSocket protokolü "konuşma"dır".

Özetle, WebSocket ve HTTP, iletişim modu, kullanım ve bağlantı kurulumunda farklılıkları olan, ancak birbirleriyle de ilişkili olan iki farklı protokoldür.

Using Apidog to Debug WebSocket Service

Bir WebSocket hizmeti geliştirdiyseniz ve hata ayıklamak istiyorsanız, WebSocket hizmetlerinde hata ayıklama yeteneğine sahip Apidog gibi mükemmel API hata ayıklama araçlarını kullanmanızı öneririz.

Google Chrome eklentisi

Apidog'un hem bir web sürümü hem de bir istemcisi vardır, web sürümünü kullanıyorsanız ve yerel bir hizmette hata ayıklamak istiyorsanız, Apidog'un Google Chrome eklentisini yüklemeniz gerekir. İndirme bağlantısı: Apidog Google Chrome eklentisi

Adım 1. Bir WebSocket İsteği Oluşturma

Apidog'un en son güncellemesinde, projenizin sol tarafındaki "+" düğmesine tıklayıp "Yeni WebSocket Arayüzü (Beta)" seçeneğini belirleyerek bir WebSocket arayüzüne erişmek kolaylaştırıldı.

Oradan, bir bağlantı kurmak ve sorunsuz bir şekilde mesaj gönderip almak için WebSocket arayüzünüzün URL'sini girebilirsiniz. Aşağıda, daha ayrıntılı talimatlar vereceğiz.

Adım 2. Mesaj ve Parametreleri Ayarlama

Mesaj bölümünde, sunucu tarafına göndermek istediğiniz bilgileri doldurabilirsiniz ve sunucu, ilettiğiniz bilgileri alacaktır.

Setting Message and Params

İletim işlemi sırasında parametreler de taşınabilir. Sorgu parametreleri adreste taşınabilir ve taşınabilen veri türleri arasında dize, tamsayı, sayı, dizi bulunur.

Paras

Adım 3. İsteği Kaydetme

Gerekli bilgileri tamamladıktan sonra, gelecekte kullanmak üzere kaydetmek için kaydet düğmesine tıklayabilirsiniz, bu da bir sonraki sefere tekrar erişmeyi kolaylaştırır.

Saving Request

Adım 4. WebSocket İsteklerini Bağlayın ve Gönderin

WebSocket sunucusuyla iletişim kurmak için bir WebSocket bağlantısı kurmamız gerekir. Bunu yapmak için "bağlan" düğmesine tıklamanız yeterlidir.

 Connect and send WebSocket requests

Başarılı bir bağlantıdan sonra, Apidog hemen bir başarı gösterecektir. Sunucu tarafında da başarılı bir bağlantı nedeniyle bir yanıt verilecektir.

Adım 5. WebSocket İsteği Gönderme

Ardından, WebSocket aracılığıyla sunucuyla iletişim kurabiliriz. Sunucuya mesaj ve parametre göndermek için Apidog'u kullanarak gönder düğmesine tıklayabiliriz.

Adım 6. WebSocket hizmetiyle iletişim kurma

Gönderdikten sonra, sunucu da istemciye bilgi gönderebilir. Örneğin, benim durumumda, sunucuyu her saniye geçerli zaman damgasını istemciye gönderecek şekilde ayarladım. Bu, Apidog'un çok kullanışlı olan WebSocket işlevidir.

Explore more

Cursor ile Deepseek R1'i Yerel Olarak Nasıl Kullanılır

Cursor ile Deepseek R1'i Yerel Olarak Nasıl Kullanılır

Yerel DeepSeek R1'i Cursor IDE ile kurun ve yapılandırın. Özel, uygun maliyetli AI kodlama yardımı için.

4 June 2025

Android'de Gemma 3n Nasıl Çalıştırılır?

Android'de Gemma 3n Nasıl Çalıştırılır?

Google AI Edge Gallery'den Gemma 3n'i Android'e kurup çalıştırmayı öğrenin.

3 June 2025

GitHub Eylemleri ile Claude Kodunu Nasıl Kullanılır

GitHub Eylemleri ile Claude Kodunu Nasıl Kullanılır

Claude Code'u GitHub Actions ile entegre edin: Kod incelemeleri, hata düzeltmeleri ve özellik uygulamaları. Kurulum, iş akışları ve geliştiriciler için ipuçları.

29 May 2025

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin