HTTP başlık kontrolü, bir URL için web sunucusunun döndürdüğü yanıt bilgilerini gösterir. Screpy, herkese açık bir GET isteği yapar, desteklenen yönlendirmeleri takip eder ve sayfa gövdesini indirmeden son yanıtın başlık adlarını ve değerlerini listeler. Raporu yönlendirmeyi araştırmak, yayınlama sonrası bir başlık değişikliğini kontrol etmek veya beklenmeyen bir indeksleme talimatını bulmak için kullanın.
Önce aldığınız yanıtı okuyun, ardından kaynağın döndürmesi gereken yanıtla karşılaştırın. Başarıyla tamamlanan kontrol, sunucu hatası veya uygun olmayan bir politika gösterebilir. Yeşil sonuç; güvenliği, önbellek performansını veya arama motorunda indekslenmeyi onaylamaz.
Tam URL'yi ve yanıt zincirini kontrol edin
İlgili yol ve sorguyla birlikte tam bir HTTP veya HTTPS adresi girin. Aynı alan adındaki ana sayfa, PDF ve ürün sayfası farklı başlıklar döndürebilir. Kurgusal bir ürün sayfasını incelemek istiyorsanız https://example.com/products/blue-mug/, sitenin kök adresinden daha anlamlı bir girdidir.
Başlık tablosundan önce yanıt zincirini okuyun. Yönlendirme protokolü, sunucu adını veya yolu değiştirebilir. Tablo, her adımın bütün başlıklarını değil, son yanıtın başlıklarını içerir. Zincirde son yanıt da yer aldığından gösterilen adım sayısı yönlendirme sayısına eşit olmayabilir.
Son URL'nin kontrol etmek istediğiniz kaynak olduğunu doğrulayın. Giriş sayfası, hata sayfası veya farklı bir sunucu adı, beklemediğiniz değerleri açıklayabilir. Son başlık listesinden ziyade yönlendirme yoluna odaklanmanız gerekiyorsa Redirect Checker kullanın.
Örnek bir HTTP yanıt başlığını okuyun
Bu kurgusal yanıt, farklı alanların farklı sorulara nasıl cevap verdiğini gösterir. Gerçek tarama sonucu veya her sayfaya kopyalanacak bir yapılandırma değildir.
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Cache-Control: no-cache
X-Robots-Tag: noindex
200, başarılı yanıtı belirtir. Content-Type, UTF-8 kodlamalı HTML bildirir. Cache-Control önbellek talimatlarını, X-Robots-Tag ise indeksleme talimatını belirtir. Dolayısıyla çalışan bir yanıt noindex içerebilir: HTTP başarısı, sayfanın arama sonuçlarında görünmesinin amaçlandığı anlamına gelmez.
Tablo başlık adlarını küçük harfle gösterir; büyük ve küçük harf farkı bunları ayrı alanlara dönüştürmez. MDN başlık başvurusu, istek ve yanıt alanlarını ayırır. Bu araç yanıtı gösterir; sizin tarayıcı oturumunuzdaki çerezleri, tercihleri veya kimlik doğrulama bilgilerini dökmez.
Önbelleği ve indekslemeyi ayrı kararlar olarak inceleyin
Belirli bir sorunu araştırırken tabloyu başlık adına göre filtreleyin. Önce kaynağın ihtiyacını belirleyin. Sık değişen HTML, sürümlenmiş bir dosya ve bilerek arama dışında bırakılan bir belge aynı politikayı kullanmak zorunda değildir.
| Başlık | İncelemede sorulacak soru |
|---|---|
content-type |
Bildirilen biçim beklediğiniz kaynakla uyuşuyor mu, yoksa yönlendirme başka yanıta mı ulaştı? |
cache-control |
Politika, kaynağın güncellenme ve gizlilik gereksinimlerine uygun mu? |
etag veya last-modified |
Koşullu istekler için doğrulayıcı var mı? Bulunması, yeniden doğrulamanın çalıştığını test etmez. |
vary |
Yanıt, önbellek seçimi için hangi istek başlığı farklılıklarını bildiriyor? |
x-robots-tag |
Gözlemlenen noindex bu URL için amaçlanıyor mu? |
no-cache, “hiç saklama” demek değildir. Saklamaya izin verir ancak yeniden kullanmadan önce doğrulama ister. no-store ise önbelleklere yanıtı saklamama talimatı verir. MDN Cache-Control açıklaması farkı ayrıntılandırır. Bu kontrol, önbellekten sunulma oranını ölçmez ve önceden saklanan kopyaları temizlemez.
İndeksleme talimatı, içeriğin güncelliğinden ayrı bir karardır. İndekslenmesi gereken sayfa beklenmedik şekilde noindex döndürüyorsa değiştirmeden önce sorumlu uygulamayı, sunucuyu veya yanıt kuralını bulun. HTML talimatlarını da incelemek için Noindex Checker kullanın. Google'ın noindex belgesi talimatı açıklar; burada gözlemlenmesi Google'ın güncel indeks durumunu kanıtlamaz.
Güvenlik başlıklarıyla ilgili bulguları anlayın
Screpy, belirli bildirimleri incelemeniz için öne çıkarır. Bulguyu, güvenlik açığı raporu veya bilmediğiniz bir politikayı canlıya kopyalama önerisi olarak değil, bir yapılandırma sorusu olarak değerlendirin.
| Bulgu | Kontrolün gösterdiği ve göstermediği |
|---|---|
| HSTS incelemesi | HTTPS yanıtında pozitif max-age arar. HTTPS geçişinizin tamamını veya sertifika yapılandırmanızı doğrulamaz. |
| Eksik CSP | HTML olarak bildirilen yanıtta Content-Security-Policy arar. Başlığın bulunması, yönergelerinin uygulamanızı koruduğunu garanti etmez. |
| Çerçeveleme incelemesi | CSP'de frame-ancestors veya tanınan X-Frame-Options değeri arar. Sayfanın başka yere gömülmesine izin verilip verilmeyeceği ihtiyacınıza bağlıdır. |
| MIME türü tahmini incelemesi | X-Content-Type-Options içinde nosniff bildirimi arar. Gerçek dosya içeriğini veya bütün tarayıcıların davranışını doğrulamaz. |
Bilgilendirme veya eksik politika bulgusu, güvenlik açığının kanıtı değildir. Başlığın bulunması da politikayı etkili hale getirmez. MDN CSP belgesi, uygulanan politikaları, ihlalleri bildiren ancak kısıtlamaları uygulamayan Content-Security-Policy-Report-Only başlığından ayırır. İkincisini görmek, uygulanan bir politikanın bulunduğunu kanıtlamaz.
Politika değişikliklerini uygulamanın gerçek kaynak ve gömülme gereksinimleriyle değerlendirin. Araç güvenlik puanı vermez, sertifika incelemez ve her yönergeyi doğrulamaz. HTML içindeki güvensiz kaynak adreslerini ayrıca kontrol etmek için Mixed Content Checker kullanın.
Tekrarlanan ve gizlenen başlık değerlerini yorumlayın
Başlık sayısı, normalleştirilmiş farklı adları ifade eder. Görülme sayısı sütunu bir adın kaç kez geçtiğini gösterir; normal tekrarlanan değerler görünür kalır. Birden fazla görülmesi otomatik olarak hata değildir. İlgili alanın bu yapıya izin verip vermediğini ve birleşik politikanın amaçlanıp amaçlanmadığını değerlendirin.
Hassas çerez, kimlik doğrulama ve tanınan gizli değerler gizlenir veya maskelenir. Gizlenen değer, eksik başlık anlamına gelmez; bulunması da çerez güvenliği değerlendirmesi değildir. Paylaşılacak rapora gizlenmiş değerleri geri eklemeyin. Gizli ayrıntıları yalnızca uygun özel hata ayıklama ortamında inceleyin.
Arama kutusunun bütün değerlerde arama yapmasını beklemek yerine cache-control gibi bir ada göre filtreleyin. Yanıtları karşılaştırırken raporu kontrol edilen URL ve zaman bilgisiyle saklayın. Tek bir başlığın varlığını veya yokluğunu; son durum, kaynak türü ve kapsam bildirimiyle birlikte yorumlayın.
Kısmi kontrolleri HTTP hatalarından ayırın
Sunucunun hata yanıtı vermesi ile kontrolün sunucuya ulaşamaması farklı sonuçlardır. Eksik satırları yorumlamadan önce kapsam mesajını okuyun.
| Sonuç | Anlamı ve sonraki adım |
|---|---|
Başlıklarıyla birlikte son 404 veya 500 |
Yanıt gözlemlenmiştir. URL'yi doğrulayın ve kaynak veya sunucu hatasını araştırın; bağlantı başarısını sayfa başarısıyla karıştırmayın. |
| Kısmi yanıt zinciri | Bazı adımlar görülmüştür ancak son yanıt kontrol edilememiştir. Son başlıklar kullanılamaz; eksik oldukları doğrulanmış değildir. |
| Zaman aşımı veya erişilemeyen kaynak | İstenen yanıt alınamamıştır. Yeniden denemeden önce herkese açık erişimi, adresi ve yönlendirmeyi kontrol edin. |
Araç, sınırlı sayıda yönlendirme izler ve sınırlı süre bekler. Döngüler, erişilemeyen yönlendirme hedefleri veya desteklenen sınırları aşan yanıtlar kontrolü eksik bırakabilir. Bu durumda boş son başlık listesini eksik güvenlik başlıkları listesi gibi yorumlamayın.
Özel ağ adresleri, oturum gerektiren sayfalar ve tarayıcı çerezlerinizi isteyen istekler formun kapsamı dışındadır. Erişim engeli de Googlebot'un veya gerçek başka bir ziyaretçinin aldığı yanıtı kanıtlamaz.
Yayınlama sonrası başlıkları karşılaştırın
Değişiklikten önce tam URL'yi, son yanıtı, kontrol zamanını ve değişmesini beklediğiniz alanı kaydedin. Başlangıç durumunu saklamak için raporu dışa aktarın. İstenen yapılandırmayı yayınladıktan sonra aynı URL'yi kontrol edin ve yalnızca başlık veya uyarı sayısını değil, ilgili değerleri karşılaştırın. Kural başka kaynak türlerine de uygulanacaksa bunlardan birini de kontrol edin.
Tarayıcınız farklı sonuç gösteriyorsa Ağ panelini açın, sayfayı yeniden yükleyin ve ilgili isteği inceleyin. Yönlendirme sonrasındaki URL'yi, yöntemi ve oturum durumunu karşılaştırın. Önbellekteki veya kişiselleştirilmiş tarayıcı yanıtı, farklı konumdan yapılan herkese açık istekle aynı olmayabilir. Bu form kullanıcı çerezlerinizi göndermez ve özel kimlik doğrulama başlığı eklemenizi sağlamaz.
Diğer aracın GET yerine HEAD kullanıp kullanmadığını da kontrol edin. RFC 9110, HEAD yanıtının gövde içermediğini ve içerik üretilirken belirlenen bazı alanları atlayabileceğini açıklar. Screpy GET kullanır, ancak gövdeyi indirmeden durur. Yöntemi ve istek koşullarını eşleştirmek farkı araştırmanıza yardımcı olur; her sunucu yanıtını aynı hale getirmez.