Teknik
HTTP ve SOCKS5 Proxy Farkı
Kısaca
HTTP proxy yalnızca HTTP'yi anlar ve HTTPS trafiğini CONNECT yöntemiyle bir tünel olarak taşır. SOCKS5 ise HTTP'ye bağlı olmayan, TCP'yi ve isteğe bağlı olarak UDP'yi aktarabilen genel amaçlı bir proxy protokolüdür. İkisi de kendi başına şifreleme yapmaz; hangisinin daha anonim ya da daha hızlı olduğuna dair bir sıralama yoktur. Seçim, istemcinize ve ürünün sunduğu protokollere bağlıdır.
Son güncelleme: Okuma süresi: yaklaşık 8 dk
HTTP proxy nasıl çalışır?
Düz HTTP isteğinde istemci, isteği proxy'ye hedef adresi tam olarak belirterek gönderir; proxy isteği iletir ve yanıtı geri getirir. Bu yüzden proxy düz HTTP içeriğini görebilir ve değiştirebilir.
HTTPS için durum farklıdır. İstemci önce proxy'ye CONNECT yöntemiyle hedef sunucu ve portu bildirir. Proxy 2xx ile yanıt verirse bağlantı bir tünele dönüşür ve sonrasında proxy baytları körlemesine aktarır. TLS el sıkışması istemci ile web sitesi arasında kurulur. Proxy hedef adı ve portu görür, ancak şifreli içeriği göremez.
Düz metin
CONNECT example.com:443 HTTP/1.1
Host: example.com:443
Proxy-Authorization: Basic ...
HTTP/1.1 200 Connection establishedGenel bilgi
Bu rehberdeki protokol açıklamaları RFC 9110 ve RFC 1928 gibi standartlara dayanır ve genel bilgidir. Hangi protokolün hangi üründe sunulduğu ise sağlayıcı beyanı ve sipariş formu verisidir; son bölümde ayrı gösterilir.
“HTTP(S) proxy” ne demek?
Genel kullanımda bu ifade çoğunlukla, HTTPS sitelere CONNECT tüneliyle ulaşabilen bir HTTP proxy'yi anlatır. İstemci ile proxy arasındaki hattın kendisinin TLS ile korunduğu “HTTPS proxy” ise ayrı bir kurulumdur ve her istemci bunu desteklemez. Bu sitede bu ayrıntı yayımlanmamıştır; bu rehberdeki örnekler http şemasıyla yazılmıştır. Emin olmak istiyorsanız satın almadan önce WhatsApp'tan teyit edin.
HTTP proxy yazılımları isteğe Via, Forwarded ya da X-Forwarded-For gibi başlıklar ekleyebilir; RFC 7239, Forwarded başlığındaki istemci adresinin gizlilik açısından hassas olduğunu ve herhangi bir düğümün bu başlığı taklit edebileceğini belirtir. Sağlayıcı proxy sunucularının bu konudaki davranışı yayımlanmamıştır. Hedef sitenin proxy üzerinden hangi başlıkları gördüğünü HTTP Proxy Kontrol aracıyla kendiniz sınayabilirsiniz.
SOCKS5 nasıl çalışır?
SOCKS5 (RFC 1928) önce bir yöntem pazarlığıyla başlar. İstemci sürüm numarasını ve desteklediği kimlik doğrulama yöntemlerinin listesini gönderir; sunucu bunlardan birini seçer (örneğin kimlik doğrulamasız ya da kullanıcı adı ve şifre) ya da hiçbirini kabul etmezse bağlantıyı reddeder.
Ardından istemci üç komuttan birini ister: CONNECT (TCP bağlantısı), BIND (gelen bağlantı) ya da UDP ASSOCIATE (UDP aktarımı). Hedef adres IPv4, IPv6 ya da alan adı olabilir. SOCKS5 uygulama katmanını bilmez; HTTP, SMTP ya da başka bir TCP protokolünü aynı şekilde taşır ve aktarılan içeriği yorumlamaz. Buna karşılık her uygulama SOCKS5 desteklemez: seçimden önce uygulamanızın proxy ayarlarında hangi şemaları kabul ettiğine bakın, kabul etmiyorsa sunulan SOCKS5 işinize yaramaz.
HTTP proxy: CONNECT tüneli
HTTPS için istemci, proxy’den hedefe bir tünel ister.
- İstemci: tünel isteği
CONNECT example.com:443 - Proxy: 2xx yanıt, tünel hazır
HTTP/1.1 200 - İstemci ile hedef: TLS el sıkışması ve veri, uçtan uca; proxy yalnızca aktarır
Kimlik bilgileri geçersizse proxy genellikle 407 yanıtı verir.
SOCKS5: el sıkışma
Yöntem seçilir, kimlik doğrulanır, sonra bağlantı istenir.
- İstemci: yöntem teklifi
VER 5, yöntem listesi - Sunucu: yöntem seçimi
VER 5, seçilen yöntem - İstemci: kullanıcı adı ve şifre
VER 1, UNAME, PASSWD - Sunucu: kimlik doğrulama sonucu
VER 1, STATUS 00 (başarılı) - İstemci: bağlantı isteği (CONNECT)
VER 5, CMD CONNECT, example.com:443 - Sunucu: yanıt
VER 5, REP 00 (başarılı)
Kimlik doğrulama başarısız olursa sunucu sıfırdan farklı bir durum değeri gönderip bağlantıyı kapatır; bu bir HTTP durum kodu değildir.
Kimlik doğrulama ve hata görünümü
Yanlış kullanıcı adı ya da şifrede iki protokol farklı davranır. Bu fark, sorun gidermede hangi mesajı arayacağınızı belirler.
| Durum | HTTP proxy | SOCKS5 |
|---|---|---|
| Yanlış kimlik bilgisi | Genellikle 407 Proxy Authentication Required ve bir Proxy-Authenticate başlığı döner; davranış proxy yazılımına göre değişebilir. | RFC 1929'a göre sunucu sıfırdan farklı bir durum değeri döndürür ve bağlantıyı kapatır. HTTP durum kodu yoktur. |
| Kimlik bilgisinin hatta görünümü | Basic kimlik doğrulama base64 ile kodlanır; bu şifreleme değildir. | Kullanıcı adı ve şifre açık metin olarak gönderilir; RFC bu yüzden dinlenebilir hatlarda kullanmamayı önerir. |
| Hedefe ulaşılamaması | Proxy yazılımına göre HTTP 5xx gibi bir yanıt. | Ağa ulaşılamıyor, hedef sunucuya ulaşılamıyor, bağlantı reddedildi gibi ayrı yanıt kodları. |
407'yi görüyorsanız proxy'nin HTTP konuştuğundan emin olabilirsiniz; SOCKS5'te aynı sorun bağlantının sessizce kapanması ya da kütüphanenin kendi hata mesajı olarak görünür. Adım adım kontrol için mobil proxy sorun giderme rehberine bakın.
Bir başka sık hata protokolü karıştırmaktır. Adres ve port tek başına hangi protokolün konuşulduğunu söylemez; bir SOCKS5 sunucusuna HTTP proxy şemasıyla bağlanırsanız ya da tersini yaparsanız sonuç çoğunlukla zaman aşımı, bağlantı sıfırlanması ya da anlamsız bir yanıttır. Bağlantı bilgilerinizdeki protokolle istemcinizin şemasını eşleştirin.
Kimlik doğrulama tek yol da değildir. Kullanıcı adı ve şifre yerine proxy yalnızca kaynak IP adresinize bakıp erişime izin verebilir; buna IP yetkilendirmesi (whitelist) denir. Ürün sayfalarında Mobil Proxy için kullanıcı adı ve şifreye ek olarak IP whitelist yetkilendirmesi sağlayıcı beyanı olarak belirtilir. Hangi yöntemin hangi pakette geçerli olduğunu sipariş öncesinde teyit edin.
Şifreleme: hangisi koruyor?
HTTPS siteler için içerik, protokol ne olursa olsun istemci ile web sitesi arasında uçtan uca şifrelidir. Proxy yalnızca şifreli baytları aktarır. Proxy ile aranızdaki hat ise ayrı bir konudur: kimlik bilgileriniz bu hatta HTTP Basic ile base64 olarak ya da SOCKS5'te açık metin olarak gider.
| Durum | Proxy'nin görebildiği | Göremediği |
|---|---|---|
| Düz HTTP isteği, HTTP proxy ile | Adres, başlıklar ve içerik. | Yok: içerik şifresizdir. |
| HTTPS isteği, HTTP proxy ile (CONNECT) | Hedef alan adı ve port, bağlantının ne zaman kurulduğu ve ne kadar veri aktığı. | Sayfa yolu ve şifreli içerik. |
| Herhangi bir istek, SOCKS5 ile | Hedef adres ya da alan adı ve port. | HTTPS ise şifreli içerik; düz HTTP ise içerik okunabilir. |
Tablo protokollerin genel çalışmasını anlatır; herhangi bir sağlayıcının kayıt tutup tutmadığı hakkında bilgi vermez.
Yaygın yanlış
“SOCKS5 trafiği şifreler” ya da “HTTP proxy HTTPS taşıyamaz” cümleleri doğru değildir. Proxy protokolü yalnızca aktarma biçimini belirler; gizlilik için hedefle HTTPS kullanmak ve kimlik bilgilerinizi güvenli saklamak gerekir.
DNS nerede çözülür?
HTTP proxy ile HTTPS isteğinde istemci CONNECT satırına alan adını yazar; adı proxy çözer. SOCKS5'te ise iki yol vardır: istemci alan adını proxy'ye gönderirse proxy çözer, istemci adı kendi çözüp IP gönderirse yerel DNS kullanılır.
curl'de bu fark şema ile belirlenir: socks5:// yerel çözümleme, socks5h:// ise proxy tarafında çözümleme anlamına gelir. Bu bir RFC kuralı değil, curl'ün ortaya koyduğu ve birçok kütüphanenin izlediği bir kuraldır. Yerel DNS sorgularının internet servis sağlayıcınız tarafından görülmesini istemiyorsanız socks5h kullanın.
Bash
# HTTP proxy (HTTPS siteler için CONNECT tüneli otomatik açılır)
curl -x "http://KULLANICI_ADI:SIFRE@proxy.example.com:PORT" https://example.com/
# SOCKS5, alan adı proxy tarafında çözülür
curl -x "socks5h://KULLANICI_ADI:SIFRE@proxy.example.com:PORT" https://example.com/Python
import requests
# Adres, port ve kimlik bilgileri paketinizin bağlantı bilgilerinde yer alır.
http_proxy = "http://KULLANICI_ADI:SIFRE@proxy.example.com:PORT"
socks_proxy = "socks5h://KULLANICI_ADI:SIFRE@proxy.example.com:PORT"
# HTTP proxy
yanit = requests.get(
"https://example.com/",
proxies={"http": http_proxy, "https": http_proxy},
timeout=20,
)
print(yanit.status_code)
# SOCKS5 için: pip install "requests[socks]"
yanit = requests.get(
"https://example.com/",
proxies={"http": socks_proxy, "https": socks_proxy},
timeout=20,
)
print(yanit.status_code)Özel karakterler
Şifrenizde @, :, / ya da # gibi karakterler varsa adresin içine yazarken yüzde kodlaması gerekir; aksi halde istemci adresi yanlış ayrıştırır ve kimlik doğrulama başarısız görünür. Geliştirici örnekleri için geliştiriciler sayfasına da bakabilirsiniz.
UDP ve tarayıcılar
UDP ASSOCIATE komutu SOCKS5'in bir parçasıdır, ancak bir proxy sunucusunun bunu uygulaması zorunlu değildir ve her istemci kullanmaz. Klasik HTTP proxy UDP taşımaz. Ürün sayfalarında Mobil Proxy ve Datacenter Proxy için SOCKS5 üzerinden UDP desteği sağlayıcı beyanı olarak belirtilir; tarayıcılar ve cURL SOCKS5 üzerinden UDP göndermez.
Tarayıcıda WebRTC kullanan sayfalar ayrıca dikkat ister. RFC 8828, klasik bir proxy ayarlı olsa bile doğrudan internet erişimine izin veriliyorsa WebRTC'nin STUN kontrollerinin proxy'yi atlayıp istemcinin gerçek genel IP adresini gösterebileceğini belirtir. Tarayıcınızın davranışını kendiniz sınayın; bunun için IP Adresim ve Proxy Kontrol araçlarından başlayabilirsiniz.
Hangisini ne zaman seçmeli?
| Durum | Daha doğal seçim | Neden |
|---|---|---|
| Tarayıcı, requests, curl gibi HTTP kullanan istemciler | HTTP proxy | İstemciler HTTP proxy ayarını yerleşik destekler; HTTPS CONNECT ile taşınır. |
| HTTP dışı TCP uygulamaları | SOCKS5 | Uygulama katmanına bağlı değildir. |
| UDP trafiği gereken uygulama | SOCKS5 (ürün destek belirtiyorsa) | UDP ASSOCIATE gerekir; uygulamanızın bunu kullandığını ayrıca doğrulayın. |
| DNS sorgularının proxy tarafında çözülmesi | socks5h ya da HTTP proxy ile alan adı | Hedef adı için yerel DNS sorgusu beklenmez; tarayıcıların başka sorgularını ayrıca sınayın. |
| Üründe yalnızca bir protokol sunuluyorsa | Sunulan protokol | Seçim ürüne göre sınırlıdır; sipariş öncesi kontrol edin. |
Bu tablo bir performans ya da güvenlik sıralaması değildir.
Pratikte çoğu tarayıcı ve betik işi HTTP proxy ile yürütülebilir. SOCKS5'e geçmek için somut bir gerekçeniz olsun: HTTP dışı bir protokol, UDP ya da istemcinizin yalnızca SOCKS desteklemesi gibi.
Ürün tarafındaki kısıtlar da belirleyicidir. Sağlayıcı beyanına göre Rotating Mobil Proxy'nin Türkiye paketlerinde SOCKS5 sunulmaz ve IPv6 Proxy için SOCKS5 belirtilmez; bu durumda HTTP proxy kullanırsınız. Seçim yapabildiğiniz paketlerde protokolü sipariş sırasında belirlersiniz. Sonradan değiştirilip değiştirilemediği yayımlanmamıştır, bu yüzden ihtiyacınızı baştan netleştirin.
Sık yapılan hatalar
- Protokolü karıştırmak: HTTP proxy bilgisini SOCKS5 şemasıyla girmek ya da tersini yapmak.
- DNS'i gözden kaçırmak:
socks5://ile alan adı yerelde çözülür; proxy tarafında çözülmesini istiyorsanızsocks5h://kullanın. - Özel karakterleri kodlamamak: şifredeki
@ya da/adresi bozar ve kimlik doğrulama hatası gibi görünür. - UDP beklemek: tarayıcıdan ya da cURL'den SOCKS5 üzerinden UDP çıkmaz.
- 407'yi arıza sanmak: 407 bir kimlik doğrulama istemidir ve proxy'nin yanıt verdiğini gösterir; önce kullanıcı adı ile şifreyi kontrol edin.
Bu kontrolleri sırayla yapmak çoğu bağlantı sorununun kaynağını bulmanıza yardım eder. Mobil proxy'yi yeni öğreniyorsanız önce mobil proxy nedir rehberine, otomatik IP değişimiyle çalışacaksanız rotating mobil proxy nedir rehberine bakın.
Protokol nerede seçilir?
HTTP ve SOCKS5 ayrı bir paket değildir; proxy'ye bağlanma yöntemidir. Sipariş formunda “Protokol Türü” alanı yalnızca Türkiye ISP paketlerinde ve Türkiye Mobil Proxy'nin haftalık ile aylık paketlerinde bulunur. Diğer ürünlerde seçim alanı yoktur.
| Ürün | Protokol bilgisi |
|---|---|
| Türkiye ISP Proxy; Türkiye Mobil Proxy haftalık ve aylık | Sipariş formunda HTTP ya da SOCKS5 seçilir. |
| Mobil Proxy günlük paketler ve yurt dışı paketler | Formda protokol alanı yoktur. Hizmetin HTTP(S) ya da SOCKS5 ile kullanılabildiği ürün sayfalarında belirtilir; protokolün size nasıl verileceğini sipariş öncesinde WhatsApp'tan teyit edin. |
| Rotating Mobil Proxy | Türkiye paketleri: HTTP ve HTTPS, SOCKS5 yok. Yurt dışı paketleri: HTTP, HTTPS ve SOCKS5 (sağlayıcı beyanı). |
| IPv6 Proxy | HTTP(S) belirtilir; SOCKS5 belirtilmez. |
Operatör, lokasyon ve özellik bilgileri ürün sayfalarında belirtilen sağlayıcı bilgilerine dayanır; ölçülmüş bir sonuç ya da taahhüt değildir. Tüm ürünler için karşılaştırma tablosu HTTP & SOCKS5 sayfasındadır.
Bağlantıyı kurduktan sonra HTTP Proxy Kontrol ya da SOCKS5 Proxy Kontrol aracıyla erişimi sınayabilirsiniz. Ayarları adım adım görmek için mobil proxy nasıl kullanılır rehberini okuyun.
Sık sorulan sorular
Hayır. İkisi de yalnızca isteğin hangi çıkış IP'sinden gideceğini değiştirir ve kendi başlarına şifreleme yapmaz. SOCKS5 aktarılan içeriği yorumlamaz, HTTP proxy ise düz HTTP isteklerini okuyabilir; ancak bu bir anonimlik farkı yaratmaz. Anonimlik; tarayıcı parmak izi, çerezler, hesaplarınız ve proxy'nin başlık davranışı gibi pek çok etkene bağlıdır. Seçimi protokolün gücüne göre değil, kullandığınız istemciye göre yapın.
Evet. İstemci proxy'ye CONNECT yöntemiyle hedef sunucu ve portu bildirir, proxy bir tünel açar ve baytları körlemesine aktarır. TLS el sıkışmasını istemci ile web sitesi doğrudan kendi aralarında yapar; proxy hedef adı ve portu görür ama şifreli içeriği görmez. Yani HTTP proxy HTTPS taşıyabilir, bunun için ayrı bir SOCKS5 gerekmez.
socks5h, curl'ün ortaya koyduğu bir adres şeması kuralıdır ve birçok kütüphane bunu taklit eder; bir RFC tanımı değildir. Şemadaki h, alan adının proxy tarafında çözülmesi anlamına gelir. Düz socks5 şemasında istemci adı kendi çözer ve proxy'ye IP gönderir. Yerel DNS sorgularının görülmesini istemiyorsanız socks5h kullanın ve istemcinizin bu şemayı desteklediğini doğrulayın.
Hayır. 407 (Proxy Authentication Required) bir HTTP durum kodudur ve HTTP proxy'de karşılaşılır. SOCKS5'te HTTP durum kodu yoktur: kimlik doğrulama başarısızsa sunucu sıfırdan farklı bir durum baytı döndürür ve bağlantıyı kapatır. İstemciler bunu “kimlik doğrulama başarısız” ya da “bağlantı kapandı” gibi kendi mesajlarıyla gösterir; metin kütüphaneye göre değişir.
Klasik HTTP proxy UDP taşımaz; UDP için protokolün UDP ASSOCIATE komutunu kullanan bir SOCKS5 istemcisi gerekir. Ürün sayfalarında Mobil Proxy ve Datacenter Proxy için SOCKS5 üzerinden UDP desteği sağlayıcı beyanı olarak belirtilir. Tarayıcılar ve cURL SOCKS5 üzerinden UDP göndermez; bu yüzden UDP ihtiyacınız varsa uygulamanızın bunu gerçekten kullandığını ayrıca doğrulayın.
Sipariş formunda “Protokol Türü” alanı yalnızca Türkiye ISP paketlerinde ve Türkiye Mobil Proxy'nin haftalık ile aylık paketlerinde bulunur; orada HTTP ya da SOCKS5 seçersiniz. Diğer ürünlerde seçim alanı yoktur ve desteklenen protokoller ürün bazında sağlayıcı beyanıdır. Ürün bazlı tablo için HTTP & SOCKS5 Proxy sayfasına bakın.