首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

HTTP Header字段你了解多少?

说到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:*

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230628A0159H00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券