Proxy türü

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

HTTP proxy, istemci ile hedef sunucu arasına giren ve HTTP protokolünü konuşan bir aracı sunucudur. Düz HTTP isteklerini kendisi iletir, HTTPS için ise bir CONNECT tüneli açar. Bu sayfada iki çalışma biçimini, kimlik doğrulamayı ve en sık görülen hataları adım adım bulacaksınız.

HTTP proxy ne yapar?

Bir HTTP proxy'ye bağlanan istemci, hedef sitenin adresini proxy'ye söyler; proxy hedefe kendi adına bağlanır ve yanıtı istemciye geri taşır. Hedef sunucu, isteği doğrudan sizden değil proxy'nin IP adresinden gelmiş olarak görür. Bu yüzden HTTP proxy; farklı bir IP üzerinden test, ağ erişimi kontrolü ve toplu istek senaryolarında kullanılır.

Önemli ayrım şudur: proxy ile istemci arasındaki bağlantı HTTP ise (yani http://proxy.example.com:8080 gibi bir proxy kullanıyorsanız) proxy'nin kendisi şifreli değildir. Şifreli bir proxy bağlantısı için HTTPS proxy sayfasına bakın.

İki çalışma biçimi: düz HTTP ve CONNECT

HTTP proxy üzerinden iki farklı istek yolu
Düz HTTP hedefiHTTPS hedefi
İstemcinin gönderdiğiAbsolute-form istek: GET http://example.com/yol HTTP/1.1CONNECT example.com:443 HTTP/1.1
Proxy ne yapar?Hedefe kendisi bağlanır, isteği okur ve iletir200 yanıtından sonra baytları körü körüne aktarır
Trafiği görebilir mi?Evet; istek ve yanıt proxy için okunabilirHayır; TLS uçtan uca hedefle kurulur, proxy yalnızca hedef adı ve portu bilir
Tipik kısıtBazı proxy’ler yalnızca bunu desteklerÇoğu proxy CONNECT’i yalnızca 443 portuyla sınırlar

Bir proxy düz HTTP isteklerini iletebildiği halde CONNECT'i reddedebilir; tersi de olur. Bu yüzden proxy kontrolü yaparken iki yolu ayrı ayrı denemek gerekir. Proxy kontrol aracımız bu iki yolu ayrı ayrı sınar.

Konsept · eğitim amaçlı

Hedef düz HTTP: istemci isteği proxy’ye tam URL ile (absolute-form) gönderir, proxy hedefe bağlanıp iletir.

HTTP proxy (düz HTTP hedef) mesaj sırasıHTTP proxy (düz HTTP hedef) için istemci, proxy ve hedef arasındaki 6 adımlı mesaj sırası. Şu an 1. adım: İstek proxy’ye tam URL ile gider. Tüm adımlar aşağıdaki gizli listede yazılıdır.
  1. 1. İstemci → Proxy: İstek proxy’ye tam URL ile gider
  2. 2. Proxy → İstemci: Proxy kimlik doğrulaması isteyebilir (isteğe bağlı)
  3. 3. İstemci → Proxy: İstek kimlik bilgisiyle yinelenir (isteğe bağlı)
  4. 4. Proxy → Hedef: Proxy hedefe bağlanır ve isteği iletir
  5. 5. Hedef → Proxy: Hedef yanıt verir
  6. 6. Proxy → İstemci: Proxy yanıtı istemciye iletir
adım 1/6 · İstemci → Proxy

Düz bağlantı

İstek proxy’ye tam URL ile gider

İstek satırı
GET http://example.com/yol HTTP/1.1
Host
example.com
Biçim
absolute-form (tam URL)

Proxy hedefi bu URL’den okur; istemci hedefe doğrudan bağlanmaz.

Proxy düz HTTP trafiğini okuyabilir ve değiştirebilir.

HTTP proxy bağlantısında istemci ile proxy arasındaki el sıkışma adımları.Konsept animasyonu

İstek nasıl görünür?

Düz HTTP hedefinde istemci, istek satırında tam adresi gönderir. Normal (proxy'siz) bir istekte yalnızca yol yazılırdı; proxy'ye giderken adres de yazılır:

HTTP
GET http://example.com/ HTTP/1.1
Host: example.com
Proxy-Authorization: Basic S1VMTEFOSUNJOlBBUk9MQQ==
Absolute-form istek

HTTPS hedefinde ise istemci önce tünel ister. Proxy 2xx kodlu bir yanıt verirse bağlantı ham bayt tüneline dönüşür ve TLS el sıkışması hedefle yapılır:

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

HTTP/1.1 200 Connection established
CONNECT ile tünel isteği

Kimlik doğrulama: 407 yanıtı

Kimlik bilgisi gerektiren bir proxy, bilgi gelmediğinde 407 Proxy Authentication Required döner ve Proxy-Authenticate başlığıyla hangi yöntemi beklediğini bildirir. En yaygın yöntem Basic'tir: Proxy-Authorization: Basic başlığına kullanıcı:parola çiftinin base64 kodlanmış hali yazılır. Base64 bir şifreleme değildir; bu nedenle düz HTTP proxy bağlantısında kimlik bilgisi ağ üzerinde okunabilir şekilde gider.

cURL ile deneme

Bash
# Düz HTTP hedef (absolute-form)
curl -x http://KULLANICI:[email protected]:8080 http://example.com/

# HTTPS hedef (CONNECT)
curl -x http://KULLANICI:[email protected]:8080 https://example.com/

# Ayrıntı için -v ekleyin; 407, 403 ve CONNECT yanıtı görünür
curl -v -x http://proxy.example.com:8080 https://example.com/
Önce IP adresinizi proxy üzerinden sorgulayın

-v çıktısında HTTP/1.1 200 Connection established satırını görüyorsanız tünel açılmıştır. 407 görüyorsanız kimlik bilgisi eksik ya da yanlıştır. 403 çoğunlukla proxy'nin o hedef ya da porta izin vermediği anlamına gelir.

En sık hatalar

BelirtiOlası nedenNe yapmalı?
ECONNREFUSEDPortta dinleyen yok ya da güvenlik duvarı reddediyorIP ve portu satıcı bilgisiyle karşılaştırın
Zaman aşımıPaketler düşüyor; sunucu kapalı ya da filtreliBaşka ağdan deneyin; birkaç dakika sonra yineleyin
ECONNRESETBağlantı el sıkışmada kapandı; çoğu zaman yanlış protokolProxy aslında SOCKS5 ya da HTTPS olabilir; SOCKS5 ile deneyin
407Kimlik bilgisi yok ya da yanlışKullanıcı adı ve parolayı kontrol edin
CONNECT 403Proxy bu porta tünele izin vermiyorHedef portun 443 olduğundan emin olun

HTTP proxy ne zaman uygun?

  • Tarayıcı, curl, Python requests gibi neredeyse her istemcinin yerleşik olarak desteklediği en yaygın proxy türüdür.
  • Web trafiğine odaklanan işlerde (sayfa çekme, API çağrısı, erişim kontrolü) yeterlidir.
  • TCP tabanlı ama HTTP olmayan uygulamalar (oyun, torrent, FTP) için uygun değildir; orada SOCKS5 gerekir.

HTTP proxy'nin ne kadar anonim sayılacağı ayrı bir konudur: proxy Via ya da X-Forwarded-For başlıkları ekleyip eklemediğine bağlıdır. Ayrıntılar anonimlik seviyeleri sayfasında.

Satıcı tarafında, saglamproxy.com üzerindeki Türkiye ISP ve mobil paketlerinde sipariş sırasında HTTP ya da SOCKS5 seçilir (HTTP & SOCKS5 Proxy). Seçimden önce bağlantınızı kendi aracınızla doğrulamak isterseniz proxy kontrol sayfasını kullanabilirsiniz.

HTTP proxy’nizi gerçek bir sunucudan sınayın.

Proxy Kontrol Et

Sık sorulan sorular

İlgili sayfalar