QCLOUD APIGATEWAY HTTP常用header字段整理
HTTP 消息头允许客户端和服务器通过 request和 response传递附加信息。一个请求头由不区分大小写的名称后跟一个冒号“:”,冒号后跟具体的值(不带换行符)组成。该值前面的引导空白会被忽略。
自定专用消息头可通过’X-’ 前缀来添加;但是由于其在非标准字段标准化使用时造成的不便之处,这种用法被IETF在2012年6月发布的 RFC5548 中明确弃用;
根据不同上下文,可将消息头分为:
- 一般头: 同时适用于请求和响应消息,但与最终消息主体中传输的数据无关的消息头。
- 请求头: 包含有关要获取的资源或客户端本身更多信息的消息头。
- 响应头: 包含有关服务器响应的补充信息,如其位置或服务器本身(名称和版本等)的消息头。
- 实体头: 包含有关实体主体的更多信息,比如主体长(Content-Length)度或其MIME类型。
0、qcloud apigateway自定义头
- X-Api-ID,该字段记录qcloud apigateway API ID
- X-Service-RateLimit,该字段记录所匹配到的发布环境限速
- X-UsagePlan-RateLimit,该字段记录对应请求的使用的API-KEY对应到的使用计划的限速值
- X-UsagePlan-Quota,该字段记录对应请求的使用的API-KEY对应到的使用计划的限额值
1、一般头
- Cache-Control 通用消息头被用于在http 请求和响应中通过指定指令来实现缓存机制。缓存指令是单向的, 这意味着在请求设置的指令,在响应中不一定包含相同的指令。
- Connection 头(header) 决定当前的事务完成后,是否会关闭网络连接。如果该值是“keep-alive”,网络连接就是持久的,不会关闭,使得对同一个服务器的请求可以继续在该连接上完成。
- Content-Disposition 消息头指示回复的内容该以何种形式展示,是以内联的形式(即网页或者页面的一部分),还是以附件的形式下载并保存到本地。
- Date 是一个通用首部,其中包含了消息生成的日期和时间。
- Keep-Alive 是一个通用消息头,允许消息发送者暗示连接的状态,还可以用来设置超时时长和最大请求数。
- Pragma 是一个在 HTTP/1.0 中规定的通用首部,这个首部的效果依赖于不同的实现,所以在“请求-响应”链中可能会有不同的效果。在HTTP 1.0中作为 Cache-Control 的功能
- Via 是一个通用首部,是由代理服务器添加的,适用于正向和反向代理,在请求和响应首部中均可出现。这个消息首部可以用来追踪消息转发情况,防止循环请求,以及识别在请求或响应传递链中消息发送者对于协议的支持能力。
2、请求头
- Accept 请求头用来告知客户端可以处理的内容类型,这种内容类型用MIME类型来表示。
- Accept-Charset 请求头用来告知(服务器)客户端可以处理的字符集类型。
- Accept-Encoding 会将客户端能够理解的内容编码方式——通常是某种压缩算法——进行通知。
- Accept-Language请求头允许客户端声明它可以理解的自然语言,以及优先选择的区域方言。
- Authorization 请求消息头含有服务器用于验证用户代理身份的凭证,通常会在服务器返回401 Unauthorized 状态码以及WWW-Authenticate 消息头之后在后续请求中发送此消息头。
- Cookie 是一个请求首部,其中含有先前由服务器通过 Set-Cookie 首部投放并存储到客户端的 HTTP cookies。
- Expect 是一个请求消息头,包含一个期望条件,表示服务器只有在满足此期望条件的情况下才能妥善地处理请求。
- From 中包含一个电子邮箱地址,这个电子邮箱地址属于发送请求的用户代理的实际掌控者的人类用户。
- Host 请求头指明了服务器的域名(对于虚拟主机来说),以及(可选的)服务器监听的TCP端口号。
- If-Match 的使用表示这是一个条件请求。在请求方法为 GET 和 HEAD 的情况下,服务器仅在请求的资源满足此首部列出的 ETag 之一时才会返回资源。而对于 PUT 或其他非安全方法来说,只有在满足条件的情况下才可以将资源上传。
- If-Modified-Since 是一个条件式请求首部,服务器只在所请求的资源在给定的日期时间之后对内容进行过修改的情况下才会将资源返回,状态码为 200 。
- If-None-Match 是一个条件式请求首部。对于 GET 和 HEAD 请求方法来说,当且仅当服务器上没有任何资源的 ETag 属性值与这个首部中列出的相匹配的时候,服务器端会才返回所请求的资源,响应码为 200 。
- If-Range HTTP 请求头字段用来使得 Range 头字段在一定条件下起作用
- If-Unmodified-Since 只有当资源在指定的时间之后没有进行过修改的情况下,服务器才会返回请求的资源,或是接受 POST 或其他 non-safe 方法的请求。
- Range 是一个请求首部,告知服务器返回文件的哪一部分。
- Origin 指示了请求来自于哪个站点。该字段仅指示服务器名称,并不包含任何路径信息。该首部用于 CORS 请求或者 POST 请求。除了不包含路径信息,该字段与 Referer 首部字段相似。
- Referer 首部包含了当前请求页面的来源页面的地址,即表示当前页面是通过此来源页面里的链接进入的。
- User-Agent 首部包含了一个特征字符串,用来让网络协议的对端来识别发起请求的用户代理软件的应用类型、操作系统、软件开发商以及版本号。
- X-Forwarded-For
- X-Forwarded-Host
- X-Forwarded-Proto
3、响应头
- Accept-Range 响应用于标识自身支持范围请求(partial requests)。
- Age 消息头里包含消息对象在缓存代理中存贮的时长,以秒为单位。
- Content-Range 显示的是一个数据片段在整个文件中的位置。
- Content-Security-Policy 允许站点管理者在指定的页面控制用户代理的资源。
- ETag HTTP响应头是资源的特定版本的标识符。
- Expires 头指定了一个日期/时间, 在这个日期/时间之后,HTTP响应被认为是过时的;
- Last-Modified 是一个响应首部,其中包含源头服务器认定的资源做出修改的日期及时间。
- Location 首部指定的是需要将页面重新定向至的地址。一般在响应码为3xx的响应中才会有意义。
- Server 首部包含了处理请求的源头服务器所用到的软件相关信息。
- Set-Cookie 被用来由服务器端向客户端发送 cookie。
- Trailer 是一个响应首部,允许发送方在分块发送的消息后面添加额外的元信息,这些元信息是随着消息主体的发送动态生成的,比如消息完整性校验,数字签名,或者后处理状态等。
- Transfer-Encoding 消息首部指明了将 entity 安全传递给用户所采用的编码形式。
- Vary 是一个HTTP响应头部信息,它决定了对于未来的一个请求头,应该用一个缓存的回复(response)还是向源服务器请求一个新的回复。
4、实体头
- Allow 首部字段用于枚举资源所支持的 HTTP 方法的集合。
- Content-Encoding 是一个实体消息首部,用于对特定媒体类型的数据进行压缩。
- Content-Language 是一个 entity header (实体消息首部),用来说明访问者希望采用的语言或语言组合
- Content-Length 是一个实体消息首部,用来指明发送给接收方的消息主体的大小
- Content-Location 首部指定的是要返回的数据的地址选项。最主要的用途是用来指定要访问的资源经过内容协商后的结果的URL。
- Content-Type 实体头部用于指示资源的MIME类型 media type 。
响应首部 Access-Control-Allow-Headers 用于 preflight request (预检请求)中,列出了将会在正式请求的 Access-Control-Expose-Headers 字段中出现的首部信息。
简单首部,如 simple headers、Accept、Accept-Language、Content-Language、Content-Type (只限于解析后的值为 application/x-www-form-urlencoded、multipart/form-data 或 text/plain 三种MIME类型(不包括参数)),它们始终是被支持的,不需要在这个首部特意列出。