WeProxy

Karşılaştırma

HTTP mi SOCKS5 mi? Proxy protokolü nasıl seçilir?

Güncellendi 13 dk okuma

HTTP proxy ile SOCKS5’i kablo düzeyinde karşılaştırıyoruz: CONNECT tüneli, SOCKS5 el sıkışması, DNS, UDP, başlıklar, performans ve araç desteği.

Kısa cevap

  • HTTP proxy web ve API trafiği için, SOCKS5 ise HTTP dışı TCP, UDP ve proxy ayarı olmayan uygulamalar için seçilir.
  • HTTPS hedeflerde HTTP proxy `CONNECT` ile bir TCP tüneli açar ve tünel kurulduktan sonra şifreli içeriği göremez.
  • SOCKS5’te DNS’in proxy tarafında çözülmesi için şema `socks5://` değil `socks5h://` olmalıdır.
  • Tünel kurulduktan sonra iki protokol de aynı hızda taşır; fark yalnızca bağlantı kurulurken eklenen 1 ile 3 RTT arasındadır.
  • Chromium tabanlı tarayıcılar SOCKS5 kullanıcı adı/şifresini desteklemez, bu yüzden tarayıcı otomasyonunda HTTP proxy veya IP whitelist kullanılır.

Web ve API trafiği için HTTP proxy, HTTP dışı TCP bağlantıları, UDP veya kendi proxy ayarı olmayan uygulamalar için SOCKS5 seçilir. HTTP proxy, HTTP isteklerini anlayan ve HTTPS için CONNECT ile tünel açan bir aracıdır. SOCKS5 ise içeriğe bakmadan TCP bağlantılarını, destekleniyorsa UDP datagramlarını da aktaran genel amaçlı bir aktarma protokolüdür.

Protokol, IP türünden ayrı bir katmandır. Doğru residential IP ile yanlış protokol yine “proxy çalışmıyor” hatası üretir. Bu rehber iki protokolün kablo üzerinde ne gönderdiğini, DNS’in nerede çözüldüğünü, UDP ve başlık davranışını, performans iddialarını ve araç desteğini karşılaştırır. Örneklerde WeProxy gateway adresi gw.weproxy.com.tr:8989 kullanılır; USER ve PASSWORD paneldeki bilgilerinizdir.

HTTP proxy ile SOCKS5 arasındaki fark nedir?

Temel fark, proxy’nin trafiği ne kadar anladığıdır. HTTP proxy HTTP mesajlarını okur: düz HTTP’de URL’yi ve başlıkları görür, HTTPS’te yalnızca hedef host ve portu görür. SOCKS5 hiçbir uygulama protokolünü yorumlamaz; hedef adresi alır ve baytları iki yöne kopyalar.

ÖzellikHTTP proxySOCKS5
TanımRFC 9110 (anlambilim), RFC 9112 (HTTP/1.1 mesaj biçimi)RFC 1928
Taşıdığı trafikHTTP; HTTPS ve diğer TCP CONNECT tüneliyleHer türlü TCP, destekleniyorsa UDP
Kimlik doğrulamaProxy-Authorization: Basic başlığıAyrı alt müzakere (RFC 1929)
DNS çözümlemeProxy tarafında (host adı istekte gider)İstemci veya proxy (socks5 / socks5h)
UDPYokUDP ASSOCIATE komutu, sağlayıcı desteğine bağlı
Başlıklara erişimDüz HTTP’de okur ve ekleyebilir; HTTPS’te göremezHiç görmez
Hata diliHTTP durum kodları (407, 502)Tek baytlık reply kodları (0x01–0x08)
Bağlantı şifrelemesiYok (proxy’ye giden kısım düz metin)Yok

Son satır sık atlanır. İki protokol de istemci ile proxy arasındaki bağlantıyı şifrelemez. HTTPS hedeflerde içerik TLS ile korunur, ama proxy kimlik bilgisi ve hedef host adı proxy’ye açık gider. Cihaz ile çıkış noktası arasındaki yolun tamamı şifrelenmeliyse VPN gerekir; iki modelin kapsam ve şifreleme farkı proxy ile VPN karşılaştırmasında tablo halinde yer alıyor.

HTTP proxy nasıl çalışır?

HTTP proxy’de istemci, hedef siteye değil proxy’ye TCP bağlantısı açar ve isteği ona gönderir. İsteğin biçimi, hedefin http:// mi https:// mi olduğuna göre değişir.

Düz HTTP: mutlak URL

TLS’siz bir hedefte istemci, istek satırına yolun tamamını değil mutlak URL’yi yazar. RFC 9112 buna absolute-form der:

GET http://example.com/products?id=42 HTTP/1.1
Host: example.com
Proxy-Authorization: Basic VVNFUjpQQVNTV09SRA==

Proxy URL’yi okur, example.com adını kendisi çözer, hedefe bağlanır ve yanıtı geri iletir. Bu modelde proxy isteğin tamamını görür: yol, sorgu parametreleri, çerezler ve gövde. Proxy-Authorization değeri yalnızca Base64 kodlamasıdır, şifreleme değildir; VVNFUjpQQVNTV09SRA== çözüldüğünde USER:PASSWORD olur.

HTTPS: CONNECT tüneli

HTTPS hedeflerde istemci, RFC 9110’daki CONNECT yöntemi ile proxy’den bir tünel ister:

CONNECT example.com:443 HTTP/1.1
Host: example.com:443
Proxy-Authorization: Basic VVNFUjpQQVNTV09SRA==

HTTP/1.1 200 Connection established

Proxy 200 döndükten sonra bağlantı ham bir TCP borusuna dönüşür. İstemci TLS el sıkışmasını bu borunun içinde doğrudan hedefle yapar. Proxy artık yalnızca şifreli baytları taşır; URL yolunu, başlıkları ve gövdeyi göremez. Kimlik doğrulama hatası bu aşamada 407, hedefe ulaşılamaması 502 olarak döner.

CONNECT HTTP’ye özgü değildir; teoride her TCP portuna tünel açabilir. Pratikte birçok proxy CONNECT isteğini 443 gibi belirli portlarla sınırlar. Bu yüzden HTTP dışı TCP işleri için SOCKS5 daha öngörülebilir bir yoldur.

SOCKS5 nasıl çalışır?

SOCKS5 bağlantısı üç adımdan oluşur: yöntem seçimi, kimlik doğrulama ve komut. Hepsi ikili (binary) mesajlardır ve HTTP başlığı içermez.

El sıkışma ve kimlik doğrulama (RFC 1928 ve RFC 1929)

Kullanıcı adı ve şifreyle bir HTTPS sitesine bağlanan bir istemcinin gönderdiği baytlar şöyledir:

İstemci → Proxy : 05 02 00 02          VER=5, 2 yöntem: 0x00 (şifresiz), 0x02 (kullanıcı/şifre)
Proxy → İstemci : 05 02                0x02 seçildi
İstemci → Proxy : 01 04 "USER" 08 "PASSWORD"   RFC 1929 alt müzakeresi
Proxy → İstemci : 01 00                kimlik doğrulama başarılı
İstemci → Proxy : 05 01 00 03 0b "example.com" 01 bb   CONNECT, ATYP=alan adı, port 443
Proxy → İstemci : 05 00 00 01 <BND.ADDR> <BND.PORT>    REP=0x00, bağlantı hazır

Proxy hiçbir yöntemi kabul etmezse 0xFF döner ve bağlantıyı kapatır. RFC 1929’da kullanıcı adı ve şifre düz metin gider; HTTP’deki Base64’ten daha zayıf veya daha güçlü değildir. Güvenilmeyen bir ağdaysanız kimlik bilgisi yerine IP whitelist kullanmak bir seçenektir. WeProxy paketlerinde kullanıcı adı/şifre ve IP whitelist, HTTP ve SOCKS5 üzerinde birlikte kullanılabilir.

Komutlar ve adres türleri

RFC 1928 üç komut ve üç adres türü tanımlar:

AlanDeğerAnlamı
CMD0x01 CONNECTHedefe TCP bağlantısı aç (en yaygın kullanım)
CMD0x02 BINDProxy’de gelen bağlantı için port aç (aktif FTP gibi eski protokoller)
CMD0x03 UDP ASSOCIATEUDP datagramlarını aktarmak için bir röle başlat
ATYP0x01IPv4 adresi (4 bayt)
ATYP0x03Alan adı (1 bayt uzunluk + ad)
ATYP0x04IPv6 adresi (16 bayt)

Proxy desteklemediği bir komutta 0x07, desteklemediği adres türünde 0x08 döner. Bu reply kodlarının tam listesi ve tipik nedenleri proxy hata kodları rehberinde yer alır.

DNS hangi tarafta çözülür: socks5 mi socks5h mi?

HTTP proxy’de hedef host adı istekte (CONNECT example.com:443 veya mutlak URL) proxy’ye gider ve proxy çözer. Sağlıklı bir istemci hedef için yerel DNS sorgusu yapmaz.

SOCKS5’te karar istemcidedir. İstemci adı kendisi çözüp ATYP 0x01 ile IP gönderirse DNS sorgusu kendi çözümleyicinize gider. Adı ATYP 0x03 ile gönderirse proxy çözer. curl ve Python dünyasında bu fark şema adıyla ifade edilir:

  • socks5:// — çoğu istemcide yerel çözümleme. Sorgu, gerçek IP’nizle ISS veya ofis DNS’ine gider.
  • socks5h:// — host adı proxy’ye gider (“h” = hostname). Çözümleme çıkış tarafında yapılır.

socks5h ayrı bir protokol değildir, aynı RFC 1928’in ATYP 0x03 kullanımıdır. Yerel çözümlemenin iki yan etkisi vardır. Birincisi DNS sızıntısıdır. İkincisi coğrafi tutarsızlıktır: CDN arkasındaki bir site, sizin konumunuza yakın bir IP döndürür ve proxy o uzak adrese bağlanır. Testi ve kapatma adımlarını DNS sızıntısı rehberi ayrıntılı anlatır.

UDP trafiği hangi protokolle taşınır?

HTTP proxy UDP taşımaz. CONNECT bir TCP tünelidir; QUIC (HTTP/3) veya oyun trafiği bu yoldan geçmez. Proxy kullanan tarayıcılar bu yüzden genellikle HTTP/3 yerine TCP üzerinden HTTP/2 veya HTTP/1.1 kullanır.

SOCKS5’te UDP için UDP ASSOCIATE komutu vardır. İstemci önce TCP kontrol bağlantısı kurar ve proxy bir UDP röle adresi döndürür. Her datagram, başına hedef adresi ve portu içeren küçük bir SOCKS başlığı eklenerek bu röleye gönderilir. Kontrol bağlantısı kapanınca UDP ilişkisi de sona erer.

Bu komut RFC’de tanımlıdır ama her sağlayıcı ve her pakette açık değildir. WeProxy’de statik residential IPv4 proxy ürününde SOCKS5 + UDP, Türkiye dışı lokasyonlarda sunulur; Türkiye lokasyonu HTTP ve düz SOCKS5’tir. UDP desteklemeyen bir uçta UDP ASSOCIATE isteği 0x07 ile reddedilir. Oyun, VoIP ve gerçek zamanlı uygulamalar için ayrıntılar UDP proxy rehberinde.

Proxy başlıkları değiştirir mi?

Düz HTTP isteklerde HTTP proxy mesajın içindedir ve başlık ekleyebilir. RFC 9110, iletim yapan aracılar için Via başlığını tanımlar; ters proxy’ler ve bazı kurumsal proxy’ler X-Forwarded-For veya Forwarded da ekler. Anonim forward proxy’lerin çoğu bu başlıkları göndermez, yine de kendi çıkışınızı bir echo uç noktasıyla doğrulayın.

HTTPS isteklerde durum farklıdır. CONNECT sonrası trafik şifreli olduğu için proxy hedefe giden başlıklara dokunamaz. Hedef site yalnızca sizin istemcinizin gönderdiği başlıkları görür.

SOCKS5 hiçbir koşulda başlık eklemez veya okumaz. Bu bir “gizlilik” avantajı gibi anlatılır, ama pratikte HTTPS çağında iki protokol aynı noktaya gelir: hedefin gördüğü başlıkları sizin kodunuz belirler. User-Agent, Accept-Language ve çerez tutarlılığı protokolden daha belirleyicidir.

SOCKS5 HTTP proxy’den daha mı hızlı?

Genel olarak hayır. Tünel kurulduktan sonra iki protokol de baytları aynı şekilde taşır; ek başlık veya paket başına maliyet yoktur. Fark yalnızca bağlantı kurulurken oluşan gidiş-dönüş (RTT) sayısındadır.

Proxy’ye TCP bağlantısı her iki tarafta 1 RTT’dir. Sonrasında HTTPS hedef için HTTP proxy tek bir CONNECT alışverişiyle 1 RTT ekler. Kullanıcı adı/şifreli SOCKS5 ise yöntem seçimi, kimlik doğrulama ve CONNECT için 3 RTT ekler. Proxy’ye 50 ms uzaklıktaysanız bu, yeni her bağlantıda yaklaşık 100 ms fazladan bekleme demektir. IP whitelist ile kimlik doğrulama adımı kalkar ve fark 1 RTT’ye iner.

Bu fark da yalnızca yeni bağlantılarda görülür. Keep-alive ve bağlantı havuzu kullanan bir istemcide maliyet ilk istekte ödenir. Gerçek hızı belirleyen etkenler başkadır: çıkış IP’sinin türü ve hedefe uzaklığı, residential cihazın hattı, hedef sitenin yanıt süresi ve sizin eşzamanlılık ayarınız. “SOCKS5 daha anonim” iddiası da aynı şekilde yanlıştır; anonimliği DNS, WebRTC ve başlık davranışı belirler, protokol adı değil.

Hangi araç hangi protokolü destekler?

Araç desteği çoğu zaman seçimi kendisi yapar. Aşağıdaki tablo yaygın istemcilerin varsayılan davranışını özetler:

AraçHTTP proxySOCKS5Not
curl-x http://-x socks5h:// veya --socks5-hostname--socks5 yerel DNS kullanır
Python requestsYerleşikrequests[socks] (PySocks) ileUzak DNS için socks5h://
Python httpxYerleşik (proxy=)httpx[socks] ekstra paketiyleDNS davranışını testle doğrulayın
Node.jsundici ProxyAgentsocks-proxy-agentYerleşik fetch sistem proxy’sini kendiliğinden kullanmaz
ScrapyYerleşik middlewareYerleşik değilEk middleware veya HTTP proxy
Chromium tabanlı tarayıcılarKimlik doğrulamalıKimlik doğrulamasızSOCKS5 kullanıcı/şifre desteklenmez; IP whitelist kullanın
FirefoxKimlik doğrulamalıVarSOCKS v5 için DNS’i proxy üzerinden gönderme seçeneği vardır
ProxifierHTTPS (CONNECT)VarProxy ayarı olmayan masaüstü uygulamaları yönlendirir
Antidetect tarayıcılarProfil başınaProfil başınaWebRTC ve DNS ayarlarını profilde kontrol edin

Chromium’un SOCKS5 kimlik doğrulamasını desteklememesi pratikte en sık karşılaşılan engeldir. Puppeteer veya Selenium ile şifreli SOCKS5 verirseniz bağlantı kurulmaz. Çözüm ya HTTP proxy kullanmak ya da sunucunuzun IP’sini panelde whitelist’e ekleyip SOCKS5’i şifresiz bağlamaktır.

Aynı kimlik bilgisini farklı araçlara farklı biçimlerde girmeniz gerekir: ip:port:user:pass, user:pass@host:port veya şemalı URL. Biçimleri elle dönüştürmek yerine proxy format dönüştürücü kullanın.

cURL ve Python ile HTTP ve SOCKS5 nasıl kullanılır?

Aşağıdaki örnekler aynı gateway’e iki protokolle bağlanır. Bağlantı bilgileri paketinize göre değişebilir; panelde gösterilen host ve portu esas alın.

cURL

# HTTP proxy: HTTPS hedef için CONNECT tüneli
curl -sS -x "http://USER:[email protected]:8989" https://api.ipify.org
echo

# SOCKS5, DNS proxy tarafında (önerilen)
curl -sS -x "socks5h://USER:[email protected]:8989" https://api.ipify.org
echo

# SOCKS5, DNS yerelde (sızıntı riski)
curl -sS --socks5 "USER:[email protected]:8989" https://api.ipify.org
echo

# El sıkışmayı görmek için
curl -v -x "socks5h://USER:[email protected]:8989" https://api.ipify.org

Proxy URL’sinin şeması proxy’nin protokolünü anlatır, hedefin değil. HTTPS bir siteye HTTP proxy ile giderken de şema http:// kalır. Şifrede @, : veya / varsa yüzde kodlaması yapın. SOCKS el sıkışması başarısız olursa curl (97) hatası verir.

Python

import requests

GATEWAY = "gw.weproxy.com.tr:8989"
AUTH = "USER:PASSWORD"

profiles = {
    "http": f"http://{AUTH}@{GATEWAY}",
    "socks5h": f"socks5h://{AUTH}@{GATEWAY}",  # pip install "requests[socks]"
}

session = requests.Session()
session.trust_env = False  # HTTP_PROXY ortam değişkeni sözlüğü ezmesin

for name, proxy in profiles.items():
    try:
        r = session.get(
            "https://api.ipify.org?format=json",
            proxies={"http": proxy, "https": proxy},
            timeout=(10, 30),
        )
        print(name, r.status_code, r.json()["ip"])
    except requests.exceptions.RequestException as e:
        print(name, "hata:", e)

İki profil de aynı çıkış IP’sini döndürüyorsa her iki protokol de çalışıyor demektir. Hangisini kullanacağınız artık aracın ve işin gereksinimine kalır. Kurulum ayrıntıları Python entegrasyonu ve Node.js entegrasyonu sayfalarındadır. İki profilin requests, httpx ve aiohttp’de nasıl tanımlandığını Python ile proxy kullanımı rehberinde yan yana görebilirsiniz. Proxy’nin protokol ve kimlik doğrulama açısından genel olarak yanıt verdiğini proxy checker ile de doğrulayabilirsiniz.

Hangi durumda hangi protokol seçilmeli?

Kısa kural: iş web veya API ise HTTP ile başlayın; HTTP dışı TCP, UDP veya proxy ayarı olmayan bir uygulama varsa SOCKS5 seçin. İkisini de destekleyen araçlarda HTTP proxy daha az RTT ve daha geniş araç uyumu sağlar.

Kullanım senaryosuÖnerilen protokolNeden
Web scraping (requests, Scrapy, httpx)HTTPYerleşik destek, ek paket gerekmez
Headless Chrome, Puppeteer, SeleniumHTTPChromium SOCKS5 kimlik doğrulamasını desteklemez
Antidetect tarayıcı profilleriHTTP veya SOCKS5İkisi de olur; DNS ve WebRTC ayarı belirleyicidir
Proxy ayarı olmayan masaüstü uygulamaSOCKS5 (Proxifier ile)Uygulama katmanından bağımsız yönlendirme
HTTP dışı TCP (FTP, IMAP, özel protokol)SOCKS5CONNECT port kısıtlarına takılmaz
Oyun, VoIP, gerçek zamanlı UDPSOCKS5 + UDP ASSOCIATEHTTP proxy UDP taşımaz
Düz HTTP’de başlık düzeyinde hata ayıklamaHTTPProxy isteği görür, loglar anlamlıdır
DNS’in çıkış ülkesinde çözülmesi şartHTTP veya socks5hsocks5:// yerel çözer

Ürün tarafında protokol desteği pakete göre değişir; satın almadan önce ürün sayfasındaki teknik özelliklere bakın. Rotating residential IPv4 proxy HTTP ve SOCKS5 sunar ve scraping, SEO ve otomasyon gibi web işleri için uygundur. UDP gereken oyun veya gerçek zamanlı işlerde statik residential IPv4 proxy ürününün UDP’li lokasyonlarına bakın. Tüm paketlerde sınırsız thread ve eşzamanlı oturum vardır; başlangıç paketleri ürün sayfalarında listelenir. Senaryo bazlı ayrıntı için web scraping ve gaming proxy sayfalarına bakabilirsiniz.

Protokol seçimi, hedef sitenin kullanım şartlarını değiştirmez. Otomasyon hedefin izin verdiği yüzeyde ve WeProxy kabul edilebilir kullanım kurallarıyla birlikte yürütülmelidir.

HTTP proxy web için, SOCKS5 her şey için tasarlanmıştır. Aracınız ne destekliyorsa onunla başlayın, SOCKS5 kullanıyorsanız şemayı socks5h yazın, UDP gerekiyorsa paketin UDP ASSOCIATE desteğini önceden doğrulayın.

Sık sorulan sorular

HTTP proxy mi SOCKS5 mi daha iyi?

Hangisinin daha iyi olduğu işe bağlıdır. Web scraping, API çağrıları ve tarayıcı otomasyonu için HTTP proxy daha geniş araç desteği ve daha az bağlantı adımı sunar. HTTP dışı TCP protokolleri, UDP gerektiren oyun veya VoIP trafiği ve kendi proxy ayarı olmayan masaüstü uygulamaları için SOCKS5 gerekir. İki protokol de trafiği şifrelemez.

SOCKS5 HTTP proxy’den daha hızlı mı?

Genel olarak hayır. Tünel kurulduktan sonra iki protokol de baytları ek maliyet olmadan taşır. Fark bağlantı kurulurken oluşur: HTTP CONNECT bir gidiş-dönüş ekler, kullanıcı adı/şifreli SOCKS5 üç gidiş-dönüş ekler. Keep-alive kullanan istemcilerde bu maliyet yalnızca ilk istekte ödenir. Gerçek hızı çıkış IP’sinin türü, hedefe uzaklık ve hedef sitenin yanıt süresi belirler.

socks5 ile socks5h arasındaki fark nedir?

İkisi de aynı SOCKS5 protokolüdür; fark DNS’in nerede çözüldüğüdür. socks5:// şemasında istemci host adını kendi çözümleyicisiyle IP’ye çevirir ve sorgu gerçek IP’nizle gider. socks5h:// şemasında host adı proxy’ye gönderilir ve çözümleme çıkış tarafında yapılır. DNS sızıntısını önlemek ve coğrafi tutarlılık için socks5h kullanın.

HTTP proxy HTTPS sitelerde çalışır mı?

Evet. HTTPS hedeflerde istemci proxy’ye CONNECT host:443 isteği gönderir, proxy 200 Connection established döndürür ve TLS el sıkışması bu tünelin içinde doğrudan hedefle yapılır. Proxy URL’sinin şeması yine http:// olarak yazılır, çünkü şema proxy’nin protokolünü belirtir, hedefin değil. Tünel kurulduktan sonra proxy içeriği göremez.

UDP trafiği için hangi proxy protokolü gerekir?

UDP için SOCKS5’in UDP ASSOCIATE komutu gerekir; HTTP proxy yalnızca TCP taşır. Bu komut RFC 1928’de tanımlıdır ama her pakette açık değildir. WeProxy’de statik residential IPv4 proxy ürünü Türkiye dışı lokasyonlarda SOCKS5 + UDP sunar. UDP desteklemeyen bir uç bu isteği 0x07 (komut desteklenmiyor) koduyla reddeder.

Chrome’da şifreli SOCKS5 proxy neden çalışmıyor?

Chromium tabanlı tarayıcılar SOCKS5 proxy’yi kabul eder ama SOCKS5 kullanıcı adı/şifre doğrulamasını desteklemez. Bu yüzden Puppeteer veya Selenium ile şifreli SOCKS5 bağlantısı kurulmaz. Çözüm, aynı paketi HTTP protokolüyle kullanmak ya da sunucunuzun IP adresini panelde whitelist’e ekleyip SOCKS5’i kimlik bilgisi olmadan bağlamaktır.

Başlayın

Proxy Altyapınızı Bugün Test Edin

Ücretsiz araçlarla bağlantınızı kontrol edin veya size uygun paketi seçmek için satış ekibiyle konuşun.