HTTP请求首部字段及响应首部字段详解
作者:叹人间,美中不足今方信
这篇文章主要介绍了HTTP请求首部字段及响应首部字段,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
HTTP请求方法包括:POST、GET、PUT 、DELETE、OPTIONS等
对于除GET请求以外的HTTP请求
如果存在跨域请求
浏览器必须首先使用OPTIONS方法询问服务端是否允许跨域请求,然后才发起真正的请求,OPTIONS请求称为预检请求
HTTP请求首部字段,预检请求发送给服务器
Origin
- 预检请求或实际请求的原域名
- 不管是否为跨域请求
Origin字段总是被发送
Access-Control-Request-Method
- 预检请求
- 将实际请求的
HTTP方法告诉服务器
Access-Control-Request-Headers
- 预检请求
- 将实际请求所携带的首部字段告诉服务器
HTTP响应首部字段
Access-Control-Allow-Origin
- 服务器允许跨域访问的域
- 对于不需要携带身份凭证
- 服务器可以配置该属性为“*”
Access-Control-Allow-Origin: www.baidu.com
Access-Control-Allow-Methods
- 服务器允许跨域请求的方法
- 用于预检请求的响应
Access-Control-Allow-Headers
- 服务器允许跨域请求携带的首部字段
- 用于预检请求的响应
- 可以自定义
Access-Control-Allow-Headers: app-id
Access-Control-Allow-Credentials
- 服务器允许跨域请求携带身份凭证(
cookies、authorization headers、TLS client certificates等) - 如果允许,设置为
true - 如果不允许则不需要设置,因为此属性只有
true一个可选值 - 并且对于附带身份凭证的请求
Access-Control-Allow-Origin不能使用通配符
Access-Control-Allow-Credentials: true
Access-Control-Expose-Headers
- 服务器允许浏览器访问的头
- 默认情况下:
- 浏览器只能获取到
Cache-Control、Content-Language、Content-Type、Expires、Last-Modified等
Access-Control-Max-Age
- 服务器设置
OPTIONS预检的缓存时长(以秒为单位) - 在缓存时长内
- 这个域不再发起预检请求
- 可以直接发起真正的
HTTP请求
Access-Control-Max-Age: 28800
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
