Browse 50+ HTTP headers with descriptions and examples, build a security header set visually, parse raw HTTP headers instantly, and generate ready-to-use Apache .htaccess and Nginx config snippets.
Browse and search 50+ HTTP headers grouped by category. Click any header to see its description, common values, and an example.
Select and configure security headers below, then copy the generated snippet for Apache (.htaccess) or Nginx.
<!-- CSP -->
<div class="hh-builder-section">
<div class="hh-builder-sec-head">
Content-Security-Policy
<span class="hh-builder-sec-desc">— Controls allowed resource origins</span>
</div>
<div class="hh-enable-row">
<input type="checkbox" id="hh-b-csp" onchange="hhBuild()">
<label for="hh-b-csp">Enable CSP header</label>
</div>
<div class="hh-field-group" id="hh-b-csp-fields" style="display:none;">
<div class="hh-field-row">
<span class="hh-field-label">default-src</span>
<select class="hh-select" id="hh-csp-default" onchange="hhBuild()">
<option value="'self'">'self'</option>
<option value="'self' 'unsafe-inline'">'self' 'unsafe-inline'</option>
<option value="'none'">'none'</option>
<option value="*">* (any)</option>
</select>
</div>
<div class="hh-field-row">
<span class="hh-field-label">script-src</span>
<input type="text" class="hh-input" id="hh-csp-script" placeholder="'self' (leave blank to inherit)" oninput="hhBuild()">
</div>
<div class="hh-field-row">
<span class="hh-field-label">style-src</span>
<input type="text" class="hh-input" id="hh-csp-style" placeholder="'self' (leave blank to inherit)" oninput="hhBuild()">
</div>
<div class="hh-field-row">
<span class="hh-field-label">img-src</span>
<input type="text" class="hh-input" id="hh-csp-img" placeholder="'self' data: (leave blank to inherit)" oninput="hhBuild()">
</div>
<div class="hh-field-row">
<span class="hh-field-label">frame-src</span>
<input type="text" class="hh-input" id="hh-csp-frame" placeholder="'none' (leave blank to inherit)" oninput="hhBuild()">
</div>
</div>
</div>
<!-- HSTS -->
<div class="hh-builder-section">
<div class="hh-builder-sec-head">Strict-Transport-Security <span class="hh-builder-sec-desc">— HTTPS enforcement</span></div>
<div class="hh-enable-row">
<input type="checkbox" id="hh-b-hsts" onchange="hhBuild()" checked>
<label for="hh-b-hsts">Enable HSTS</label>
</div>
<div class="hh-field-group">
<div class="hh-field-row">
<span class="hh-field-label">max-age</span>
<select class="hh-select" id="hh-hsts-age" onchange="hhBuild()" style="max-width:220px;">
<option value="2592000">30 days (2592000)</option>
<option value="15552000">6 months (15552000)</option>
<option value="31536000" selected>1 year (31536000)</option>
</select>
</div>
<div class="hh-enable-row" style="padding:0;border:none;">
<input type="checkbox" id="hh-hsts-sub" onchange="hhBuild()" checked>
<label for="hh-hsts-sub">includeSubDomains</label>
</div>
<div class="hh-enable-row" style="padding:0;border:none;">
<input type="checkbox" id="hh-hsts-pre" onchange="hhBuild()">
<label for="hh-hsts-pre">preload</label>
</div>
</div>
</div>
<!-- X-Frame-Options -->
<div class="hh-builder-section">
<div class="hh-builder-sec-head">X-Frame-Options <span class="hh-builder-sec-desc">— Clickjacking protection</span></div>
<div class="hh-enable-row">
<input type="checkbox" id="hh-b-xframe" onchange="hhBuild()" checked>
<label for="hh-b-xframe">Enable X-Frame-Options</label>
</div>
<div class="hh-field-group">
<div class="hh-field-row">
<span class="hh-field-label">Value</span>
<select class="hh-select" id="hh-xframe-val" onchange="hhBuild()" style="max-width:220px;">
<option value="SAMEORIGIN" selected>SAMEORIGIN</option>
<option value="DENY">DENY</option>
</select>
</div>
</div>
</div>
<!-- X-Content-Type-Options -->
<div class="hh-builder-section">
<div class="hh-builder-sec-head">X-Content-Type-Options <span class="hh-builder-sec-desc">— MIME sniffing prevention</span></div>
<div class="hh-enable-row">
<input type="checkbox" id="hh-b-xcto" onchange="hhBuild()" checked>
<label for="hh-b-xcto">Enable (always nosniff)</label>
</div>
</div>
<!-- Referrer-Policy -->
<div class="hh-builder-section">
<div class="hh-builder-sec-head">Referrer-Policy <span class="hh-builder-sec-desc">— Controls referrer info sent</span></div>
<div class="hh-enable-row">
<input type="checkbox" id="hh-b-rp" onchange="hhBuild()" checked>
<label for="hh-b-rp">Enable Referrer-Policy</label>
</div>
<div class="hh-field-group">
<div class="hh-field-row">
<span class="hh-field-label">Policy</span>
<select class="hh-select" id="hh-rp-val" onchange="hhBuild()">
<option value="no-referrer">no-referrer</option>
<option value="no-referrer-when-downgrade">no-referrer-when-downgrade</option>
<option value="strict-origin-when-cross-origin" selected>strict-origin-when-cross-origin</option>
<option value="same-origin">same-origin</option>
<option value="origin">origin</option>
</select>
</div>
</div>
</div>
<!-- Permissions-Policy -->
<div class="hh-builder-section">
<div class="hh-builder-sec-head">Permissions-Policy <span class="hh-builder-sec-desc">— Browser feature control</span></div>
<div class="hh-enable-row">
<input type="checkbox" id="hh-b-pp" onchange="hhBuild()">
<label for="hh-b-pp">Enable Permissions-Policy</label>
</div>
<div class="hh-field-group" id="hh-b-pp-fields" style="display:none;">
<div class="hh-enable-row" style="padding:0;border:none;">
<input type="checkbox" id="hh-pp-cam" onchange="hhBuild()" checked>
<label for="hh-pp-cam">camera=()</label>
</div>
<div class="hh-enable-row" style="padding:0;border:none;">
<input type="checkbox" id="hh-pp-mic" onchange="hhBuild()" checked>
<label for="hh-pp-mic">microphone=()</label>
</div>
<div class="hh-enable-row" style="padding:0;border:none;">
<input type="checkbox" id="hh-pp-geo" onchange="hhBuild()" checked>
<label for="hh-pp-geo">geolocation=()</label>
</div>
<div class="hh-enable-row" style="padding:0;border:none;">
<input type="checkbox" id="hh-pp-pay" onchange="hhBuild()">
<label for="hh-pp-pay">payment=()</label>
</div>
<div class="hh-enable-row" style="padding:0;border:none;">
<input type="checkbox" id="hh-pp-usb" onchange="hhBuild()">
<label for="hh-pp-usb">usb=()</label>
</div>
</div>
</div>
</div><!-- /.hh-builder-left -->
<div class="hh-builder-right">
<div class="hh-out-box">
<div class="hh-out-topbar">
<span class="hh-out-label">Generated Config</span>
<div class="hh-out-actions">
<div class="hh-format-btns">
<button class="hh-format-btn hh-fmt-active" id="hh-fmt-apache" onclick="hhSetFmt('apache')">Apache</button>
<button class="hh-format-btn" id="hh-fmt-nginx" onclick="hhSetFmt('nginx')">Nginx</button>
</div>
<button class="hh-copy-btn" id="hh-build-copy" onclick="hhCopyBuild()">Copy</button>
</div>
</div>
<pre class="hh-out-code" id="hh-build-out"></pre>
</div>
</div>
Paste raw HTTP response headers below and click Parse to get a formatted, explained breakdown of each header.
Paste headers above and click Parse to see the breakdown here.
Related Tools
Reference HTTP status codes — HTTP Status Codes
Generate Apache config — .htaccess Generator
Encode and decode data — Base64 Encoder / Decoder
