Request Headers
参数 | 含义 | 实例 |
Accept | 指定客户端能够接收的内容类型 | Accept: text/plain, text/html,application/json |
Accept-Charset | 浏览器可以接受的字符编码集。 | Accept-Charset: iso-8859-5 |
Accept-Encoding | 指定浏览器可以支持的web服务器返回内容压缩编码类型。 | Accept-Encoding: compress, gzip |
Accept-Language | 浏览器可接受的语言 | Accept-Language: en,zh |
Accept-Ranges | 可以请求网页实体的一个或者多个子范围字段 | Accept-Ranges: bytes |
Authorization | HTTP授权的授权证书 | Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== |
Cache-Control | 指定请求和响应遵循的缓存机制 | Cache-Control: no-cache |
Connection | 表示是否需要持久连接。(HTTP 1.1默认进行持久连接) | Connection: close |
Content-Length | 请求的内容长度 | Content-Length: 348 |
Content-Type | 请求的与实体对应的MIME信息 | Content-Type: application/x-www-form-urlencoded |
Date | 请求发送的日期和时间 | Date: Tue, 15 Nov 2010 08:12:31 GMT |
Host | 指定请求的服务器的域名和端口号 | |
Referer | 先前网页的地址,当前请求网页紧随其后,即来路 | |
User-Agent | User-Agent的内容包含发出请求的用户信息,浏览器版本信息 | User-Agent: Mozilla/5.0 (Linux; X11) |
Warning | 关于消息实体的警告信息 | |
If-None-Match | 如果内容未改变返回304代码,参数为服务器先前发送的Etag,与服务器回应的Etag比较判断是否改变 | If-None-Match: “737060cd8c284d8af7ad3082f209582d” |
If-Match | 只有请求内容与实体相匹配才有效 | If-Match: “737060cd8c284d8af7ad3082f209582d” |
Response Headers(响应头)
参考博客:https://blog.csdn.net/GISuuser/article/details/119577048
参数 | 含义 | 实例 |
Content-Length | 数据长度 | |
Content-Language | 服务器的语言环境 | |
Refresh | 告诉浏览器隔多长时间刷新一次 | |
ETag | 与缓存相关的头 | |
Server | 服务器通过这个头,告诉浏览器服务器的类型 | ApacheApache |
Access-Control-Allow-Origin | 指定允许其他域名访问 | /一般用法(*,指定域,动态设置) |
Access-Control-Allow-Credentials | 是否允许后续请求携带认证信息(cookies) | 该值只能是true,否则不返回 |
如果你使用的域名是origin允许的,Response Headers里会多出几个基本头信息字段:
判断是否加了跨域信息
- Access-Control-Allow-Credential: true,
- Access-Control-Allow-Headers:origin, content-type, accept, x-request-with,
- Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS,
- Access-Control-Allow-Origin: http:localhost:8000
请求头中的Referer参数可用于防盗链
Referer是 HTTP请求header 的一部分,当浏览器(或者模拟浏览器行为)向web 服务器发送请求的时候,头像信息里有包含 Referer。比如我在www.google.com 里有一个www.baidu.com 链接,那么点击这个www.baidu.com ,它的header 信息里就有:
Referer=http://www.google.com
由此可以看出来吧。它就是表示一个来源。
Referer的作用
a.防盗链。可以根据请求头里的这个参数图片的访问权限,只允许自己公司网站访问。可通过java代码和nginx反向代理实现防盗链
实现方案:写个java拦截器,获取文件url的请求头信息,当参数Referer值在白名单中则放行,否则重定向到错误页面或者返回错误图片
像网站中的一些静态文件js,css,图片等会存在缓存问题,可以在url后面增加个时间戳参数来解决,但是不一定实时有效
浏览器缓存带来的问题?
缓存固有好处,但是js或者css未及时更新,导致每个用户看到的效果不一样或者出错
如何发现是缓存文件?
当http中的状态码为304时,表示浏览器读的是本地资源
如何解决缓存?
a.shift+f5 可以强制刷新缓存,刷新后再看状态码就变为200了
b.手动清空浏览器缓存
c.文件url加时间戳方案