说到HTTP的Header,大家并不陌生。Header主要分为请求头(Request Header)和服务器返回的头部(Response Header),今天我们针对这两部分来详细的聊聊吧!
1. 请求头(Request Header)
1.1 Host
这个字段主要指定目标服务器的域名或者IP,这个字段是必须字段。
1.2 User-Agent
发送请求的用户代理,一般都是浏览器的标识,标识中包含浏览器相关信息、操作系统、设备信息等。我们可以通过该字段判断当前机型及浏览器类型等
1.3 Accept
申明当前客户端允许接收的内容类型。比如:Accept: */*,客户端声明自己可以接受任何格式的数据
1.4 Content-Type
HTTP请求提交的内容类型。一般只有post提交时才需要设置该属性。
application/x-www-form-urlencoded:表单数据向服务器提交时所采用的编码类型,默认的缺省值就是“application/x-www-form-urlencoded”。然而,在向服务器发送大量的文本、包含非ASCII字符的文本或二进制数据时这种编码方式效率很低
multipart/form-data:在文件上传时,所使用的编码类型应当是“multipart/form-data”,它既可以发送文本数据,也支持二进制数据上载。
1.5 Authorization
身份证验证的凭据,用于访问受保护的资源。一般都是接口权限的token。
1.6 Connection
表示是否需要持久连接。如果web服务器端看到这里的值为“Keep-Alive”,或者看到请求使用的是HTTP 1.1(HTTP 1.1默认进行持久连接),它就可以利用持久连接的优点,当页面包含多个元素时(例如Applet,图片),显著地减少下载所需要的时间。要实现这一点, web服务器需要在返回给客户端HTTP头信息中发送一个Content-Length(返回信息正文的长度)头,最简单的实现方法是:先把内容写入ByteArrayOutputStream,然 后在正式写出内容之前计算它的大小。
1.7 Keep-Alive
显示此HTTP连接的Keep-Alive时间。使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。
1.8 Cookie
HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器。
1.7 Referer
包含一个URL,用户从该URL代表的页面出发访问当前请求的页面。大部分防盗链就是通过该字段判断客户端的请求是否合法,如果该字段的值不是自己的域名,可以拒绝请求。
nginx通过该字段防盗链配置如下:
2.返回头(Response Header)
2.1 Content-Type
返回内容的MIME类型。示例:Content-Type: text/html; charset=utf-8
2.2 Content-Length
响应体的长度
2.3 Cache-Control
告诉浏览器的缓存机制是否可以缓存及哪种类型
2.4 Expires
设置了Cache-Control缓存时,expires缓存过期时间
2.5 Content-Encoding
服务器对响应数据的编码方式,但这里的编码方式不同于编码字符集(GB2312,UTF-8等),而是(通常)指压缩方式,例如Content-Encoding:gzip
2.6 Set-Cookie
设置Http Cookie。示例:Set-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1
2.7 Location
用来重定向接收方到非请求URL的位置来完成请求或标识新的资源。这个值是重定向的url
2.8 ETag
(Entity-Tag的缩写)资源的一个标识,类似于key-value pair(键值对)中的key。ETag通常用于校验一个资源实体有没有被修改过。在数据缓存和PUT方法更新资源时候有用处。例如:ETag: “737060cd8c284d8af7ad3082f209582d”
2.9 Access-Control-Allow-Origin
表面该站点可以被哪些网站进行跨域资源共享(cross-origin resource sharing,CORS)(请参考“同源策略”和“跨域之源共享”)。
允许所有域名都可以跨域请求:Access-Control-Allow-Origin:*
领取专属 10元无门槛券
私享最新 技术干货