Proxy kullanırken en sık karşılaşılan üç HTTP durum kodu 407, 403 ve 429'dur. Üçü de bir isteğin reddedildiğini söyler, ama sebepleri ve çözümleri tamamen farklıdır: 407 proxy'nin kimlik istediğini, 403 erişimin yasak olduğunu, 429 ise çok sık istek gönderildiğini bildirir.
Bu yazı her kodun ne anlama geldiğini, hatanın proxy'den mi hedef siteden mi geldiğini nasıl anlayacağınızı ve ne yapmanız gerektiğini anlatır. Sorun giderme için size bir kontrol akışı da veriyoruz. Hiçbir çözüm, hedef sitenin kurallarını aşmayı amaçlamaz.
Önce ayırın: Hata proxy'den mi, hedeften mi?
Aynı kod iki farklı yerden gelebilir. 407 hemen her zaman proxy'den gelir. 403 ve 429 ise çoğunlukla hedef sitenin kararıdır, ancak bazı proxy sunucuları da erişim kuralları nedeniyle 403 döndürebilir.
Kaynağı anlamak için ayrıntılı çıktıya bakın. curl -v hem proxy ile yapılan CONNECT aşamasını hem de hedeften gelen yanıtı gösterir.
curl -v --proxy http://KULLANICI:[email protected]:PORT https://example.com/ -o /dev/nullHTTPS hedefte CONNECT yanıtı 200 ise proxy tüneli kurmuştur; sonradan gelen 403 ya da 429 hedeften gelir. CONNECT yanıtı 407 ise sorun kimlik doğrulamadadır.
407 Proxy Authentication Required
407, proxy sunucusunun kimlik doğrulaması beklediğini ve gelen bilgilerin eksik veya hatalı olduğunu bildirir. Yanıtta genellikle Proxy-Authenticate başlığı bulunur. Tanım RFC 9110'dadır: RFC 9110.
- Kullanıcı adı ya da parola hatalı. Paket bilgilerini panelden yeniden kopyalayın; boşluk ve satır sonu karakterlerine dikkat edin.
- Özel karakterler kodlanmamış. Adres satırında yazılan parolada
@,:ve/karakterlerini yüzde kodlamasıyla yazın. - Protokol uyuşmazlığı. HTTP proxy'ye SOCKS5 ayarıyla bağlanmak (ya da tersi) kimlik hatası gibi görünebilir. Paketinizin protokolünü doğrulayın.
- Paket süresi dolmuş olabilir. Hizmetin etkin olduğunu mağaza panelinizden kontrol edin.
Bilgileri hızlıca denemek için Proxy Kontrol aracını, biçim karmaşasında ise Proxy Format Dönüştürücü aracını kullanın. Kurulum adımları Windows ve tarayıcıda proxy ayarı yazısındadır.
403 Forbidden
403, sunucunun isteği anladığını ama yerine getirmeyi reddettiğini söyler. Proxy bağlamında en sık hedef sitenin erişimi engellemesinden kaynaklanır; bazen de proxy'nin kendi erişim kuralından.
- Adres temelli kısıtlama. Site, çıkış adresinin kayıtlı olduğu ağa ya da adresin geçmiş trafiğine göre erişimi kapatmış olabilir. Adresin kaydını IP Bilgisi aracıyla görebilirsiniz.
- Başlık ve istemci uyumsuzluğu. Eksik ya da tutarsız
User-Agentve diğer başlıklar reddedilebilir. Başlıkları HTTP Başlık Kontrol ve User-Agent Kontrol araçlarıyla inceleyin. - Coğrafi kısıtlama. İçerik yalnızca belirli ülkelere açık olabilir; lokasyon seçenekleri için lokasyonlar sayfasına bakın.
- Proxy erişim kuralı. Proxy sağlayıcısı belirli hedeflere ya da portlara çıkışı kısıtlıyor olabilir.
429 Too Many Requests
429, belirli bir sürede çok fazla istek gönderildiğini bildirir. Yanıt, ne kadar beklemeniz gerektiğini Retry-After başlığıyla belirtebilir. Bu başlık varsa saygı göstermek en doğru yaklaşımdır.
- İstek hızınızı düşürün ve istekler arasına bekleme koyun.
Retry-Aftervarsa o süre kadar bekleyin; yoksa üstel geri çekilme (1, 2, 4, 8 saniye gibi) uygulayın.- Eşzamanlı bağlantı sayısını azaltın.
- Gereksiz tekrar istekleri önlemek için yanıtları önbelleğe alın.
- İşiniz çok sayıda adrese yayılmayı gerektiriyorsa rotating proxy mantığını gözden geçirin.
Dönen havuz, hız sınırlarını aşmanın bir yolu olarak değil, yükü makul seviyede dağıtmak için düşünülmelidir. Yoğun veri toplama senaryoları için web scraping sayfasına bakabilirsiniz.
Diğer sık kodlar ve hızlı teşhis tablosu
| Belirti | Olası anlamı | İlk adım |
|---|---|---|
| 407 | Proxy kimlik doğrulaması başarısız | Kullanıcı adı, parola ve protokolü kontrol edin |
| 403 | Erişim reddedildi | Başlıkları ve adres kaydını kontrol edin, hedef kuralını okuyun |
| 429 | İstek hızı çok yüksek | Hızı düşürün, Retry-After süresini bekleyin |
| 502 / 504 | Ağ geçidi ya da zaman aşımı | Biraz bekleyip yeniden deneyin, Port Kontrol ile bağlantıyı test edin |
| Bağlantı reddedildi | Yanlış ana makine, port ya da protokol | Bilgileri ve protokolü doğrulayın |
Python tarafında yeniden deneme mantığı için Python ile proxy kullanımı yazısındaki örneklere bakabilirsiniz.