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
| Düz HTTP hedefi | HTTPS hedefi | |
|---|---|---|
| İstemcinin gönderdiği | Absolute-form istek: GET http://example.com/yol HTTP/1.1 | CONNECT example.com:443 HTTP/1.1 |
| Proxy ne yapar? | Hedefe kendisi bağlanır, isteği okur ve iletir | 200 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 okunabilir | Hayır; TLS uçtan uca hedefle kurulur, proxy yalnızca hedef adı ve portu bilir |
| Tipik kısıt | Bazı 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.
Hedef düz HTTP: istemci isteği proxy’ye tam URL ile (absolute-form) gönderir, proxy hedefe bağlanıp iletir.
- 1. İstemci → Proxy: İstek proxy’ye tam URL ile gider
- 2. Proxy → İstemci: Proxy kimlik doğrulaması isteyebilir (isteğe bağlı)
- 3. İstemci → Proxy: İstek kimlik bilgisiyle yinelenir (isteğe bağlı)
- 4. Proxy → Hedef: Proxy hedefe bağlanır ve isteği iletir
- 5. Hedef → Proxy: Hedef yanıt verir
- 6. Proxy → İstemci: Proxy yanıtı istemciye iletir
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.
İ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:
GET http://example.com/ HTTP/1.1
Host: example.com
Proxy-Authorization: Basic S1VMTEFOSUNJOlBBUk9MQQ==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:
CONNECT example.com:443 HTTP/1.1
Host: example.com:443
Proxy-Authorization: Basic S1VMTEFOSUNJOlBBUk9MQQ==
HTTP/1.1 200 Connection establishedKimlik 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
# 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/-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
| Belirti | Olası neden | Ne yapmalı? |
|---|---|---|
ECONNREFUSED | Portta dinleyen yok ya da güvenlik duvarı reddediyor | IP ve portu satıcı bilgisiyle karşılaştırın |
| Zaman aşımı | Paketler düşüyor; sunucu kapalı ya da filtreli | Başka ağdan deneyin; birkaç dakika sonra yineleyin |
ECONNRESET | Bağlantı el sıkışmada kapandı; çoğu zaman yanlış protokol | Proxy aslında SOCKS5 ya da HTTPS olabilir; SOCKS5 ile deneyin |
407 | Kimlik bilgisi yok ya da yanlış | Kullanıcı adı ve parolayı kontrol edin |
CONNECT 403 | Proxy bu porta tünele izin vermiyor | Hedef portun 443 olduğundan emin olun |
HTTP proxy ne zaman uygun?
- Tarayıcı,
curl, Pythonrequestsgibi 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