【第三方网站代码登记测试_HTTP头语法代码详解】
HTTP 头部是 HTTP 协议的重要组成部分,它允许客户端和服务器在请求和响应中传递附加信息,这对于控制通信行为、定义内容格式、实施安全策略等都相当重要。
HTTP 头部概述
HTTP 头部是位于 HTTP 请求或响应起始行之后、消息体之前的一系列键值对。它们与消息体之间以一个空行分隔。
语法:Header-Name: value1, value2, ...
头部名称不区分大小写,但惯例使用连字符分隔的单词,如 Content-Type。
值可以是单个值,也可以是由逗号分隔的多个值。
分类:根据上下文,头部可分为:
请求头:由客户端发送,包含关于请求和客户端本身的信息。
响应头:由服务器发送,包含关于响应和服务器本身的信息。
通用头:既可出现在请求中,也可出现在响应中。
实体头:描述消息体内容的元数据(在 HTTP/2 及以后规范中,此概念已被“表示头”部分取代)。
请求头详解
这些头部由客户端设置,告知服务器客户端的能力、期望及请求的上下文。
Host
描述:指定请求的目标服务器域名和端口号。这是 HTTP/1.1 唯一必须的请求头。
用途:当一台服务器托管多个域名(虚拟主机)时,服务器依赖此头部来区分请求应路由到哪个网站。
示例:Host: api.example.com:8080
User-Agent
描述:包含发起请求的应用程序(浏览器、爬虫、SDK等)的标识信息。
用途:服务器可用于统计、兼容性处理(如返回特定于浏览器的代码)或反爬虫策略。
示例:User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 ...
Accept
描述:告知服务器客户端能够处理的媒体类型(MIME 类型)及其优先级。
用途:内容协商。服务器根据此头部返回最合适的格式(如 JSON、XML、HTML)。
示例:
Accept: application/json (只接受 JSON)
Accept: text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8 (优先 HTML,其次是 XHTML、XML,最后是任何类型。q 值表示权重,范围 0-1)
Accept-Encoding
描述:告知服务器客户端支持的内容压缩算法。
用途:减少传输数据量,提升性能。
示例:Accept-Encoding: gzip, deflate, br (支持 gzip、deflate 和 Brotli 压缩)
Authorization
描述:包含用于向服务器证明身份的凭证。
用途:认证。
常见模式:
Bearer Token:Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
Basic Auth:Authorization: Basic base64(username:password)
API Key:Authorization: Api-Key xxxxxx
Content-Type
描述:在带有消息体的请求(如 POST, PUT)中,指定请求体的媒体类型。
用途:告知服务器如何解析请求体。
示例:
Content-Type: application/json (JSON 数据)
Content-Type: application/x-www-form-urlencoded (表单数据)
Content-Type: multipart/form-data; boundary=something (用于文件上传)
Content-Length
描述:以字节为单位,指明请求体的长度。
用途:服务器据此知道需要读取多少数据。对于没有消息体的请求(如 GET),不应存在此头部。
响应头详解
这些头部由服务器设置,描述了响应的特性,并指导客户端如何处理响应。
Server
描述:包含处理请求的服务器软件信息。
用途:用于信息展示,但出于安全考虑,生产环境常被隐藏。
示例:Server: nginx/1.18.0
Content-Type
描述:告知客户端响应体的实际媒体类型。
用途:客户端(如浏览器)据此决定如何渲染或处理内容。
示例:Content-Type: application/json; charset=utf-8
Content-Length
描述:以字节为单位,指明响应体的长度。
用途:客户端据此知道需要读取多少数据。
Content-Encoding
描述:表明对响应体使用了何种压缩编码。
用途:客户端需要据此解压。
示例:Content-Encoding: gzip
Cache-Control
描述:最重要的缓存控制头,用于指定请求/响应链中的所有缓存机制都必须遵守的指令。
常用指令:
public:响应可被任何缓存存储。
private:响应仅适用于单个用户,不能被共享缓存(如 CDN)存储。
no-cache:在使用缓存的副本前,必须向源服务器验证其有效性。
no-store:禁止任何缓存存储请求和响应。
max-age=<seconds>:资源被视为新鲜的最长时间。
示例:Cache-Control: public, max-age=3600 (缓存 1 小时)
ETag / Last-Modified
描述:验证器头部。ETag 是资源的特定版本标识符(通常是哈希值)。Last-Modified 表示资源最后修改时间。
用途:用于条件请求。客户端下次请求时,可带上 If-None-Match(值为 ETag)或 If-Modified-Since(值为 Last-Modified)。如果资源未变,服务器返回 304 Not Modified,节省带宽。
Location
描述:与 3xx 重定向响应或 201 Created 响应配合使用,指定重定向的目标 URL 或新创建资源的 URL。
示例:Location: /new-page.html
Set-Cookie
描述:由服务器发送,用于在客户端(浏览器)设置一个 Cookie。
属性:
Name=Value:必需的键值对。
Expires/Max-Age:定义 Cookie 的有效期。
Domain / Path:定义 Cookie 的作用范围。
HttpOnly:阻止 JavaScript 访问此 Cookie,有助于缓解 XSS 攻击。
Secure:仅通过 HTTPS 协议发送 Cookie。
SameSite:控制跨站请求时是否发送 Cookie,用于缓解 CSRF 攻击。
示例:Set-Cookie: sessionId=abc123; Expires=Wed, 21 Oct 2025 07:28:00 GMT; HttpOnly; Secure; SameSite=Lax
安全头详解
这些头部对于保护网站和用户免受常见网络攻击很重要。
Strict-Transport-Security
描述:告诉浏览器在指定时间内,只能通过 HTTPS 访问该域名。
用途:防止 SSL 剥离攻击。
示例:Strict-Transport-Security: max-age=31536000; includeSubDomains
Content-Security-Policy
描述:内容安全策略。通过白名单机制,限制页面可以加载哪些来源的资源(脚本、样式、图片、字体等)。
用途:非常有效地缓解 XSS 和数据注入攻击。
示例:Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted.cdn.com
X-Content-Type-Options
描述:指示浏览器不要嗅探 MIME 类型,必须遵循 Content-Type 头中声明的类型。
用途:防止 MIME 类型混淆攻击。
示例:X-Content-Type-Options: nosniff
X-Frame-Options
描述:控制页面是否可以在 <frame>, <iframe>, <embed> 或 <object> 中显示。
用途:防止点击劫持攻击。
示例:X-Frame-Options: DENY (完全禁止被嵌入)
Access-Control-Allow-Origin
描述:CORS(跨源资源共享) 头。指定哪些外域可以访问该资源。
用途:解除浏览器的同源策略限制,实现安全的跨域访问。
示例:
Access-Control-Allow-Origin: https://partner.com (允许特定域名)
Access-Control-Allow-Origin: * (允许所有域名,不推荐用于携带凭证的请求)
自定义头
开发者可以创建自定义头部,通常以 X- 为前缀(非强制)。
示例:
X-Request-ID:用于追踪一个请求在不同服务间的流转。
X-CSRF-Token:用于防止跨站请求伪造攻击。
X-RateLimit-Limit:用于 API 限流,告知客户端在特定时间窗口内的请求上限。
精通 HTTP 头部是进行 API 设计、调试、性能优化和安全加固的基础。理解每个头部的语义和用途,能够帮助你更有效地构建和维护 Web 应用。
文章来源:卓码软件测评
精彩推荐:点击蓝字即可
▲软件登记测试:外部接口兼容性测试https://www.zmtests.com/skillarticle/20251010135842315
▲WebAPP应用第三方JavaScript库安全风险检测https://www.zmtests.com/skillarticle/20250829142653413
▲WEB应用搜索功能的安全测试SQL注入与逻辑漏洞https://www.zmtests.com/skillarticle/20250828112352373