Een HTTP Header Checker toont de metadata die een webserver voor een URL terugstuurt. Screpy doet één openbaar GET-verzoek, volgt ondersteunde omleidingen en toont de headernamen en waarden van het definitieve antwoord zonder de paginabody te downloaden. Gebruik het rapport om een omleiding te onderzoeken, een headerwijziging na publicatie te controleren of een onverwachte indexeringsinstructie te vinden.
Begin met het ontvangen antwoord en vergelijk dat met wat de bron zou moeten teruggeven. Een afgeronde controle kan een serverfout of ongeschikt beleid laten zien. Een groen resultaat certificeert geen beveiliging, cacheprestaties of indexering door zoekmachines.
Controleer de exacte URL en antwoordketen
Voer een volledig openbaar HTTP- of HTTPS-adres in, inclusief het relevante pad en de query. Een homepage, PDF en productpagina kunnen op hetzelfde domein andere headers teruggeven. Voor een fictieve productpagina is https://example.com/products/blue-mug/ nuttiger dan de domeinroot als je juist dat productantwoord wilt onderzoeken.
Lees eerst de antwoordketen en daarna de headertabel. Een omleiding kan protocol, host of pad wijzigen. De tabel bevat de headers van het definitieve antwoord, niet alle headers van iedere stap. De keten bevat ook het laatste antwoord; het aantal getoonde stappen hoeft dus niet gelijk te zijn aan het aantal omleidingen.
Controleer of de uiteindelijke URL bij de bedoelde bron hoort. Een aanmeldpagina, foutpagina of andere host kan onverwachte waarden verklaren. Gebruik Redirect Checker wanneer je vooral het omleidingspad wilt onderzoeken in plaats van de laatste headerlijst.
Lees een voorbeeld van een HTTP-antwoord
Dit fictieve antwoord laat zien hoe afzonderlijke velden verschillende vragen beantwoorden. Het is geen vastgelegde controle of configuratie om overal te kopiëren.
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Cache-Control: no-cache
X-Robots-Tag: noindex
Status 200 duidt op een geslaagd antwoord. Content-Type geeft HTML met UTF-8-codering aan. Cache-Control beschrijft cache-instructies en X-Robots-Tag geeft een indexeringsinstructie. Een werkend antwoord kan dus noindex bevatten: HTTP-succes betekent niet dat een pagina voor zoekresultaten bedoeld is.
De tabel normaliseert headernamen naar kleine letters; hoofdletters maken er geen ander veld van. De MDN-headerreferentie onderscheidt verzoek- en antwoordvelden. Deze checker toont het antwoord, niet de cookies, browservoorkeuren of inloggegevens van je eigen browsersessie.
Beoordeel caching en indexering afzonderlijk
Filter bij een specifiek probleem op headernaam. Bepaal eerst wat de bron nodig heeft: regelmatig gewijzigde HTML, een versiegebonden bestand en een bewust uitgesloten document vragen niet noodzakelijk om hetzelfde beleid.
| Header | Nuttige controlevraag |
|---|---|
content-type |
Past het opgegeven formaat bij de verwachte bron of leidde een omleiding naar een ander antwoord? |
cache-control |
Past het cachebeleid bij de update- en privacyvereisten van deze bron? |
etag of last-modified |
Is er een validator voor voorwaardelijke verzoeken? Aanwezigheid test de hervalidatie niet. |
vary |
Welke verschillen in verzoekheaders noemt het antwoord voor de cacheselectie? |
x-robots-tag |
Is de waargenomen noindex-instructie voor deze URL bedoeld? |
no-cache betekent niet ‘nooit opslaan’. Opslag is toegestaan, maar hergebruik vereist validatie. no-store instrueert caches het antwoord niet te bewaren. De MDN-referentie voor Cache-Control legt het verschil uit. Deze controle meet geen cachetreffers en verwijdert geen eerder opgeslagen kopieën.
Een indexeringsinstructie staat los van de actualiteit van inhoud. Geeft een pagina die geïndexeerd moet worden onverwacht noindex terug, zoek dan eerst de verantwoordelijke toepassing, serverinstelling of antwoordregel. Gebruik Noindex Checker om ook HTML-instructies te onderzoeken. Googles noindex-documentatie beschrijft de instructie; de waarneming bewijst niet de huidige status in Googles index.
Begrijp de opmerkingen over beveiligingsheaders
Screpy markeert bepaalde verklaringen voor beoordeling. Behandel een bevinding als een configuratievraag, niet als een kwetsbaarheidsrapport of advies om onbekend beleid op de gepubliceerde website te zetten.
| Waarneming | Wat de controle wel en niet vaststelt |
|---|---|
| HSTS-controle | Zoekt een positieve max-age in een HTTPS-antwoord. Valideert niet de volledige HTTPS-inrichting of certificaten. |
| Ontbrekende CSP | Zoekt Content-Security-Policy in een als HTML opgegeven antwoord. Aanwezigheid garandeert niet dat de richtlijnen je toepassing beschermen. |
| Controle op insluiten | Zoekt frame-ancestors in CSP of een herkende X-Frame-Options-waarde. Of insluiten toegestaan moet zijn, hangt van de pagina af. |
| MIME-sniffingcontrole | Controleert of X-Content-Type-Options de waarde nosniff opgeeft. Test niet de daadwerkelijke bestandsinhoud of het gedrag van iedere browser. |
Een informatieve melding of ontbrekend beleid bewijst geen kwetsbaarheid. Evenmin maakt de aanwezigheid van een header beleid effectief. De CSP-documentatie van MDN onderscheidt afgedwongen beleid van Content-Security-Policy-Report-Only, dat overtredingen meldt zonder die beperkingen af te dwingen. Dat laatste zien bewijst niet dat er ook afdwingend beleid is.
Beoordeel wijzigingen aan de hand van de werkelijke bronnen en insluitvereisten van de toepassing. De checker geeft geen beveiligingscijfer, onderzoekt geen certificaten en valideert niet iedere richtlijn. Gebruik voor onveilige bronverwijzingen in HTML afzonderlijk Mixed Content Checker.
Interpreteer herhaalde en verborgen waarden
Het headeraantal telt verschillende genormaliseerde namen. De kolom met aantallen toont hoe vaak een naam voorkwam; gewone herhaalde waarden blijven zichtbaar. Meerdere voorkomens zijn niet automatisch fout: controleer of het veld die structuur toestaat en het gecombineerde beleid bedoeld is.
Gevoelige cookie-, authenticatie- en herkende geheime waarden worden verborgen of opgeschoond. Een verborgen waarde is geen ontbrekende header en de aanwezigheid is geen beoordeling van cookiebeveiliging. Vul afgeschermde waarden niet opnieuw in een gedeeld rapport in. Bekijk vertrouwelijke details alleen in een geschikte besloten debugomgeving.
Filter op de naam, zoals cache-control, en verwacht geen zoekopdracht in alle waarden. Bewaar het rapport met de gecontroleerde URL en tijd voor vergelijkingen. Beoordeel een aanwezig of ontbrekend veld samen met de laatste status, het brontype en de dekkingsmelding.
Onderscheid gedeeltelijke controles van HTTP-fouten
Een server die een fout terugstuurt is iets anders dan een checker die de server niet kan bereiken. Lees de dekkingsmelding voordat je ontbrekende rijen interpreteert.
| Resultaat | Betekenis en volgende stap |
|---|---|
Laatste 404 of 500 met headers |
Er is een antwoord waargenomen. Controleer de URL en bron- of serverfout; een geslaagde verbinding is geen werkende pagina. |
| Gedeeltelijke keten | Sommige stappen zijn waargenomen, maar het laatste antwoord kon niet worden gecontroleerd. De laatste headers zijn onbekend, niet bewezen afwezig. |
| Time-out of bron niet beschikbaar | Het gevraagde antwoord is niet verkregen. Controleer openbare toegang, adres en omleidingen voordat je opnieuw probeert. |
De checker volgt een beperkt aantal omleidingen en wacht een beperkte tijd. Lussen, onbereikbare doelen of antwoorden buiten ondersteunde grenzen kunnen de controle onvolledig laten. Een lege definitieve headerlijst is dan geen lijst met ontbrekende beveiligingsheaders.
Privénetwerkadressen, afgeschermde pagina's en verzoeken die je browsercookies nodig hebben, vallen buiten dit formulier. Een toegangsbeperking bewijst ook niet wat Googlebot of een andere echte bezoeker ontvangt.
Vergelijk headers na publicatie
Noteer vóór een wijziging de exacte URL, het definitieve antwoord, de controletijd en het veld dat moet veranderen. Exporteer het rapport als uitgangspunt. Controleer na publicatie dezelfde URL en vergelijk de relevante waarden, niet alleen het aantal headers of waarschuwingen. Herhaal dit voor een ander brontype als de regel daar ook moet gelden.
Toont je browser iets anders, open dan het paneel Netwerk, herlaad de pagina en bekijk het betreffende verzoek. Vergelijk de URL na omleidingen, de methode en de aanmeldstatus. Een gecachet of gepersonaliseerd browserantwoord hoeft niet overeen te komen met een openbaar verzoek vanaf een andere locatie. Dit formulier verstuurt je gebruikerscookies niet en laat je geen eigen authenticatieheaders toevoegen.
Controleer ook of een ander hulpmiddel HEAD gebruikte in plaats van GET. RFC 9110 legt uit dat HEAD geen antwoordbody heeft en sommige tijdens inhoudsgeneratie bepaalde velden mag weglaten. Screpy gebruikt GET, maar stopt vóór het downloaden van de body. Vergelijkbare methoden en verzoekvoorwaarden helpen verschillen onderzoeken; ze maken niet ieder serverantwoord identiek.