# TCP vs HTTP

Adres: https://softwaredictionary.org/tr/karsilastirma/tcp-vs-http
Son güncelleme: 2026-10-06

Kısaca: TCP iki program arasında güvenilir bir bayt akışı taşır; HTTP ise onun üzerinde çalışır ve bu baytlara istek ve yanıt olarak anlam kazandırır.

## TCP ile HTTP arasındaki fark nedir?

TCP ve HTTP farklı katmanlarda çalışır; bu yüzden birbirinin alternatifi değil, ortağıdır. TCP (Transmission Control Protocol) bir taşıma protokolüdür: iki program arasında bir bağlantı açar ve kaybolanı yeniden göndererek baytların eksiksiz ve sırayla ulaşmasını garanti eder. HTTP (Hypertext Transfer Protocol) ise bir uygulama protokolüdür: bu baytların ne anlama geldiğini tanımlar; metot ve URL içeren istekler, durum kodu, başlıklar ve gövde içeren yanıtlar.

TCP web sayfaları hakkında hiçbir şey bilmez, HTTP de kaybolan paketlerle uğraşmaz. Bir tarayıcı HTTP/1.1 ya da HTTP/2 üzerinden bir sayfa yüklerken önce sunucuya, genellikle 443 numaralı portta ve üzerinde TLS ile, bir TCP bağlantısı açar, ardından HTTP isteklerini bu bağlantıdan gönderir. Tek bir TCP bağlantısı pek çok HTTP isteği taşıyabilir: art arda ya da HTTP/2 ile iç içe.

İyi bir benzetme, telefon hattı ve konuşmadır. TCP hattın kendisidir: iki tarafı bağlar ve her sözcüğün sırayla karşıya geçmesini sağlar. HTTP ise konuşmanın adabıdır: bir taraf üzerinde anlaşılmış bir biçimde sorar, diğeri bir durum ve içerikle cevap verir. SSH, e-posta için SMTP ve çoğu veritabanı bağlantısı dahil pek çok başka protokol de TCP'yi aynı şekilde kullanır.

Sık yapılan bir yanlış, HTTP'nin her zaman TCP üzerinde çalıştığını düşünmektir. HTTP/3; aynı metotları, başlıkları ve durum kodlarını korurken, UDP üzerine kurulu ve kendi güvenilirliğini ve şifrelemesini sağlayan QUIC protokolü üzerinde çalışır. Ayrıca TCP'yi doğrudan programlayan geliştirici azdır: çoğu, bağlantıları onlar yerine açan HTTP istemcileri, veritabanı sürücüleri ve diğer kütüphaneler aracılığıyla TCP ile karşılaşır.

| Özellik | TCP | HTTP |
| --- | --- | --- |
| Katman | Taşıma katmanı (katman 4) | Uygulama katmanı (katman 7) |
| Görevi | Baytları güvenilir biçimde ve sırayla teslim etmek | Web kaynakları için istekleri ve yanıtları tanımlamak |
| Veri birimi | Segmentler hâlinde gönderilen bir bayt akışı | Mesajlar: bir başlangıç satırı, başlıklar ve isteğe bağlı bir gövde |
| Bildiği kavramlar | Portlar, sıra numaraları ve onaylar | Metotlar, URL'ler, durum kodları ve başlıklar |
| Bağlantı kurulumu | Üç adımlı el sıkışma: `SYN`, `SYN-ACK`, `ACK` | Kendine ait yok; taşıma katmanının bağlantısını kullanır |
| Üzerinde çalıştığı | IP | HTTP/1.1 ve HTTP/2 için TCP; HTTP/3 için UDP üzerinde QUIC |
| Taşıdığı diğer şeyler | SSH, e-posta, veritabanı protokolleri ve HTTP | Web sayfaları, REST API'leri ve dosya indirmeleri |

## TCP şu durumlarda doğru seçim

- Bir oyun sunucusu ya da cihaz bağlantısı gibi bir iş için kendi protokolünüzü tasarlıyorsunuz.
- HTTP'nin başlıkları ve istek yapısı olmadan güvenilir bir bayt akışına ihtiyacınız var.
- Bir veritabanı ya da e-posta protokolü gibi zaten TCP üzerinde çalışan bir protokolü uyguluyor ya da hatalarını ayıklıyorsunuz.

## HTTP şu durumlarda doğru seçim

- Bir web sitesi, bir web API'si ya da tarayıcının ulaşması gereken herhangi bir şey geliştiriyorsunuz.
- Standart metotlar, durum kodları, önbellek ve kimlik doğrulama istiyorsunuz.
- Proxy'ler, yük dengeleyiciler ve güvenlik duvarları trafiği anlayabilmeli.

## Sık sorulan sorular

**HTTP, TCP mi kullanır UDP mi?**

HTTP/1.1 ve HTTP/2 TCP kullanır. HTTP/3 ise UDP üzerinde çalışan ve kendi güvenilir teslimatını ve şifrelemesini ekleyen QUIC'i kullanır.

**HTTP, TCP'den daha mı hızlı?**

Bu soru tam oturmaz: HTTP, TCP tarafından taşınır; yani üstüne başlıklar ve ayrıştırma ekler. Ham TCP üzerindeki özel bir protokol daha yalın olabilir, ama HTTP'nin getirdiği araçları, önbelleği ve uyumluluğu kaybeder.

**HTTP hangi portu kullanır?**

Varsayılan olarak düz HTTP için 80, HTTPS için 443 numaralı portu. Bunlar TCP portlarıdır; yalnızca HTTP/3 UDP'nin 443 numaralı portunu kullanır.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
