SOCKS5 ile HTTP Proxy Farkı Nedir?
İki protokol de trafiği aktarır ama farklı katmanlarda çalışır. Tarayıcı, oyun ve betikler için doğru seçimi anlatıyoruz.
İçindekiler
HTTP proxy web isteklerini anlar ve iletir; SOCKS5 ise trafiğin ne olduğuna bakmadan bağlantıyı aktarır. Tarayıcı ve betiklerde HTTP çoğu zaman yeterlidir; e-posta, SSH ya da oyun gibi web dışı bağlantılarda genellikle SOCKS5 gerekir. Yazıda iki protokolü katman farkı, HTTPS tüneli, DNS çözümü, kimlik doğrulama ve uygulama uyumluluğu açısından yan yana koyuyoruz.
Katman farkı: HTTP uygulama düzeyinde, SOCKS5 oturum düzeyinde
HTTP proxy, HTTP protokolünü konuşur. İsteğin yöntemini, adresini ve başlıklarını görür; bu yüzden web odaklıdır ve tarayıcılar, HTTP kütüphaneleri ve scraping araçları için doğal bir seçimdir. Düz HTTP isteklerinde içeriği de görebilir; HTTPS isteklerinde ise yalnızca hedef adresi ve portu bilir.
SOCKS5 (RFC 1928) uygulama protokolünü anlamaz: bağlantı isteğini alır, hedefe bir bağlantı açar ve baytları olduğu gibi iletir. Trafiğin HTTP, SSH, e-posta ya da bir oyunun kendi protokolü olması fark etmez. Standart, TCP bağlantısının yanında UDP için de bir yöntem tanımlar; ancak bir paketin UDP taşıyıp taşımadığı bu sitede doğrulanmış bir bilgi değildir, UDP gerekiyorsa siparişten önce destekten teyit edin.
Bu fark pratikte şunu getirir: HTTP proxy yalnızca HTTP konuşan istemcilere hizmet verebilir, ama istek başlıkları üzerinde işlem yapabilir. SOCKS5 ise kendisinin tanımadığı protokolleri bile taşır; karşılığında başlıkları okuyamadığı için HTTP düzeyinde müdahale yapamaz.
HTTPS trafiği proxy’den nasıl geçer?
İki protokol aynı hedefe farklı yollarla varır. HTTP proxy’de tarayıcı, HTTPS bir site için CONNECT ile tünel ister; proxy hedefe TCP bağlantısı açar, 200 yanıtıyla tünelin hazır olduğunu bildirir ve sonrasında şifreli baytları olduğu gibi aktarır. SOCKS5’te aynı iş bir el sıkışmayla yapılır: istemci desteklediği kimlik doğrulama yöntemlerini bildirir, proxy birini seçer, istemci hedef adresi ve portu iletir ve proxy bağlantıyı açar.
İkisinde de proxy şifreli HTTPS içeriğini göremez. Fark, HTTP proxy’nin protokolü bilmesi, SOCKS5’in bilmemesidir.
DNS nerede çözülür? socks5 ile socks5h
Hedef bir alan adıysa (example.com gibi) birinin bunu IP adresine çevirmesi gerekir. HTTP proxy’de alan adı proxy’ye iletilir ve çözümü proxy yapar. SOCKS5’te iki seçenek vardır; fark adres şemasında görünür:
socks5://alan adını istemci tarafında çözer. DNS sorguları kendi ağınızdan çıkar; hangi alan adlarını sorguladığınız, bağlı olduğunuz ağdaki DNS sunucusu tarafından görülebilir.socks5h://(cURL’de--socks5-hostname) alan adını proxy’ye bırakır. DNS sorgusu da proxy’nin ağından yapılır.
Çıkış konumunun önemli olduğu işlerde, örneğin bir sitenin başka bir ülkedeki görünümünü kontrol ederken, genellikle socks5h tercih edilir.
Kimlik doğrulama nasıl yapılır?
HTTP proxy kimliği Proxy-Authorization başlığıyla doğrular. Kimlik bilgisi yoksa ya da yanlışsa 407 Proxy Authentication Required yanıtı döner. Basic yöntemi kullanıcı adı ve parolayı Base64 ile kodlar; bu kodlama şifreleme değildir, bu yüzden bilgilerinizi yalnızca güvendiğiniz bir proxy’ye gönderin. SOCKS5’te doğrulama bağlantı kurulurken, el sıkışmanın içinde (RFC 1929) yapılır; bilgiler yanlışsa proxy bağlantıyı kapatır ve istemci genellikle kimlik doğrulama ya da bağlantı hatası verir.
İki protokolde de kimlik bilgileri bağlantı adresinde KULLANICI:PAROLA@host:port biçiminde yazılabilir. Parolada @, : ya da / varsa bunları yüzde kodlamasıyla yazın (örneğin @ yerine %40); aksi halde adres yanlış ayrıştırılır.
Sık görülen hatalar ve anlamları
Bağlantı kurulamadığında hata mesajı çoğu zaman nedeni gösterir. Sık karşılaşılan belirtiler:
Tüm sütunları görmek için tabloyu yana kaydırın.
Uygulama uyumluluğu
Tüm sütunları görmek için tabloyu yana kaydırın.
Proxy ayarı sunmayan uygulamalarda sistem ayarı çoğu zaman yeterli olmaz. Windows’ta uygulama bazlı yöntemler için Windows’ta SOCKS5 proxy kurulumu yazısına, kod örnekleri için cURL ve Python ile proxy kullanımı yazısına bakabilirsiniz.
Hangisini seçmelisiniz?
- Uygulamanızın proxy ayarına bakın. Yalnızca “HTTP/HTTPS proxy” yazıyorsa HTTP, “SOCKS” yazıyorsa SOCKS5 kullanın.
- Web sayfası ve API isteği atıyorsanız (tarayıcı, cURL, Python, scraping araçları) HTTP çoğu zaman yeterli ve kolay bir seçenektir.
- Web dışı bir bağlantıyı (SSH, e-posta, masaüstü uygulaması, oyun istemcisi) yönlendirecekseniz genellikle SOCKS5 gerekir.
- Alan adının proxy tarafında çözülmesini istiyorsanız
socks5hya da HTTP proxy kullanın. - Elinizdeki proxy’nin protokolünden emin değilseniz Proxy Kontrol ile başlayın, protokolü otomatik dener; SOCKS5 Kontrol ve HTTP Proxy Kontrol ise protokolleri ayrı ayrı sınar.
Hız ve güvenlik hakkında
Hızı çoğu durumda protokol değil, ağ yolu, proxy’nin konumu ve hedef belirler. İki protokol de trafiği kendiliğinden şifrelemez: HTTPS sitelerin şifrelemesi proxy’den bağımsız sürer, düz HTTP trafiği ise proxy üzerinden okunabilir.
Listelediğimiz paketlerde protokol seçimi
Listelediğimiz paketlerde HTTP ve SOCKS5 ayrı ürünler değil, sipariş sırasında yapılan bir seçimdir. Türkiye ISP paketlerinde ve Türkiye mobil proxy’nin haftalık ve aylık paketlerinde HTTP ya da SOCKS5’i siparişte işaretlersiniz; kimlik doğrulama kullanıcı adı ve parolayladır. IPv6 Proxy paketleri yalnızca HTTP(S) ile çalışır; SOCKS4 sunulmaz. Datacenter ve residential gibi ürünlerde sağlayıcı sayfası HTTP(S) ve SOCKS5’i birlikte belirtir (sağlayıcı beyanı), ancak bu paketlerin sipariş formunda protokol alanı yoktur. Ayrıntı için HTTP & SOCKS5 Proxy sayfasına bakın.
Sonuç
Kısaca: HTTP proxy web trafiği için pratik ve yaygındır; SOCKS5 ise protokolden bağımsız olduğu için web dışı bağlantılarda genellikle tek seçenektir. Seçimi çoğu zaman uygulamanızın proxy ayarı belirler. Sabit adres isteyen işler için ISP Proxy, toplu adres gereken işler için Datacenter Proxy sayfalarını inceleyebilir, paketleri fiyatlandırma sayfasında yan yana görebilirsiniz.
SSS