HTTP Başlık Denetleyici

HTTP başlık denetleyici bir adrese istek gönderir ve sunucunun döndürdüğü yanıt başlıklarını gösterir: durum kodu, önbellek ve çerez alanları ve tarayıcının uyguladığı güvenlik başlıkları. Bu araç bunlara yedi başlıktan oluşan 0-100 arası bir puan ekler: HSTS, CSP, X-Content-Type-Options, X-Frame-Options, X-XSS-Protection, Referrer-Policy ve Permissions-Policy. github.com için yaklaşık 60 ms'de 200 OK, 17 başlık ve 90/100 ile A+ notu döner.

🌐
Dene:

Bu HTTP başlık denetleyici neyi raporlar?

Bir alan adı yazın: araç sunucumuzdan o adrese bir HEAD isteği gönderir, ardından durum kodunu, gidiş dönüş süresini milisaniye cinsinden, yanıt başlıklarının tam listesini ve HSTS, Content-Security-Policy, X-Content-Type-Options, X-Frame-Options, X-XSS-Protection, Referrer-Policy ile Permissions-Policy üzerinden hesaplanan 0-100 arası bir güvenlik puanını gösterir. Sunucunun gönderdiğini raporlar: yönlendirmeleri izlemez ve sayfa gövdesini okumaz.

Bu aracı sitenize gömün

× px

                        

💡 Entegrasyon İpucu

Gömme kodunu kopyalayın ve web sitenizin HTML'sine yapıştırın. Duyarlı sürüm tüm ekran boyutlarına otomatik olarak uyum sağlar.

0 değerlendirme
✓

Popüler Araçlar

Daha fazla araç yok
Tüm araçları keşfet

Durum kodu 3xx ise sayfa yönlendirme yapıyor demektir: URL'nin sonunda nereye ulaştığını bulmak için Yönlendirme Kontrolü ile her yönlendirme adımını takip edin.

HTTP Başlık Denetleyici Hakkında

Bu HTTP başlık denetleyici bir URL alır, sunucumuzdan oraya bir HEAD isteği gönderir ve dönen her şeyi gösterir: durum kodunu açıklamasıyla birlikte, gidiş dönüş süresini milisaniye cinsinden ve sunucunun gönderdiği her yanıt başlığını. github.com için bu, yaklaşık 60 ms'de 200 OK ve 17 başlık alanı demektir; content-type ve etag'den content-security-policy değerinin tamamına kadar.

Güvenlik Puanı kartı yedi başlığı 100 üzerinden değerlendirir. Strict-Transport-Security ile Content-Security-Policy 20'şer puan, X-Content-Type-Options ile X-Frame-Options 15'er puan, X-XSS-Protection, Referrer-Policy ve Permissions-Policy ise 10'ar puan değerindedir. 90 puan ve üzeri A+, 80 A, 70 B, 60 C, 40 D, altı F notunu verir. github.com Permissions-Policy bulunmadığı için 90/100 alır; example.com yedisinden hiçbirini göndermez ve 0 alır.

Puan varlığı ölçer, kaliteyi değil. x-xss-protection: 0 değeri o filtreyi kapatır ama yine de on puanını kazanır; buna karşılık content-security-policy-report-only başlığı hiç puan getirmez. Bu yüzden yalnızca nota bakmak yerine Present işaretli her satırın altındaki değeri okuyun. Yönlendirmeler izlenmez: google.com 301 ve location: https://www.google.com/ ile yanıt verir, hedefi puanlamak için o adresi kutuya siz yapıştırmalısınız. İstek yalnızca HEAD olduğundan hiçbir HTML, meta etiketi veya sayfa metni incelenmez; istek on saniye sonra bırakılır ve tek bir adresten dakikada yirmi denetim kabul edilir.

Yazdığınız URL bu sitenin sunucusuna gönderilir; istek sizin adınıza FreeWebTools Header Checker/1.0 kullanıcı aracısıyla ve çerezleriniz ile oturumunuz olmadan yapılır, yani anonim bir ziyaretçinin aldığı yanıtı görürsünüz. Özel ve ayrılmış IP aralıkları, localhost, bulut meta veri uç noktaları ve 22, 3306, 6379 gibi yönetim portları reddedilir.

Kullanım alanları

Content-Security-Policy yayına alan bir geliştirici, her dağıtımdan sonra hazırlık alan adını denetler ve puanın bilerek yok saydığı content-security-policy-report-only değil, gerçekten content-security-policy başlığının göründüğünü doğrular.
Alan adı taşımasını denetleyen bir SEO uzmanı eski bir URL'yi yapıştırır, dönen 301 kodunu ve location değerini okur, sonra o hedefi kutuya yeniden yapıştırarak zinciri adım adım izler; çünkü araç sizin yerinize hiçbir yönlendirmeyi takip etmez.
HSTS'yi yeni açan bir sistem yöneticisi, alan adını ön yükleme listesine göndermeden önce strict-transport-security başlığında uzun bir max-age ile includeSubDomains ve preload bulunduğunu doğrular; github.com max-age=31536000; includeSubdomains; preload döndürür.
Eskimiş içeriğin peşindeki bir destek mühendisi, kenar önbelleğini tarayıcı önbelleğinden ayırmak için Tüm Yanıt Başlıkları tablosunda cache-control, etag, age ve cf-cache-status alanlarını okur: example.com cf-cache-status: HIT ve birkaç bin saniyelik bir age ile yanıt verir.
HTTP öğrenen bir öğrenci google.com, github.com, cloudflare.com ve stackoverflow.com örneklerine sırayla tıklar; curl kurmadan ve tarayıcının geliştirici araçlarını açmadan gerçek başlık kümelerini ve F'den A+'ya uzanan notları yan yana karşılaştırır.

Bir sitenin HTTP yanıt başlıkları nasıl kontrol edilir

1

Arama kutusuna bir alan adı ya da tam adres yazın, örneğin example.com; https:// öneki sizin için eklenir. Dene yazısının yanındaki örneklerden birine de tıklayabilirsiniz: google.com, github.com, cloudflare.com veya stackoverflow.com.

2

Enter'a basın ya da Kontrol Et düğmesine tıklayın. İstek sunucumuzdan HEAD isteği olarak çıkar, bu yüzden yalnızca başlıklar döner, sayfa gövdesi asla dönmez.

3

Üç özet kartı okuyun: açıklamasıyla birlikte Durum Kodu, harf notuyla 100 üzerinden Güvenlik Puanı ve milisaniye cinsinden Yanıt Süresi.

4

Güvenlik Başlıkları bölümünü gözden geçirip HSTS, CSP, X-Content-Type-Options, X-Frame-Options, X-XSS-Protection, Referrer-Policy ve Permissions-Policy başlıklarından hangilerinin Present veya Missing işaretlendiğini görün ve mevcut olanların altındaki değeri okuyun.

5

Sunucunun döndürdüğü her başlığın adını ve değerini okumak için Tüm Yanıt Başlıkları bölümünü açın; puanın kapsamadığı önbellek, çerez ve CDN alanları da buradadır.

6

Raporun tamamını — URL, durum, harf notuyla puan ve başlık listesi — düz metin olarak panonuza almak için Kopyala düğmesine tıklayın.

Profesyonel İpuçları

  • Yalnızca alan adını yazın: kutu https:// önekini kendisi ekler, yani github.com adresi https://github.com olarak denetlenir. Düz HTTP yanıtını görmek için http:// önekini açıkça yazın; orada strict-transport-security genellikle bulunmaz, çünkü RFC 6797 tarayıcılara güvensiz bağlantıda bu başlığı yok saymalarını söyler.
  • Puan değeri değil, varlığı ödüllendirir. github.com filtreyi kapatan x-xss-protection: 0 gönderir ve yine de on puanın tamamını alır; bu yüzden nota güvenmeden önce Present işaretli her satırın altındaki gri değer satırını okuyun.
  • Yalnızca raporlama modundaki bir politika puan getirmez. google.com uygulanan bir politika olmadan content-security-policy-report-only gönderir ve CSP'nin 20 puanını tamamen kaybeder; Present etiketi yalnızca tam olarak content-security-policy adlı başlık için görünür.
  • Durum Kodu kartında 301 veya 302 görünüyorsa, başlık tablosundan location değerini kopyalayın ve onunla ikinci bir denetim çalıştırın. Yönlendirme yanıtının kendisi neredeyse hiç güvenlik başlığı taşımaz; google.com'un 25/100'de kalmasının nedeni budur.
  • Kopyala düğmesi raporun tamamını düz metin olarak panoya alır: URL, durum, harf notuyla puan ve her başlık. Bir kayda yapıştıracağınız şey budur. Toplu çalışmayı dakikada yirmi denetimle sınırlayın; üzerine çıkınca API 429 döner ve sayfa genel bir hata mesajı gösterir.

Sorun Giderme

Sorun:

Site tarayıcıda normal açıldığı hâlde sayfa “Failed to check headers. Please verify the URL is accessible.” mesajını gösteriyor.

Çözüm:

Bu genel mesaj, yanıt kullanılamaz döndüğünde çıkar. En sık nedeni hız sınırıdır: aynı adresten dakikada yirmiden fazla denetim yapılırsa API 429 Too Many Requests yanıtı verir. Bir dakika bekleyip yeniden deneyin. Sunucu HEAD isteğine on saniyelik zaman aşımından daha geç yanıt verdiğinde de aynı mesaj görünür.

Sorun:

Hata satırında “Connection failed: SSL certificate problem: certificate has expired” yazıyor.

Çözüm:

Sertifika körlemesine kabul edilmez, doğrulanır; bu yüzden süresi dolmuş, kendinden imzalı ya da başka bir ana makine adına verilmiş bir sertifika yanıltıcı bir rapor üretmek yerine denetimi durdurur. Sertifikayı yenileyin veya düzeltin ya da TLS devreye girmeden önce sunucunun gönderdiği başlıkları okumak için adresi http:// ile denetleyin.

Sorun:

Hata satırında “Internal URLs not allowed”, “Private IPs not allowed” veya “This port is not allowed” yazıyor.

Çözüm:

Araç, iç ağ tarayıcısına dönüşmemesi için localhost adresini, özel ve ayrılmış IP aralıklarını, bulut meta veri uç noktalarını ve 22, 23, 25, 3306, 5432, 6379, 11211, 27017, 8080 ile 8443 portlarını reddeder. 80 veya 443 portunda herkese açık çözümlenebilen bir ana makine adı kullanın; yerel bir sunucu için curl -I komutunu makinenin kendisinde çalıştırın.

Sorun:

Durum Kodu kartı 301 ya da 302 gösteriyor, yalnızca birkaç başlık ve düşük bir güvenlik puanı var.

Çözüm:

Yönlendirmeler bilerek izlenmez, dolayısıyla puanladığınız şey hedef değil, yönlendirme yanıtının kendisidir. google.com 301 ve location: https://www.google.com/ ile yanıt verdiği için 25/100 alır. Ziyaretçilerin gerçekten indiği sayfayı puanlamak üzere başlık tablosundaki location değerini kopyalayıp onunla ikinci bir denetim çalıştırın.

Sorun:

Hata satırında “Connection failed: Could not resolve host” yazıyor.

Çözüm:

Sunucumuz o ana makine adı için herkese açık bir DNS kaydı bulamadı. Yazımı kontrol edin, adresle birlikte yapıştırdığınız boşluk veya tırnak işaretini silin ve alan adının ağınızın dışından da çözümlendiğini doğrulayın. Yalnızca hosts dosyanızda, bir VPN arkasında ya da iç DNS sunucusunda var olan bir ana makineye buradan erişilemez.

Sık Sorulan Sorular

Alan adını bu sayfanın üstündeki kutuya yazın ve Enter'a basın ya da Kontrol Et düğmesine tıklayın. Sunucumuz o URL'ye bir HEAD isteği gönderir ve sayfa üç kartı doldurur: Durum Kodu, Güvenlik Puanı ve Yanıt Süresi. Ardından Güvenlik Başlıkları incelemesi ve dönen tüm başlıkların tablosu gelir. github.com yaklaşık 60 ms'de 200 OK ve 17 alan döndürür. Eklenti, curl komutu veya geliştirici araçları gerekmez.

HTTP başlığı, bir isteği veya yanıtı tanımlamak için ona eklenen ad-değer satırıdır. content-type: text/html; charset=utf-8 ortam türünü, cache-control yanıtın ne kadar süre yeniden kullanılabileceğini, location ise bir yönlendirmenin hedefini bildirir. RFC 9110, HTTP Semantics, alan sözdizimini ve alan adlarının kaydını tanımlar. Başlıklar gövdenin yanında ilerler, asla içinde değil; bu sayfa yalnızca yanıt başlıklarını listeler.

Burada puanlanan yedisi şunlardır: Strict-Transport-Security, Content-Security-Policy, X-Content-Type-Options, X-Frame-Options, X-XSS-Protection, Referrer-Policy ve Permissions-Policy. HSTS ile CSP 20'şer puan, X-Content-Type-Options ile X-Frame-Options 15'er puan, kalan üçü 10'ar puan ağırlığındadır. MDN, X-XSS-Protection'ı kullanımdan kaldırılmış ve standart dışı olarak işaretler ve yerine güçlü bir Content-Security-Policy önerir; o on puanı hedef değil, geçmişten kalan bir işaret sayın.

Denetimi çalıştırın ve Güvenlik Başlıkları bölümünü okuyun: yedi başlığın her biri Present ya da Missing etiketi, tek satırlık bir açıklama ve varsa sunucunun döndürdüğü tam değeri taşır. Güvenlik Puanı kartı bunu harf notuyla 0-100 aralığına çevirir: 90 ve üzeri A+, 80 A, 70 B, 60 C, 40 D, 40'ın altı F. github.com yalnızca Permissions-Policy eksik olduğu için 90/100 alır.

F12 ile geliştirici araçlarını açın, Ağ sekmesine geçin, sayfayı yenileyin, belge isteğine tıklayın ve yanıt başlıkları panelini okuyun. Orada kendi tarayıcınızın aldığı yanıt görünür; çerezler ve içerik pazarlığı dahil. Bu sayfa ise tarafsız karşılığıdır: istek sunucumuzdan FreeWebTools Header Checker/1.0 kullanıcı aracısıyla ve çerezsiz çıkar, yani anonim bir ziyaretçinin aldığı yanıtı görürsünüz.

Başlıklar bir mesajda gövde olmayan her şeyi taşır: aktarımın sonucu, ortam türü ve kodlama, önbellek ve yeniden doğrulama kuralları, çerezler ve tarayıcının uygulaması gereken güvenlik politikaları. content-type olmadan tarayıcı biçimi tahmin etmek zorunda kalır; strict-transport-security olmadan düz HTTP konuşmayı sürdürebilir; content-security-policy olmadan enjekte edilmiş bir betik engelsiz çalışır. Gövde tek başına bunların hiçbirini ifade edemez.

Her alan tek satırdır: ad, iki nokta, isteğe bağlı boşluk ve değer; örneğin x-frame-options: deny. RFC 9110'un 5.1 bölümü alan adlarını büyük-küçük harfe duyarsız kılar, HTTP/2 ise bunları küçük harfle ister; yukarıdaki tabloda Content-Type yerine content-type görünmesinin nedeni budur. Bir alan meşru biçimde tekrarlanabilir; bu durumda araç ayrıştırdığı son değeri saklar.

Evet. TLS, başlıklar dahil tüm HTTP mesajını şifreler; ağı izleyen biri hedef IP adresini ve TLS SNI'daki ana makine adını görür ama alan adlarını, değerleri veya çerezleri göremez. Düz HTTP'de hiçbir şey korunmaz ve Strict-Transport-Security tam olarak bunu çözer: RFC 6797 tarayıcıya max-age süresi boyunca o ana makine için HTTPS kullanmasını söyler, başlık HTTP üzerinden gelirse tarayıcılar onu yok sayar.

Alan adları duyarlı değildir. RFC 9110'un 5.1 bölümü alan adlarının büyük-küçük harfe duyarsız olduğunu belirtir: Content-Type ile content-type aynı alandır ve HTTP/2 küçük harf biçimini zorunlu kılar. Değerler ise başka konudur: tarayıcı x-frame-options: DENY ile deny değerlerini eşit kabul eder, ama bir location adresi, bir ETag ya da Content-Security-Policy içindeki bir nonce yazıldığı gibi karşılaştırılır.

Hayır. Bu sayfa yanıt başlıklarını raporlar, çünkü isteği tarayıcınız değil sunucumuz yapar. Tarayıcınızın gönderdiği başlıkları okumak için geliştirici araçlarını açın, Ağ sekmesine gidin ve istek başlıklarını genişletin ya da isteği yankılayan bir uç nokta kullanın. Burada görünen her şey — durum, puan ve tablo — yazdığınız siteyi anlatır, istemcinizi değil.

FreeWebTools AI
Powered by free AI models · Full chat →