Proxy satın alırken karşınıza çıkan ilk teknik seçim genellikle protokoldür: HTTP(S) mi, SOCKS5 mi? İkisi de trafiğinizi başka bir IP üzerinden geçirir, ama bunu farklı katmanlarda ve farklı yeteneklerle yapar. HTTP proxy web isteklerini tanır ve onlarla çalışır. SOCKS proxy ise hangi uygulamanın ne gönderdiğiyle ilgilenmeden baytları bir uçtan diğerine taşır.
Bu yazıda iki protokolün çalışma biçimini adım adım, pratikteki farklarını, DNS ve şifreleme ayrıntılarını, yazılım desteğini ve hangi işte hangisinin seçilmesi gerektiğini anlatıyoruz. SOCKS5'in teknik ayrıntılarına daha derinden bakmak isterseniz SOCKS5 Proxyler Nedir? yazımız iyi bir tamamlayıcı olur. Proxy'nin genel çalışma mantığı için Proxy Sunucu Nedir ve Nasıl Çalışır? yazımıza bakabilirsiniz.
HTTP proxy nasıl çalışır?
HTTP proxy, adından da anlaşılacağı gibi HTTP protokolünü konuşur. İki farklı durumda iki farklı davranış gösterir:
- Şifresiz HTTP isteklerinde istemci, isteğin tamamını proxy'ye gönderir. Proxy isteği okur, hedefe iletir ve yanıtı geri döndürür. Bu sırada başlıkları görebilir, önbelleğe alabilir veya değiştirebilir.
- HTTPS isteklerinde istemci önce proxy'ye
CONNECT hedef.com:443isteği gönderir. Proxy hedefle bir TCP bağlantısı açar ve bundan sonra yalnızca şifreli baytları aktarır. İçeriği göremez. Bu yöntem RFC 9110 içinde tanımlıdır.
Yani günümüzün HTTPS ağırlıklı web'inde bir HTTP proxy, sitenin içeriğine değil yalnızca bağlanılan alan adına ve porta erişir.
Bir HTTPS isteğinin proxy üzerinden izlediği yol şöyledir:
- İstemci proxy'ye TCP ile bağlanır ve
CONNECT hedef.com:443 HTTP/1.1gönderir; gerekiyorsaProxy-Authorizationbaşlığıyla kimliğini doğrular. - Proxy hedefe bağlanır ve istemciye
200 Connection Establisheddöner. - İstemci, bu bağlantının içinde hedefle TLS el sıkışması yapar. Sertifika doğrulaması istemci ile hedef arasındadır.
- Şifreli HTTP trafiği tünelden akar; proxy yalnızca bayt taşır.
"HTTPS proxy" ifadesi çoğu zaman bu tünelleme yeteneğini anlatır; proxy'nin kendisiyle kurulan bağlantı genellikle şifresiz HTTP'dir. Bu yüzden proxy adresleri HTTPS siteler için de http:// ile başlar.
SOCKS proxy nasıl çalışır?
SOCKS, uygulama protokolünden bağımsız çalışır. İstemci proxy'ye "şu adrese, şu porta bağlan" der; SOCKS sunucusu bağlantıyı kurar ve iki taraf arasındaki trafiği olduğu gibi aktarır. Karşıdaki trafiğin web, oyun, e-posta ya da veritabanı olması onu ilgilendirmez.
Günümüzde kullanılan sürüm olan SOCKS5, RFC 1928 ile tanımlanır ve eski SOCKS4'e göre üç önemli özellik ekler:
- Kimlik doğrulama (kullanıcı adı ve parola, RFC 1929),
- UDP desteği (oyunlar, sesli görüşme, DNS gibi UDP tabanlı trafik için),
- Alan adıyla bağlantı, yani DNS çözümlemesinin proxy tarafında yapılabilmesi; ayrıca IPv6 adres desteği.
SOCKS5 bağlantısı da birkaç adımda kurulur: İstemci desteklediği kimlik doğrulama yöntemlerini bildirir, sunucu birini seçer, kimlik doğrulanır, ardından istemci hedef adresi ve portu gönderir. Sunucu bağlantıyı kurduktan sonra iki yön arasında ham veri akar. Bu el sıkışma birkaç bayttan ibarettir; HTTP başlıklarından daha küçüktür.
Temel farklar
| Ölçüt | HTTP(S) proxy | SOCKS5 proxy |
|---|---|---|
| Çalıştığı katman | Uygulama katmanı (HTTP) | Oturum katmanı, protokolden bağımsız |
| Taşıdığı trafik | Web istekleri | Her türlü TCP ve UDP trafiği |
| UDP desteği | Yok | Var |
| İstek başlıklarına erişim | Şifresiz HTTP'de var | Yok |
| Önbellek ve içerik filtreleme | Şifresiz HTTP'de mümkün | Mümkün değil |
| Kimlik doğrulama | Var (Proxy-Authorization) | Var (kullanıcı adı/parola) |
| DNS çözümlemesi | HTTPS'te hedef alan adı proxy'ye iletilir | İstemcide veya proxy'de yapılabilir |
| El sıkışma ek yükü | HTTP başlıkları | Birkaç bayt |
| Yazılım desteği | Tarayıcılar, HTTP kütüphaneleri, neredeyse her araç | Tarayıcılar, cURL, masaüstü uygulamalar, oyun istemcileri; bazı kütüphanelerde ek paket gerekir |
| Tipik kullanım | Web kazıma, SEO, fiyat takibi | Oyunlar, masaüstü uygulamalar, web dışı protokoller |
DNS çözümlemesi neden önemli?
İki protokol arasındaki en az bilinen ama en önemli farklardan biri, alan adının IP'ye nerede çevrildiğidir.
- HTTP proxy'de
CONNECT hedef.com:443isteği alan adını proxy'ye iletir; çözümlemeyi proxy yapar. İstemcinin kendi DNS sunucusuna hiç sorgu gitmez. - SOCKS5'te iki seçenek vardır. İstemci alan adını kendisi çözüp IP gönderebilir (cURL'de
socks5://) ya da alan adını proxy'ye bırakabilir (cURL'desocks5h://). İlk seçenekte DNS sorgusu sizin ağınızdan çıkar; bu, hangi sitelere bağlandığınızın yerel ağdan görülebilmesi ve hedef sitenin size en yakın sunucu yerine proxy'ye uzak bir sunucu vermesi anlamına gelir.
Pratik kural: SOCKS5 kullanırken uzak çözümlemeyi tercih edin. Kütüphanelerde bu genellikle socks5h şemasıyla ya da "remote DNS" seçeneğiyle ayarlanır; bazı araçlar varsayılan olarak yerel çözümleme yapar ve bu fark gözden kaçar.
Hız açısından hangisi önde?
Genel olarak konuşmak gerekirse SOCKS5 daha az iş yaptığı için ek yükü daha düşüktür: istekleri yorumlamaz, sadece aktarır. HTTPS trafiğinde ise HTTP proxy de CONNECT tünelinden sonra yalnızca bayt aktardığı için fark büyük ölçüde kapanır.
Pratikte hızı protokolden çok proxy sunucusunun konumu, IP türü ve hat kalitesi belirler. Hedef sunucuya yakın bir çıkış noktası seçmek, protokol değiştirmekten çok daha fazla fark yaratır. Oyunlarda bu farkın nasıl ölçüldüğünü Oyunlarda Ping ve Paket Kaybı Çözümü yazımızda anlattık; IP türünün hıza etkisini ise Residential ve Datacenter Proxy Farkı yazımızda.
Güvenlik ve gizlilik açısından fark var mı?
İki protokol de trafiği şifrelemez. Şifreleme, hedef servisin kullandığı protokolden gelir: web'de HTTPS, uzak kabukta SSH, e-postada TLS. Bu açıdan "SOCKS5 daha güvenli" ya da "HTTP proxy daha güvenli" demek yanlıştır; ikisi de aynı derecede taşıyıcıdır.
Farklılaşan iki nokta vardır:
- Şifresiz HTTP'de görünürlük. Şifresiz bir HTTP sitesine HTTP proxy ile bağlanırsanız proxy isteğin tamamını okuyabilir; SOCKS5 de aynı baytları taşır, yalnızca yorumlamaz. Yani gizlilik açısından fark yoktur, her iki durumda da trafik şifresizdir.
- DNS sızıntısı. Yukarıda anlatıldığı gibi SOCKS5'te yerel çözümleme yaparsanız hangi sitelere gittiğiniz yerel ağdan görülebilir. HTTP proxy'de bu risk yoktur, çünkü alan adı her zaman proxy'ye iletilir. Tarayıcıda WebRTC üzerinden oluşan IP sızıntısı ve testi için WebRTC ve DNS Sızıntısı yazımıza bakabilirsiniz.
Proxy ile VPN arasındaki şifreleme farkını merak ediyorsanız Proxy ve VPN Farkı yazımıza bakabilirsiniz.
Hangi durumda HTTP proxy seçilmeli?
- Web kazıma ve otomasyon. Python'daki Requests, HTTPX ve AIOHTTP gibi kütüphaneler HTTP proxy'yi ek paket gerektirmeden destekler. Kütüphaneler arasındaki farkları HTTPX, Requests ve AIOHTTP karşılaştırmamızda ele aldık; Node.js tarafını JavaScript'te cURL yazımızda gösterdik.
- Yalnızca web trafiği yönlendiriyorsanız. Tarayıcıda, SEO araçlarında veya fiyat takip yazılımlarında HTTP proxy en geniş uyumluluğu sunar.
- Komut satırı araçları. cURL ve wget ile hızlı testler için HTTP proxy doğrudan çalışır. wget'in yerleşik SOCKS desteği olmadığını da hatırlatalım; ayrıntılar wget ile Proxy Kullanımı yazımızda.
- Tarayıcı otomasyonu. Puppeteer, Playwright ve Selenium HTTP proxy ile kullanıcı adı ve parola doğrulamasını destekler; SOCKS5'te Chrome bu doğrulamayı desteklemez.
- Kurumsal ağ ve önbellek. Şifresiz HTTP trafiğini önbelleğe almak ya da filtrelemek yalnızca HTTP proxy ile mümkündür.
Web trafiği için uygun seçenek HTTPS Proxy paketleridir.
Hangi durumda SOCKS5 proxy seçilmeli?
- Oyunlar ve masaüstü uygulamalar. Oyun istemcileri web tarayıcısı değildir; kendi protokolleriyle ve çoğu zaman UDP ile haberleşir. Bu trafiği yalnızca SOCKS5 taşıyabilir. Oyun tarafındaki kurulumları Knight Online ve Silkroad Online rehberlerimizde anlattık.
- Web dışı protokoller. SSH, FTP, e-posta veya özel TCP servisleri.
- Uygulamayı proxy'ye zorlamak. Proxy ayarı sunmayan programlar, Proxifier gibi araçlarla SOCKS5 üzerinden yönlendirilebilir. Kurulumu Proxifier rehberimizde bulabilirsiniz.
- DNS sızıntısını önlemek. Alan adı çözümlemesinin proxy tarafında yapılmasını istediğinizde (cURL'de
socks5h://şeması gibi). - Düşük ek yük. Çok sayıda kısa bağlantı açan uygulamalarda SOCKS5'in küçük el sıkışması ölçülebilir bir fark yaratabilir.
Bu senaryolar için SOCKS5 Proxy paketlerine göz atabilirsiniz.
Yazılım desteği: hangi araç neyi destekler?
| Araç | HTTP(S) proxy | SOCKS5 proxy |
|---|---|---|
| Chrome, Firefox, Edge | Var | Var (Chrome'da parola doğrulaması yok) |
| cURL | Var | Var (socks5://, socks5h://) |
| wget | Var | Yok |
| Python Requests | Yerleşik | requests[socks] ile |
| Python HTTPX | Yerleşik | httpx[socks] ile |
| Node.js undici / fetch | ProxyAgent | socks-proxy-agent gibi ek paketle |
| Puppeteer / Playwright | Var | Var (parola doğrulaması sınırlı) |
| Proxifier | Var | Var |
| SSH istemcileri | ProxyCommand ile | ProxyCommand ile, doğal destek |
| Oyun istemcileri | Genelde yok | Yönlendirme aracıyla |
Tablonun gösterdiği gibi HTTP proxy'nin desteği daha yaygındır; SOCKS5 ise desteklediği yerlerde daha geniş bir trafik yelpazesi taşır.
Aynı proxy iki protokolü de destekleyebilir mi?
Evet. Birçok sağlayıcı aynı IP'yi hem HTTP hem SOCKS5 portu üzerinden sunar; protokolü bağlantı adresindeki şema belirler. Aynı proxy'yi cURL ile iki şekilde denemek farkı görmenin en hızlı yoludur:
# HTTP proxy üzerinden
curl -x "http://kullanici:parola@pr.proxynet.io:8000" https://httpbin.org/ip
# SOCKS5 üzerinden, DNS çözümlemesi proxy tarafında
curl -x "socks5h://kullanici:parola@pr.proxynet.io:1080" https://httpbin.org/ipİki komut da aynı çıkış IP'sini döndürmelidir. Adres ve port bilgileri paketinize göre değişir; doğru değerleri müşteri panelinizde bulabilirsiniz. cURL'deki diğer proxy seçenekleri için cURL ile Proxy Nasıl Kullanılır? yazımıza bakabilirsiniz.
Python'da aynı iki denemeyi Requests ile yapmak isterseniz:
import requests
HTTP_PROXY = "http://kullanici:parola@pr.proxynet.io:8000"
SOCKS_PROXY = "socks5h://kullanici:parola@pr.proxynet.io:1080" # pip install "requests[socks]"
for proxy in (HTTP_PROXY, SOCKS_PROXY):
r = requests.get("https://httpbin.org/ip", proxies={"http": proxy, "https": proxy}, timeout=20)
print(proxy.split("://")[0], r.json()["origin"])Karar rehberi
| İhtiyacınız | Öneri |
|---|---|
| Python veya Node.js ile web kazıma | HTTP(S) |
| Tarayıcı otomasyonu, parola doğrulamalı proxy | HTTP(S) |
| SEO, fiyat takibi, reklam doğrulama araçları | HTTP(S) |
| Oyun istemcisi, UDP trafiği | SOCKS5 |
| SSH, FTP, e-posta, özel TCP servisi | SOCKS5 |
| Proxy ayarı olmayan masaüstü uygulaması | SOCKS5 + Proxifier |
| DNS sorgularının proxy tarafında kalması | SOCKS5 (uzak çözümleme) veya HTTP(S) |
| wget ile indirme | HTTP(S) |
Sık sorulan sorular
SOCKS5 trafiği şifreler mi?
Hayır. SOCKS5 trafiği olduğu gibi taşır. Bağlantı gizliliğini sağlayan şey hedef servisin kullandığı şifrelemedir (örneğin HTTPS veya SSH). Aynı durum HTTP proxy için de geçerlidir.
Tarayıcıda hangisini kullanmalıyım?
Yalnızca web sitelerine erişiyorsanız ikisi de çalışır. HTTP proxy daha yaygın desteklenir ve parola doğrulamasını her tarayıcı destekler; SOCKS5 ise DNS çözümlemesini proxy'ye bırakmak istediğinizde avantaj sağlar. Tarayıcı düzeyinde profil bazlı yönetim için SwitchyOmega ve Firefox proxy ayarları rehberlerimize bakabilirsiniz.
Python'da SOCKS5 kullanabilir miyim?
Kullanabilirsiniz, ancak kütüphaneye göre ek paket gerekir. Requests için requests[socks], HTTPX için httpx[socks] kurulumu yapılır; ardından proxy adresinde socks5:// veya socks5h:// şeması kullanılır.
SOCKS4 hâlâ kullanılıyor mu?
Bazı eski araçlar destekler, ancak kimlik doğrulama, UDP ve alan adı desteği olmadığı için yeni kurulumlarda tercih edilmez. Bir sağlayıcı "SOCKS" diyorsa günümüzde SOCKS5 kastedilir.
HTTP proxy ile HTTPS proxy aynı şey mi?
Günlük kullanımda evet: "HTTPS proxy", HTTPS sitelere CONNECT tüneliyle erişebilen HTTP proxy anlamına gelir. Teknik olarak proxy'nin kendisiyle TLS üzerinden konuşulan bir biçim de vardır, ancak yaygın değildir ve çoğu istemci desteklemez.
Proxy'nin hangi protokolü desteklediğini nasıl anlarım?
Sağlayıcının panelinde port bilgisi genellikle protokole göre verilir; HTTP ve SOCKS5 için farklı portlar olur. Emin değilseniz yukarıdaki iki cURL komutunu deneyin: Yanlış protokolle bağlanmaya çalışmak bağlantı hatası ya da anlamsız yanıt verir, doğru protokol IP'yi döndürür.
Özetle
Web trafiği yönlendiriyorsanız HTTP(S) proxy en geniş uyumluluğu sunar ve çoğu kazıma aracında kutudan çıktığı gibi çalışır. Oyunlar, masaüstü uygulamalar, UDP trafiği veya web dışı protokoller söz konusuysa SOCKS5 tek doğru seçenektir; bu durumda DNS çözümlemesini proxy tarafında bırakmayı unutmayın. Hız farkını protokolden çok proxy'nin konumu ve IP türü belirler. İki protokolü de destekleyen paketler için proxy çözümlerimize göz atabilirsiniz.




