Sunucu ve istemci tarafında zaman zaman hatalar meydana gelir ve biz bunları genellikle HTTP yanıtları veya durum kodları olarak adlandırırız. “406 hatası” veya “406 Not Acceptable (Kabul Edilemez)” hatası böyle bir HTTP yanıtıdır.
Bu makale “406 Kabul Edilemez” hatasının temellerini, nedenlerini, nasıl düzeltileceğini ve gelecekte bu hatadan kaçınmak için atılacak adımları açıklayacaktır.
🌐 Not Acceptable
An appropriate representation of the requested resource * could not be found on this server.
Şimdi, tarayıcıların bu şifreli mesajlar yerine basitçe Türkçe konuştuğunu varsayalım. Bu durumda tarayıcı şöyle bir şey söylüyor olurdu:
Merhaba, ben bir tarayıcıyım. Bu web sayfasını göstermeye çalıştım, ancak iki sorundan biri oluştu:
- Web sitesinin sunucusu bana yanlış dosya formatı gönderdi, bu yüzden kabul edemiyorum.
- Web sitesinin sunucusu bazı ayarları veya güvenlik gereksinimlerini ihlal ediyor.
Bu nedenle, lütfen ihlali çözün veya sunucunun kabul ettiğim dosya formatlarından birini kullanmasını sağlayın. Merak ediyorsanız, işte nasıl okunacağını bildiğim dosya formatları.
Keşke tarayıcılar da bu kadar dost canlısı olsaydı!
406 hatasında kullanılan tarayıcı veya makine arasında bir iletişimsizlik var. Tarayıcı gelen verileri okuyamıyor ya da bazı gereksinimleri karşılamadığı için verileri doğrulayamıyor.
Şimdi bu iletişimsizliğin nedenini bulmak için bazı soruları yanıtlamamız gerekiyor.
İçindekiler:
- 406 Hatasına Ne Sebep Olur?
- 406 Hatası Nasıl Düzeltilir?
- URL’nin Doğru Olduğundan Emin Olun
- Cihazlarınızı ve Ağlarınızı Sıfırlayın
- Son CMS Değişikliklerinizi Geri Alın
- Eklentileri, Temaları ve Uzantıları Kaldırma & Yeniden Yükleme
- Değişiklikler ve Çakışmalar için Veritabanınızın Durumunu Analiz Edin
- Sunucu Günlüklerinizi Analiz Edin
- Web Uygulamasında Hata Ayıklama (WordPress gibi)
- Gelecekte 406 Hatasını Önleme
- Özet
406 Hatasına Ne Sebep Olur?
Bir web sayfasını her açtığınızda, tarayıcınız (Safari, Firefox, Brave, Chrome veya Internet Explorer gibi) site içeriğini ve veritabanı dosyalarını almak için sayfanın sunucusuna bir istek gönderir. Tarayıcı siz ve sunucu arasında bir elçi görevi görür – sunucuya kullanıcının ne görmek istediğini söyler.
Bu ilk istek sırasında, tarayıcı sunucuya kabul edebileceği dosya biçimleri hakkında her şeyi söyle Accept başlık isteği, sunucunun başlıktan başlayarak tüm web sitesini veya web uygulamasını oluşturmak için dosyaları uygun biçimlerde teslim etmesini ister.
Bazen sunucu uygun formatta olmayan veya bir kuralı ihlal eden bir yanıt gönderir. Bu durumda, tarayıcı penceresinde sunucunun uygun verileri göndermediğini belirten bir 406 hatası görüntülenir.
İşte başlık taleplerinde ortaya çıkabilecek bazı “kötü format” ve “kural ihlali” örnekleri:
- Kabul aralıkları: Bazı sunucularda katı güvenlik önlemleri vardır ve yanıtta yalnızca belirli bir dosya boyutu aralığına izin verilir. Yanıt, izin verilen aralığın dışında çok fazla bayt göndermeye çalışırsa, 406 hatasını görürsünüz.
- Accept-encoding: Burada dosyaların sunucudan tarayıcıya hızlı bir şekilde taşınması için sıkıştırılması amacıyla başlığın bir alanı bulunmaktadır. Bazı sıkıştırma yöntemleri ve biçimleri kabul edilmez ve 406 hata koduna neden olur.
- Accept-charset: Bir karakter setini veya site dosya tablolarının kodu (CSS ve HTML gibi) nasıl alıp anlaşılabilir karakterlere dönüştürdüğünü ifade eder. Dünyada o kadar çok karakter, dil ve sembol vardır ki hepsini kapsamak zordur. Standart tablo ISO-8859 olarak adlandırılır, ancak başka tamamlayıcı tablolar da vardır. Dil ve karakter eklemelerine ayak uydurmak için zaman zaman yeni karakter tabloları yayınlanır.
- Accept-language: Bu genellikle aşağıdakiler için farklı bir isimdir Accept-charset uluslararası dillere odaklanmasına atıfta bulunmaktadır.
- MIME türü ihlali: Bazen tarayıcı sunucudan belirli bir MIME türü talep eder. MIME türleri JPEG görüntüleri, belirli video formatları veya basit metin gibi içerik öğeleridir. Sunucu, JPEG görüntüleri gibi istenen bir MIME türünü sağlayamazsa, 406 hatası görürsünüz.
Bir 406 hatasını ele almanın ve düzeltmenin birincil yolu, kaynak kodda sorun olup olmadığını kontrol etmektir. Accept-, Request- ve Yanıt- Başlıklar.
İncelemenin en kolay yolu Kabul et- ve Yanıt- başlıklarını seçmek için tarayıcınızda bir web sayfası açın, sağ tıklayın ve İncele deyin.
Ağ > Üstbilgiler web sayfasındaki tüm talepleri ortaya çıkarmak için yeterli olacaktır.
Kaynak kodunu kontrol etmesi için web geliştirisiyle de iletişime geçebilirsiniz. Ancak, kaynak kodunu kontrol etmek, bu makalenin ilerleyen bölümlerinde tartışacağımız veritabanınızda hata ayıklama ve temizleme araçlarına sahip olduğunuzda çok daha kolaydır.
Daha önce de belirtildiği gibi, “406 Not Acceptable” hatası bize istemcinin sunucuya geçerli bir istek gönderdiğini, ancak isteğin sunucunun uyması gereken benzersiz bir gereksinim içerdiğini gösterir.
Bu da bize birkaç potansiyel neden bırakıyor:
- Sunucu istenen MIME türünü veya JPEG veya mp4 video gibi uygun formatları sağlamadı.
- Sunucu doğru dil ile geri dönmedi (Accept-language). Örneğin, tarayıcı Fransızca istediğinde Almanca bir yanıt göndermiş olabilir.
- Sunucu, aşağıdakilere yanıt olarak yanlış sıkıştırma yöntemi veya biçimi kullanmıştır Accept-encoding.
- Sunucu çok fazla bayt geri gönderdi ve bu baytlar kabul aralıkları dışında.
- Sunucu anlaşılabilir karakterler sağlayamadı, bu da Accept-charset hatasından kaynaklanır.
406 hatasını görmenizin başka nedenleri olsa da o kadar yaygın değildir. Yukarıdaki liste en yaygın nedenlerden en az yaygın olana doğru sıralanmıştır. İlk ikisi diğerlerinden çok daha sık ortaya çıkar, bu nedenle genellikle bir MIME türü ihlali veya Accept-language olasılığını gidermeye odaklanmanız gerekir.
Genel olarak, web sitesi sahipleri, site dosyalarınızdaki bir şeyin nasıl sorunlara neden olabileceğini görerek bu format sorunları ve ihlalleri hakkında bilgi sahibi olmalıdır. Bu tür durumlar genellikle yanlışlıkla yanlış kod yazmak, gerekli kodu silmek veya sunucuyu yanlış yapılandırmak gibi insan hataları nedeniyle ortaya çıkar. 406 hatası, belirli güvenlik ayarları veya kuralları sunucudan içerik aktarımını engellediğinde de ortaya çıkar.
406 Hatası Nasıl Düzeltilir?
Bir 406 hatasını çözmek için herhangi bir adımı tamamlamadan önce bir web sitesi veya uygulama yedeği çalıştırmak akıllıca olacaktır. Sitenizin kaynak koduna girerek başka sorunlara neden olma potansiyeli her zaman vardır, bu nedenle gerekirse geri yüklemek için bir veritabanı ve site dosyası yedeğine sahip olmak isteyeceksiniz.
Artık 406 hatasının neden oluştuğunu daha iyi anladığımıza göre, hatayı gidermek ve tekrar oluşmasını önlemek için en iyi yöntemlerden bahsetmenin zamanı geldi.
Bu taktikler arasında istemci taraflı nedenler (kullanıcının hata yaptığı veya makinenin düzgün çalışmadığı durumlar), sunucu taraflı nedenler ve hatalı eklentiler gibi platform tabanlı nedenler yer alır.
URL’nin Doğru Olduğundan Emin Olun
İlk tavsiyemiz kulağa basit gelebilir, ancak en hızlı sorun giderme seçeneğidir ve istemci tarafındaki (yani bilgisayarınızdaki) sorunlara odaklanır.
Bu durumda 404 hatası 406 hatasından çok daha olasıdır, ancak web sitesi URL’si geçerliyse “406 Kabul Edilemez” hatası görebilirsiniz. Yine de tarayıcınızın isteği çevirme biçiminde bir tuhaflık var. Örneğin, URL’lerin sonuna “JSON” veya “PHP” eklenmesi, istemcinin bunlara ihtiyacı olmasa bile, bu belirli formatlar için bir istek olarak yanlış yorumlanabilir.
Sorunu çözmek için, daha önce kullanılan ve hataya neden olan URL’yi iki kez kontrol edin. Tekrar yazmayı veya web sitesinde farklı bir alt alan adı seçmeyi deneyerek görüntülenmeyen sayfanın yalnızca bir sayfa olup olmadığını kontrol edin.
406 mesajı teknik olarak istemci tarafında bir hata kodu olarak kabul edilir (genellikle bir platform veya sunucu sorunu olsa da), bu nedenle istemci tarafında bir sorun olup olmadığını belirlemek için ilk hareket tarzı budur.
Cihazlarınızı ve Ağlarınızı Sıfırlayın
İstemci tarafındaki bir başka sorun da zaman zamankullanıcının bilgisayarından isteği karşılayamayan bir platforma gönderilen başlıklardır. Bu platformların çoğu, Hulu gibi oyun veya medya odaklı sistemleri veya Spotify gibi müzik pazarlarını içerir.
Daha basit bir ifadeyle, Hulu gibi bir platforma giriş yapabilir, en sevdiğiniz TV programını izlemeye çalışabilir ve 406 hata mesajı alabilirsiniz. Bu örnekte, sorun neredeyse her zaman istemci –kullancı– tarafındadır. Genellikle bilgisayarınız, ağınız veya platformu başlatmak için kullandığınız cihazdır.
Herhangi bir platformda meydana gelebilmesine rağmen, genellikle 406 hatalarını bildiren bazı platformlar şunlardır:
- Hulu
- Google Play
- Square Enix Oyunları
- Netflix
- Xbox
- Windows (genellikle oyun oynamak için)
Bu liste eksiksiz değildir, ancak 406 hatasının nerede oluşabileceği konusunda size bir fikir verir.
Medya ve oyun platformları birçok kısıtlama ile karmaşıktır ve bu kısıtlamalar konumunuza veya ağ yapılandırmanıza bağlıdır. Tüm bu hareketli parçalar nedeniyle böyle bir hatayla karşılaşma ihtimaliniz vardır.
Her platformda sorun gidermenize yardımcı olamasak da aşağıdaki önerileri uygulayarak hatanın çözülüp çözülmediğini kontrol edebilirsiniz:
- Platformunuzun sunucusunun durumunu kontrol etmek için çevrimiçi olun. Sadece şirketin sunucusuyla ilgili bir sorun olabilir.
- Bilgisayarınızı, oyun sisteminizi, akış cihazınızı veya diğer makineleri yeniden başlatın.
- Tüm cihazların kablo bağlantılarını kesin, hepsini yeniden bağlamadan önce birkaç dakika bekleyin ve hatanın giderilip giderilmediğini kontrol edin.
- Uygulamanın en güncel sürümü çalıştırıp çalıştırmadığını kontrol edin. Ayrıca, makinelerinizden herhangi birinde ürün yazılımı güncellemesi olup olmadığına bakın.
- Ev veya ofis ağınızı (yönlendiriciniz aracılığıyla WiFi veya internet bağlantısı) sıfırlayın.
- Hala sorun yaşıyorsanız kablosuz ağdan kablolu ağ bağlantısına geçmeyi düşünün.
- Bu her zaman mümkün olmasa da, hatayı tamamen farklı bir makineyle tekrarlamayı düşünün. Cihazın aynı ağ üzerinde olduğundan emin olun. Hatayı tekrarlayamazsanız, ağınızı ve orijinal makineyi inceleyin.
Her şey başarısız olursa, arama motorunuza gidin ve platforma özgü sorun giderme önerileri için “+ 406 hata kodu” ile birlikte platformunuzun adını yazın. Bu genellikle süreç boyunca size rehberlik edecek forumları ve destek belgelerini ortaya çıkarır.
Son CMS Değişikliklerinizi Geri Alın
Web siteleriniz veya uygulamalarınız için kullanılan sistemi keşfetmenin zamanı geldi. WordPress gibi içerik yönetim sisteminizin, site dosyalarınızdaki bir sorun nedeniyle “406 Kabul Edilemez” hatasının doğrudan nedeni olduğunu görebilirsiniz.
İster WordPress ister başka bir içerik yönetim sistemi kullanıyor olun, en son güncellemenin ne zaman yapıldığını araştırın. WordPress, ne olursa olsun bu tür hataları önlemek için tasarlanmış sağlam bir varsayılan altyapıya sahiptir.
Belirli eklentiler, temalar veya manuel olarak ayarlanmış kodlama, site dosyalarının istemci veya sunucu isteklerini ihlal ettiği durumlara neden olabilir. CMS’nizin en son sürümüne basit bir yükseltme sorunu hemen çözebilir.
Sorunun CMS’nizden kaynaklanıp kaynaklanmadığını anlamak için, çekirdek dosyalarda yapılan son güncellemeleri geri alarak başlayın. Bildiğiniz gibi WordPress düzenli olarak sistem güncellemeleri gönderir. Bu güncellemelerin çoğu otomatik olarak gerçekleşir.
WordPress ve diğer CMS’ler eklentiler, temalar ve uzantılar gibi çeşitli hareketli parçalar kullanır. Bunlar da düzenli olarak güncellenir, bu nedenle bazılarını geri almanız gerekebilir.
WordPress dışındaki tüm sistemler için “platform adı + downgrade” şeklinde arama yapın. Böylece sürüm düşürme yapabilirsiniz. WordPress için downgrade eklentileri mevcuttur.
Bu kılavuz, WordPress sitenizin sürümünü düşürmek için çoğu yalnızca birkaç dakika süren aşağıdaki yöntemleri özetlemektedir:
- WordPress sitenizin sürümünü manuel olarak düşürme.
- WordPress sistem düşürme işlemini tamamlamak için bir eklenti kullanma.
- Eski bir sürümü veya en azından önceki içerik ve dosyaları geri getirmek için önceki bir yedeği geri yükleme.
- Bir tema veya eklentinin sürümünü manuel olarak düşürme.
- Ayrı bir eklenti ile bir eklentinin veya temanın sürümünü düşürme.
- PHP’nin eski bir sürümüne geçiş.
Eklentileri, Temaları ve Uzantıları Kaldırma & Yeniden Yükleme
WordPress eklentileri ve temaları, site dosyalarınıza çekirdek WordPress dosyalarıyla etkileşime giren ekstra kodlar ekler. Saygın eklentiler genellikle herhangi bir soruna neden olmaz, ancak bazen bir çakışma meydana gelir. Bir eklenti, tema veya üçüncü taraf uzantısı 406 hatasının nedeni olabilir.
Sorunlu bir eklenti veya temayı tespit etmek için denenmiş ve doğru yöntem, eklentilerinizi ve temalarınızı tek tek devre dışı bırakmaktır. Her birini devre dışı bıraktıktan sonra 406 hatasının ortadan kalkıp kalkmadığını kontrol edin. Eğer öyleyse, sorunu buldunuz demektir. Geçmezse, eklentiyi veya temayı tekrardan aktifleştirin ve bir sonrakini kaldırmaya devam edin.
Önemli Not: Eklentilerinizle başlayın, ardından temaya geçin. Bir temayı kaldırıp yeniden yüklemek, içeriğin yeniden düzenlenmesi için daha önemli bir potansiyele sahiptir.
Değişiklikler ve Çakışmalar için Veritabanınızın Durumunu Analiz Edin
Ne yazık ki, kaldırılan “sorunlu” bir eklenti WordPress veritabanınızı hala etkileyebilir, çünkü eklentiler iyi çalışmak için veritabanına tam erişime ihtiyaç duyar. Bu nedenle, bir eklentinin kaldırılması 406 hatasını ortadan kaldırmış gibi görünse bile veritabanınızın durumunu kontrol etmelisiniz. Aksi takdirde, gelecekte başka sorunlarla karşılaşma riskiniz devam edebilir.
Bir eklenti veya tema suçlu değilse, hatanın birincil kaynağının veritabanınız olup olmadığını da kontrol etmelisiniz. Bazen yanlışlıkla veya kasıtlı olarak yapılan bir veritabanı değişikliği, 406 hatasının ortaya çıkmasının birincil nedeni olabilir.
Veritabanınızı taramak ve düzeltmek için bu çözümleri göz önünde bulundurun:
- Yararsız ve sorunlu tabloları ve varlıkları kaldıran bir veritabanı tarayıcısı ve temizleyicisi yükleyin. Bazı seçenekler şunları içerir: WP Optimize ve Gelişmiş Veritabanı Temizleyici. Bu sürecin büyük bir kısmı çöp gönderiler, revizyonlar ve meta veriler gibi eski veya artık olmayan öğelerin silinmesini içerir. Veritabanınızı temizlemek ve potansiyel olarak 406 hatasını ortadan kaldırmak için sağlam bir ilk adımdır.
- Veritabanını tarayın ve sorunlu bir eklenti tarafından değiştirilme olasılığı olan veya yerinde olmayan ya da gereksiz görünen kayıtları ve tabloları arayın.
- Veritabanınızda neyin yanlış olduğuna dair bir fikriniz varsa, bir arama motoruna gidin; çevrimiçi forumlardan yardım isteyin. Başka birinin de aynı sorunu yaşamış olma ihtimali yüksektir.
Sunucu Günlüklerinizi Analiz Edin
Önceki öneriler istemci tarafı ve CMS odaklı sorun gidermeye odaklanmaktadır. Şimdi sunucu tarafındaki tüm sorunları ele alacağız. Bu ve bundan sonraki ipuçları, bir CMS kullanmıyorsanız veya 406 hatasının CMS veya istemci makinenizle bir bağlantısı olmadığını biliyorsanız en iyisidir.
Sunucuda sorun gidermenin ilk adımı günlükleri kontrol etmektir. Ne tür bir web uygulaması, CMS veya web tasarım sistemi kullandığınız önemli değildir; hepsinin sunucu tarafı günlükleri vardır.
Uygulama günlükleri, her veritabanı sorgusu, sağlanan sonuçlar, istenen sayfalar ve çok daha fazlası hakkında bilgi içeren web uygulamasının tüm (veya son) geçmişini depolar. Öte yandan, sunucu günlükleri web uygulamasını çalıştırmak için kullanılan sunucu veya donanımın sağlığı ve durumu hakkında bilgiler içerir.
- error_logs dosyası
Web Uygulamasında Hata Ayıklama (WordPress gibi)
Çoğu web uygulamasının sunucu ve hata günlükleri olduğu gibi, genellikle uygulamanın hata ayıklaması hakkında da bilgi sağlarlar. Hata ayıklama, küçük hataları (veya hataları) bulmak ve ortadan kaldırmak için uygulamanın kodunu gözden geçirmeyi içerir.
Gelecekte 406 Hatasını Önleme
406 hatasıyla ilgili sorun, birçok farklı durumda ortaya çıkabilmesidir. Sıradan bir tüketici olarak Hulu veya Netflix’te gezinirken “406 Kabul Edilemez HTTP” hatasını görebilirsiniz.
Bu pek hoş bir durum değildir, ancak küçük bir sorun giderme işleminin çözemeyeceği bir şey değildir. Daha endişe verici olan 406 hatasının web sitenizde veya uygulamanızda meydana gelmesidir. Bu gibi durumlarda sunucu ve CMS site dosyalarını kontrol etmeniz gerekir.
Söz konusu web sitenizse, hatanın bir daha tekrarlanmasını önlemek isteyeceksiniz. Eklentiler, temalar ve insan hatası her zaman devreye girebilir, ancak veritabanlarınızı ve site dosyalarınızı gelecekte de temiz tutmak için birkaç önerimiz var:
- Yalnızca gerekli ve saygın eklentileri, temaları ve uzantıları yükleyin. Bu unsurları her zaman minimumda tutun.
- Mutlaka yapmanız gerekmedikçe ve ne yaptığınızı bilmiyorsanız çekirdek WordPress dosyalarını asla değiştirmeyin.
- Düzenli olarak bir veritabanı temizleyici ve site optimize edici çalıştırın. Bu işlemi her ay tamamlamanızı ve ideal olarak arka planda otomatik olarak çalışan bir temizleyici eklentisi bulmanızı öneririz.
- Sunucunuzda ve web uygulamanızda hata ayıklamayı alışkanlık haline getirin.
- Web sitenizin veya uygulamanızın otomatik yedeklerini ayarlayın. Bu şekilde, web sitesinin önceki bir sürümünü geri yükleyebileceğiniz ve oradan başlayabileceğiniz için bir kod çakışması veya hata sizi fazla strese sokmayacaktır.
- Otomatik yedekleme yapıyor olsanız bile WordPress’i ve herhangi bir eklentiyi güncellemeyi planlamadan önce sitenizin manuel bir yedeğini alın (pişman olmaktansaedbirli olmak daha iyidir!) Ayrıca herhangi bir dosyayı düzenlemeden veya sitenize yeni kod eklemeden önce yedekleme yapmak akıllıca olacaktır.
Özet
406 hatasını birkaç şekilde düzeltebilirsiniz. Ne gördüğünüzü ve düzeltme için nereye bakacağınızı bildiğiniz sürece, hatayı temizleyebilmeniz gerekir.
Bu en yaygın WordPress hatalarından biri olmasa da, yapılandırmanız doğru değilse zaman zaman göreceğiniz bir hatadır.
“406 Kabul Edilemez” hatalarını çözmek için başka önerileriniz var mı? Lütfen bunları aşağıdaki yorumlar bölümünden bizimlee paylaşın!