HTTP请求头前缀Sec-的含义、起源及作用是什么?
Sec-前缀请求头:起源、含义与作用 起源
Sec-前缀最早出现在WebSocket协议中,当初为了区分浏览器发起的合法WebSocket握手请求和恶意脚本伪造的请求,规范里引入了Sec-WebSocket-Key、Sec-WebSocket-Version这类头字段。后来这个前缀的设计思路被其他浏览器安全相关的规范沿用,逐渐成为浏览器专属受控请求头的约定——它没有单独的RFC文档,而是分散在各个具体技术规范(比如Fetch API、User-Agent Client Hints、WebSocket等)中定义。
含义:确实和Secure相关
没错,Sec-前缀的核心含义就是安全(Secure),更精准的定位是:这类请求头是浏览器专属控制的安全相关字段,前端JavaScript无法通过XMLHttpRequest、fetch等API主动设置或修改,只能由浏览器在特定场景下自动添加。
核心作用
- 抵御请求伪造攻击:比如
Sec-Fetch-*系列头,浏览器会根据请求的发起场景(比如页面导航、资源加载、iframe请求)自动填充,服务器可以通过这些头判断请求是否来自合法的浏览器上下文,有效防范CSRF、请求伪造类攻击。 - 保证信息真实性:像
Sec-CH-UA(客户端UA信息)、Sec-GPC(全局隐私控制)这类头,传递的是用户设备或隐私偏好信息,由于无法被脚本篡改,服务器能信任这些信息的真实性,用于合规适配或安全校验。 - 协议专属安全验证:以
Sec-WebSocket-*为例,这类头是WebSocket握手流程的核心验证部分,服务器通过校验这些头来确认请求是符合规范的WebSocket连接请求,拒绝非法的连接尝试。
内容的提问来源于stack exchange,提问作者emron
相关产品推荐
相关产品推荐

