Ana içeriğe geç

Rehberler / Düzeltin: insanların gerçekten karşılaştığı hatalar için rehberler

ERR_BLOCKED_BY_CLIENT: ne anlama gelir ve nasıl düzeltilir

ERR_BLOCKED_BY_CLIENT, tarayıcının isteği cihazınızdan çıkmadan kendisinin durdurduğu anlamına gelir; çoğunlukla bir reklam engelleyici veya gizlilik eklentisi URL'yi bir engelleme kuralıyla eşleştirmiştir. Web sitesi hiçbir şeyi reddetmedi ve sunucusu isteği hiç almadı.

ERR_BLOCKED_BY_CLIENT ne anlama gelir

Chromium bu hatayı -20 koduyla ve "The client chose to block the request." (istemci isteği engellemeyi seçti) açıklamasıyla tanımlar. İstemci, tarayıcının kendisi ve içinde çalışan her şeydir. Chrome, Edge, Brave, Opera ve diğer Chromium tabanlı tarayıcılar tek bir ağ hataları listesini paylaşır; bu yüzden hepsi bu adı kullanır.

Eklentiler istekleri kurallarla engeller. Chrome'un declarativeNetRequest API'si, bir eklentinin istekleri URL kalıbına, alan adına ve kaynak türüne göre eşleştiren kuralları listelemesine ve eylemi "block" olarak ayarlamasına izin verir. Reklam engelleyiciler genellikle EasyList ve EasyPrivacy gibi herkese açık filtre listelerinden oluşturulmuş binlerce kural içerir. Bir betik, resim, çerçeve ya da API çağrısı bir kuralla eşleştiğinde Chrome onu iptal eder ve ERR_BLOCKED_BY_CLIENT bildirir.

Bir kural yalnızca adresi ve istek türünü görür. Dosyanın ne yaptığını bilmez; bu yüzden talihsiz adlar taşıyan zararsız dosyalar da engellenir. Bunun iki sonucu vardır:

  • İstek sunucunuza hiç ulaşmaz. Erişim günlüğünüzde, CDN günlüğünüzde ve uygulama günlüğünüzde bunun için bir satır yoktur.
  • Aynı URL için başka bir bilgisayardan, başka bir tarayıcı profilinden ya da curl gibi bir komut satırı aracından yapılan istek normalde başarılı olur.

Hata nasıl görünür

Gördüğünüz şey, neyin engellendiğine bağlıdır.

  • Bir betik, resim, stil sayfası, yazı tipi veya çerçeve. Sayfa yüklenir ama bir parça eksiktir ya da bir düğme hiçbir şey yapmaz. Ziyaretçi hiçbir hata mesajı almaz. Ayrıntılar yalnızca tarayıcının geliştirici araçlarında bulunur.
  • Bir fetch veya XMLHttpRequest çağrısı. Çağrı başarısız olur. JavaScript'te fetch(), TypeError: Failed to fetch ile reddedilir. Tarayıcılar nedeni sayfa betiklerinden sakladığı için sayfa, engellenmiş bir isteği kopmuş bir bağlantıdan ayırt edemez.
  • Sayfanın kendisi. Açtığınız adres engellenmişse Chrome, adresin engellendiğini söyleyen bir hata sayfası gösterir. ERR_BLOCKED_BY_CLIENT kodunu ve bir Yeniden Yükle düğmesini gösterir.

Chrome DevTools'un (F12) Console panelinde engellenen istekler şöyle görünür:

Failed to load resource: net::ERR_BLOCKED_BY_CLIENT
POST https://stats.example.net/collect net::ERR_BLOCKED_BY_CLIENT
Uncaught (in promise) TypeError: Failed to fetch

Network panelinde satır kırmızıdır ve Status sütununda "(failed)" ve ardından hata mesajı yazar. Initiator sütunu, URL'yi hangi betiğin ya da sayfanın istediğini gösterir; bu da neyin ona bağlı olduğunu söyler.

ERR_BLOCKED_BY_CLIENT ile benzer hatalar

Chromium'da birkaç "engellendi" hatası vardır. Engellemeyi kimin yaptığına göre ayrılırlar ve bu, ilk nereye bakacağınızı belirler. Parantezli sayılar Chromium'un iç hata kodlarıdır.

HataAğ veya protokol düzeyinde ne olduİlk bakılacak yer
ERR_BLOCKED_BY_CLIENT (-20)Tarayıcı, genellikle bir eklenti aracılığıyla, isteği göndermeden iptal etti.Eklentiler, tarayıcının yerleşik engelleyicisi, ardından DevTools Network paneli.
ERR_BLOCKED_BY_ADMINISTRATOR (-22)Cihaz ya da alan yöneticisinin belirlediği bir URL engelleme listesi isteği durdurdu.chrome://policy ve BT yöneticiniz.
ERR_BLOCKED_BY_CSP (-30)Sayfanın kendi Content Security Policy'si o URL'nin yüklenmesine izin vermiyor.Console'daki "Refused to load..." mesajı ve sayfanın Content-Security-Policy başlığı.
ERR_BLOCKED_BY_RESPONSE (-27)Yanıt geldi ama başlıkları (X-Frame-Options, CSP frame-ancestors, Cross-Origin-Resource-Policy) onun bu bağlamda kullanılmasını yasaklıyor.Engellenen kaynağın yanıt başlıkları.
ERR_BLOCKED_BY_ORB (-32)Chrome'un çapraz kaynak okuma engellemesi (ORB, CORB'un halefi), isteğe uymayan çapraz kaynaklı bir yanıtı çöpe attı.Yanıtın Content-Type değeri ve sayfanın onu nasıl istediği.
ERR_NAME_NOT_RESOLVED (-105)Bir DNS sorgusu adres döndürmedi. Ağ düzeyindeki bir DNS filtresi, tarayıcı hiçbir engelleme yapmadan bir alan adını bu şekilde engelleyebilir.Cihazın kullandığı DNS sunucusu: yönlendirici, filtreleyen çözümleyici veya VPN.

ERR_BLOCKED_BY_CLIENT'a ne sebep olur

  • Bir reklam engelleyici eklentisi. Kuralları bir reklamın, izleyicinin ya da benzerinin URL'siyle eşleşir. Olağan neden budur.
  • Bir gizlilik veya izleme karşıtı eklenti. Bunlar analitik betiklerini, izleme piksellerini, sosyal medya düğmelerini ve bazı üçüncü taraf widget'larını engeller.
  • Yerleşik bir engelleyici. Bazı tarayıcılar, örneğin Brave, hiçbir eklenti olmadan reklamları ve izleyicileri engeller (Brave bu özelliğe Shields der).
  • Bir güvenlik paketinin tarayıcı eklentisi. Antivirüs ve "güvenli gezinti" eklentileri, riskli saydıkları adresleri engelleyebilir.
  • Bir ebeveyn denetimi veya içerik filtresi eklentisi. Kategoriye göre engeller ve aynı hatayı döndürebilir.
  • İş yerinin yüklediği bir eklenti. Bir şirket, çalışanlarının tarayıcılarına eklenti gönderebilir ve siz hiçbir şey yüklemeseniz bile kuralları uygulanır.
  • Betik engelleme veya özel kural aracı. Aylar önce yazdığınız bir kural hâlâ etkin olabilir.
  • Unutulmuş bir DevTools kuralı. DevTools'taki "Network request blocking" sekmesi test için eşleşen URL'leri bilerek engeller ve desenleri siz kaldırana kadar kalır.

Ziyaretçiyseniz nasıl düzeltilir

  1. Sayfayı gizli pencerede açın. Chrome veya Edge'de Ctrl+Shift+N (Mac'te Cmd+Shift+N) tuşlarına basın. Bu pencerelerde, izin vermediyseniz eklentiler kapalıdır. Sayfa orada çalışıyorsa neden bir eklentidir.
  2. Engelleyicinizi bu site için duraklatın. Araç çubuğundaki simgesine tıklayın ve bu sitede duraklatma ya da devre dışı bırakma seçeneğini seçin. Sonra Ctrl+Shift+R (Mac'te Cmd+Shift+R) ile yeniden yükleyin.
  3. Engelleyen eklentiyi bulun. chrome://extensions sayfasını açın (Edge'de edge://extensions). Tüm eklentileri kapatın, sayfayı yeniden yükleyin, sonra tek tek açın ve her birinden sonra yeniden yükleyin. Hatayı geri getiren eklenti nedendir. Reklam engelleyicilerle, gizlilik araçlarıyla ve güvenlik eklentileriyle başlayın.
  4. Engelleyicinin kendi günlüğüne bakın. Birçok engelleyici, engellenen URL'leri ve eşleşen kuralı gösterir. Bu, engelleyiciyi kapatmak yerine tek bir kurala izin vermenizi sağlar.
  5. Yalnızca güveniyorsanız siteye izin verin. Çoğu engelleyicide siteler veya tek tek istekler için bir izin listesi vardır.
  6. Brave'de Shields'i kontrol edin. Adres çubuğundaki aslan simgesine tıklayın ve bu site için Shields'i kapatın.
  7. Güvenlik yazılımınızı kontrol edin. Antivirüsünüz bir tarayıcı eklentisi yüklediyse, o eklentiyi bir test için devre dışı bırakın.
  8. İş veya okul cihazında, bir yönetici siteleri ilkeyle engelliyor olabilir. Bu genellikle ERR_BLOCKED_BY_ADMINISTRATOR gösterir ve chrome://policy kuralları listeler. BT ekibinize sorun.

Siteyi siz işletiyorsanız nasıl düzeltilir

Bir ziyaretçinin eklentisinin isteğinize izin vermesini sağlayamazsınız. Ama bir engellemenin zarar vermemesini ve kendi dosyalarınızın yanlışlıkla engellenmemesini sağlayabilirsiniz.

Sunucunuzun sağlam olduğunu kanıtlayın

Engellenen URL'yi tarayıcının dışında kendiniz isteyin ve erişim günlüğünüzde arayın:

curl -I https://www.example.com/js/ads.js
HTTP/2 200
content-type: text/javascript

Burada 200 dönmesi ve ziyaretçinin isteği için günlükte satır bulunmaması, engellemenin ziyaretçinin tarayıcısında gerçekleştiğini gösterir.

Reklama benzeyen URL'leri yeniden adlandırın

Herkese açık filtre listeleri URL'nin parçalarıyla eşleşir. /ads/, /banner/, /sponsor/ veya /tracking/ gibi yol sözcükleri, ads.js veya analytics.js gibi dosya adları ve bilinen reklam ile analitik ana bilgisayar adları sıkça eşleşir. Kendi, gerçekten gerekli dosyalarınız böyle adlar taşıyorsa engellenebilir. Örnekler:

  • Kendi kampanyalarınızı barındıran /ads/ adlı bir resim klasörü: /promo/ ya da /images/offers/ kullanın.
  • Müşteriye kargosunun nerede olduğunu gösteren /api/track-order uç noktası: /api/order-status kullanın.
  • /analytics/export adresindeki bir rapor dışa aktarımı: /reports/export kullanın.

Nötr adlar kullanmak bedavadır ve yalnızca bazı müşterilerin yeniden üretebildiği hata bildirimlerini önler.

İsteğe bağlı şeyleri gerçekten isteğe bağlı yapın

Analitik, sohbet widget'ları, reklam alanları ve gömülü içerikler olağan hedeflerdir. Sayfayı, yükleme başarısız olduğunda önemli hiçbir şey değişmeyecek şekilde yazın. Üçüncü taraf bir hizmete yapılan her çağrıdaki hatayı yakalayın:

async function sendEvent(payload) {
  try {
    await fetch('https://stats.example.net/collect', {
      method: 'POST',
      body: JSON.stringify(payload),
      keepalive: true,
    });
  } catch (err) {
    // Engellendi, çevrimdışı ya da CORS hatası: sayfa hangisi olduğunu ayırt edemez.
    // Döngüyle yeniden denemeyin ve ziyaretçiye hata göstermeyin.
  }
}

Başka bir alan adından yüklenen bir betik için, yükleme başarısız olduğunda bir bayrak ayarlayın ve sade bir alternatif gösterin:

<script src="https://cdn.example.net/chat-widget.js" async
        onerror="window.chatUnavailable = true"></script>

Sayfa kodunuz o zaman window.chatUnavailable değerini kontrol edip boş bir alan yerine bir e-posta adresi ya da iletişim formu gösterebilir. Ödeme, kayıt veya oturum açma akışını asla engelleyicilerin sık kaldırdığı bir betiğe bağlamayın. Bir ödeme formunu başka bir alan adından yüklemek zorundaysanız, yanında "Form görünmüyorsa gizli pencere deneyin" gibi kısa bir ipucu gösterin.

Engelleyici açıkken test edin

Temiz bir tarayıcı profili oluşturun, popüler bir reklam engelleyici ile bir gizlilik eklentisi yükleyin ve kayıt, ödeme ve iletişim akışlarınızı baştan sona deneyin. Network panelini açın ve kırmızı satırlara bakın. Her kırmızı satır, bazı ziyaretçilerinizin hiçbir zaman tamamlamadığı bir istektir. Varsayılan ayarlarıyla Brave hızlı bir ikinci testtir.

Sunucunuzun erişim günlüğü sunucuya ulaşan her isteği kaydeder; yani engelleyiciler onu değiştirmez. Tarayıcıda çalışan analitik betikleri ise etkilenir; bu yüzden onların rakamları sunucu günlüğünün gösterdiğinden düşük olabilir.

Dışarıdan nasıl görünür

Bir izleme kontrolü tarayıcı eklentisi çalıştırmaz. Sayfanızı ya da engellenen dosyayı birçok yerden çeken bir kontrol, ziyaretçilerinizin tarayıcılarını değil sunucunuzu ölçer; bu yüzden bu hatayı asla üretmez. İstemci tarafında bir engellemeye işaret eden örüntü şöyle görünür:

  • Sayfa ve engellenen dosya her konumdan doğru içerik türüyle 200 döndürüyor.
  • Etkilenen ziyaretçilerin başarısız isteği için sunucu günlüğünde satır yok.
  • Sorunu yalnızca bazı ziyaretçiler bildiriyor ve gizli pencerede ya da başka bir tarayıcıda ortadan kalkıyor.

Bir kontrol bazı ya da tüm konumlardan başarısız oluyorsa neden sunucu tarafındadır, ziyaretçinin tarayıcısında değil. Bu durumda bir web sitesinin herkes için mi yoksa yalnızca sizin için mi kapalı olduğunu kontrol etme rehberiyle başlayın.

HTTP kontrolü, bir URL'yi birkaç konumdan ister; böylece kullanıcıların engellendiğini söylediği dosyanın kendisinde çalıştırabilirsiniz. HostTracker, 158 şehirdeki 300'den fazla kontrol noktasından kontrol çalıştırır ve o dosya sunucu tarafında başarısız olmaya başlarsa e-posta, SMS, sesli arama, Slack, Telegram ve daha fazlasıyla uyarı gönderebilir.

Sık sorulan sorular

ERR_BLOCKED_BY_CLIENT bir virüs veya saldırı mı?

Hayır. Kendi tarayıcınızdan gelen normal bir mesajdır. Genellikle bilerek yüklediğiniz bir aracın, örneğin bir reklam engelleyicinin işini yaptığı anlamına gelir. Eklentiyi yüklediğinizi hatırlamıyorsanız, chrome://extensions sayfasındaki listeyi gözden geçirin.

Web sitesinin çöktüğü anlamına mı geliyor?

Hayır. İstek tarayıcınızdan hiç çıkmadı; bu yüzden sunucunun durumu onun için önemli değildi. Sayfanın tamamı açılmıyorsa hata başka bir şeydir ve yukarıdaki tablo bunu nasıl ayırt edeceğinizi gösterir. Siteyi başka yerlerden bir web sitesi erişim denetleyicisi ile kontrol edebilirsiniz.

Konsolda görüyorum ama sayfa çalışıyor, neden?

Çünkü engellenen dosya isteğe bağlıydı; örneğin bir analitik betiği ya da bir reklam. Sayfa onsuz da çalışır ve Console her engellenen isteği yine de kaydeder. Engelleyicisi olan bir bilgisayarda, reklam dolu bir sayfada birkaç kırmızı satır normaldir.

Neden yalnızca benim bilgisayarımda oluyor?

Eklentiler, kuralları ve izin listeleri tek bir tarayıcı profiline aittir. Başka bir bilgisayarda veya profilde farklı eklentiler olabilir. Sorunun site sahibi için yeniden üretilmesinin zor olmasının nedeni de budur.

Sorunu web sitesi tarafında düzeltebilir miyim?

Kısmen. Reklam ya da izleyiciye benzeyen URL'leri yeniden adlandırabilir, üçüncü taraf betikleri isteğe bağlı yapabilir ve temel özellikler için bir yedek ekleyebilirsiniz. Bir eklentiyi isteğe izin vermeye zorlayamazsınız ve izleyicileri ya da reklamları engelleyicilerden saklamaya çalışmamalısınız.

Firefox ve Safari'de de oluyor mu?

ERR_BLOCKED_BY_CLIENT adı Chromium tarayıcılarına aittir: Chrome, Edge, Brave, Opera ve benzerleri. Firefox ve Safari'nin kendi içerik engelleyicileri vardır ve mesajlarını farklı ifade eder. Neden aynıdır: tarayıcı ya da bir eklenti isteği iptal etti.

Fetch neden yalnızca "Failed to fetch" diyor?

Gizlilik nedenleriyle tarayıcılar sayfa betiklerine ağ hataları hakkında ayrıntı vermez. Bir betik, engellenmiş bir istek, kopmuş bir bağlantı ve bir CORS sorunu için aynı hatayı görür. DevTools'taki Console, gerçek nedeni tarayıcıyı kullanan kişiye gösterir ama sayfa onu okuyamaz.

Kaynaklar ve ek okumalar

Şimdi kontrol edin

Ücretsiz kontrolü kendi sitenizde çalıştırın - hesap gerekmez.

HTTP check

Bunu sürekli izleyin

Bir sorun çıktığı anda haberdar olun: HostTracker 300’den fazla konumdan kontrol eder ve size e-posta, SMS, Slack, Telegram ve daha fazlasıyla bildirim gönderir.

HostTracker özellikleri

Bu bölümde daha fazlası: Düzeltin: insanların gerçekten karşılaştığı hatalar için rehberler