📡 HTTP 응답 헤더 검사
URL을 입력하여 모든 응답 헤더를 가져와 보안, 캐시, CORS 등을 설명과 함께 검사.
완전 무료
가입 불필요
서버 처리
로그 · DB 없음
레이트 리밋
5 개 언어
다크 모드
📖 이 진단으로 알 수 있는 것
브라우저는 HTML을 읽기 전에 응답 헤더를 읽고, 거기 쓰인 지시에 따라 동작을 정합니다. 이 진단은 실제로 GET 하여 돌아온 헤더를 나열하고 보안·캐시·압축에 관련된 것을 추려냅니다. 헤더는 "설정했다고 생각했는데 안 되어 있는" 경우가 가장 많은 항목입니다. CDN이나 리버스 프록시가 중간에 바꾸거나 앱이 붙인 헤더를 nginx가 덮어쓰기 때문에, 반드시 실제 응답으로 확인하세요.
| 판정 항목 | 무엇을 보는가 | 걸렸을 때의 대처 |
|---|---|---|
Strict-Transport-Security |
적용되면 이후 그 도메인에는 http://로 써도 반드시 HTTPS로 접속합니다. 중간자에 의한 최초 다운그레이드를 막습니다. | max-age=31536000; includeSubDomains를 붙입니다. 서브도메인을 포함하면 HTTP 전용 서브도메인이 즉시 죽으므로, 먼저 모든 서브도메인을 HTTPS화한 뒤 적용하세요. |
X-Content-Type-Options |
nosniff를 보내면 브라우저는 내용을 추측하지 않고 선언된 Content-Type을 믿습니다. 이미지로 올라왔지만 실제로는 HTML인 파일이 HTML로 실행되는 것을 막습니다. |
모든 응답에 X-Content-Type-Options: nosniff를 보냅니다. 부작용이 거의 없으므로 사용자 업로드 파일이나 JSON API가 있다면 필수입니다. |
Content-Security-Policy |
읽어도 되는 스크립트나 이미지의 출처를 브라우저에 선언합니다. XSS가 성공해도 외부로 데이터를 보내지 못하게 하는 마지막 방어선입니다. | 곧바로 운영에서 강제하면 화면이 깨집니다. 먼저 Content-Security-Policy-Report-Only로 며칠 흘려보내고, 리포트에 나온 정당한 도메인을 허용 목록에 추가한 뒤 강제로 전환하세요. |
압축 (Content-Encoding) |
gzip / br가 없으면 HTML이나 JS가 비압축으로 전송됩니다. 전송량이 3~5배가 되어 표시 속도에 그대로 영향을 줍니다. | nginx라면 gzip on;에 더해 gzip_types에 application/javascript나 application/json을 명시합니다. 기본값은 text/html만 압축합니다. |
헤더는 요청 경로 어디에서나 바뀔 수 있습니다. 앱 → PHP-FPM → nginx → CDN 중 어디서 붙고 어디서 사라지는지 가려내려면, CDN을 거치지 않는 오리진 URL에도 같은 진단을 걸어 비교하는 것이 빠릅니다.