OSWE HTTP 协议基础
本文最后更新于 2026年5月9日 下午
HTTP 协议请求方法
| 方法 | 作用 | 常见用途 |
|---|---|---|
GET |
获取资源 | 打开网页、查询数据 |
POST |
提交数据 | 登录、注册、提交表单、上传数据 |
PUT |
整体更新资源 | 更新用户信息、上传完整文件 |
PATCH |
部分更新资源 | 只修改某个字段 |
DELETE |
删除资源 | 删除用户、删除文章、删除文件 |
HEAD |
只获取响应头 | 判断资源是否存在、检查文件大小 |
OPTIONS |
查询服务器支持的方法 | CORS 预检请求 |
TRACE |
回显请求内容 | 调试用,生产环境通常禁用 |
CONNECT |
建立隧道连接 | HTTPS 代理、HTTP 代理隧道 |
HTTP 协议请求头
Cookie:用于客户端将浏览器中保存的 Cookie 携带给服务器,常用于维持登录状态、会话识别和用户跟踪等场景。
Content-Type:用于告诉 Web 应用程序请求正文中使用的数据格式,例如 application/x-www-form-urlencoded、multipart/form-data、application/json、application/xml、application/x-yaml 等。
Accept-Language:用于告诉 Web 应用程序客户端偏好的语言类型,服务器可根据该字段返回对应语言的页面内容,例如 zh-CN、en-US 等。
Content-Length:用于表示请求正文的字节长度,服务器可根据该字段判断请求体大小和读取范围;如果该字段出现在响应头中,则表示响应正文的字节长度。
Host:用于指定客户端请求的目标主机名和端口,是 HTTP/1.1 请求中的必需字段,服务器可根据 Host 头区分不同站点或虚拟主机。
User-Agent:用于标识客户端的软件信息,例如浏览器类型、操作系统、爬虫工具或脚本客户端等,服务器可能会根据该字段返回不同内容。
Accept:用于告诉服务器客户端可以接收的响应内容类型,例如 text/html、application/json、image/webp 等。
Accept-Encoding:用于告诉服务器客户端支持的内容压缩方式,例如 gzip、deflate、br 等,服务器可根据该字段返回压缩后的响应内容。
Referer:用于表示当前请求来源于哪个页面,常用于来源统计、防盗链和 CSRF 防护等场景,该字段可能为空,也可能被伪造。
Origin:用于表示跨域请求的来源站点,常见于 CORS 跨域请求中,服务器通常会根据 Origin 判断是否允许跨域访问。
Authorization:用于携带身份认证信息,例如 Basic Token、Bearer Token、JWT 等,常见于 API 接口认证场景。
Connection:用于控制当前连接的管理方式,例如 keep-alive 或 close。
Cache-Control:用于控制缓存策略,客户端和服务器都可以使用该字段影响缓存行为,例如 no-cache、no-store、max-age 等。
If-Modified-Since:用于配合缓存验证,客户端告诉服务器本地缓存资源的最后修改时间,如果资源未变化,服务器可返回 304 Not Modified。
If-None-Match:用于配合 ETag 进行缓存验证,如果资源标识未变化,服务器可返回 304 Not Modified。
X-Requested-With:常用于标识请求是否由 Ajax 发起,典型值为 XMLHttpRequest,部分后端会根据该字段区分普通请求和异步请求。
X-HTTP-Method-Override:用于在不支持某些 HTTP 方法的场景下,通过请求头覆盖原始请求方法,例如客户端实际发送 POST 请求,但通过该字段声明为 PUT、PATCH 或 DELETE,后端可能会按照覆盖后的方法处理请求。
X-Forwarded-For:用于记录客户端的真实 IP 地址,常见于经过代理、负载均衡、CDN 或反向代理的场景,服务器可能会根据该字段获取用户来源 IP,但如果未经过可信代理处理,该字段可能被客户端伪造。
X-Forwarded-Host:用于记录客户端原始请求中的 Host 值,常见于反向代理或负载均衡环境,后端应用可能根据该字段生成跳转链接、回调地址或绝对 URL,如果校验不当,可能引发 Host 头注入、缓存投毒等问题。
X-Forwarded-Proto:用于记录客户端原始请求使用的协议,例如 http 或 https,常见于反向代理场景,后端应用可能根据该字段判断当前请求是否为 HTTPS 请求。
X-Real-IP:用于记录客户端真实 IP,常见于 Nginx 反向代理环境,作用类似于 X-Forwarded-For。
Forwarded:标准化的代理转发请求头,可用于记录客户端 IP、协议和 Host 等信息,例如 for=、proto=、host=。
参考网站(非常全面):
1 | |
HTTP GET / POST 请求示例
1 | |
通过 & 符号连接多个请求参数:
1 | |
GET 查询参数和 POST 请求体参数同时传递:
1 | |
参数污染
1 | |
GET 查询字符串传递数组参数
1 | |
上传文件
1 | |
发送 XML 数据
1 | |
发送 JSON 数据
1 | |
发送 YAML 数据
1 | |
发起 Basic 认证
1 | |
发送 WebSocket 数据
1 | |
Thinks
以上内容已同步至 知识库 ,方便随时查阅,详情请访问下方链接:
1 | |
如果我的文章对您有帮助或您希望与我更多交流,欢迎点击「关于我」,通过页面中的微信公众号、邮箱或 Discord 与我联系;若您发现文章中存在任何错误或不足之处,也非常欢迎通过以上方式指出,在此一并致以衷心的感谢。 😊🫡
最后,祝您生活愉快!🌞✨