HTTP系列1番外之头部字段大全
原文地址:https://www.jianshu.com/p/6e86903d74f7
常用标准请求头
| 字段 | 属性 | 举例 |
|---|---|---|
| Accept | 设置接受的内容类型 | Accept: text/plain |
| Accept-Charset | 设置接受的字符编码 | Accept-Charset: utf-8 |
| Accept-Encoding | 设置接受的编码格式 | Accept-Encoding: gzip, deflate |
| Accept-Datetime | 设置接受的版本时间 | Accept-Datetime: Thu, 31 May 2007 20:35:00 GMT |
| Accept-Language | 设置接受的语言 | Accept-Language: en-US |
| Authorization | 设置HTTP身份验证的凭证 | Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== |
| Cache-Control | 设置请求响应链上所有的缓存机制必须遵守的指令 | Cache-Control: no-cache |
| Connection | 设置当前连接和hop-by-hop协议请求字段列表的控制选项 | Connection: keep-alive |
| Content-Length | 设置请求体的字节长度 | Content-Length: 348 |
| Content-MD5 | 设置基于MD5算法对请求体内容进行Base64二进制编码 | Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ== |
| Content-Type | 设置请求体的MIME类型(适用POST和PUT请求) | Content-Type: application/x-www-form-urlencoded |
| Cookie | 设置服务器使用Set-Cookie发送的http cookie | Cookie: $Version=1; Skin=new; |
| Date | 设置报文发送的日期和时间 | Date: Tue, 15 Nov 1994 08:12:31 GMT |
| Expect | 标识客户端需要的特殊浏览器行为 | Expect: 100-continue |
| Forwarded | 披露客户端通过http代理连接web服务的源信息 | Forwarded: for=192.0.2.43, for=198.51.100.17 |
| From | 设置发送请求的用户的email地址 | From: user@example.com |
| Host | 设置服务器域名和TCP端口号,如果使用的是服务请求标准端口号,端口号可以省略 | Host: en.wikipedia.org:8080 |
| If-Match | 设置客户端的ETag,当时客户端ETag和服务器生成的ETag一致才执行,适用于更新自从上次更新之后没有改变的资源 | If-Match: "737060cd8c284d8af7ad3082f209582d |
| If-Modified-Since | 设置更新时间,从更新时间到服务端接受请求这段时间内如果资源没有改变,允许服务端返回304 Not Modified | If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT |
| If-None-Match | 设置客户端ETag,如果和服务端接受请求生成的ETage相同,允许服务端返回304 Not Modified | If-None-Match: "737060cd8c284d8af7ad3082f209582d" |
| If-Range | 设置客户端ETag,如果和服务端接受请求生成的ETage相同,返回缺失的实体部分;否则返回整个新的实体 | If-Range: "737060cd8c284d8af7ad3082f209582d" |
| If-Unmodified-Since | 设置更新时间,只有从更新时间到服务端接受请求这段时间内实体没有改变,服务端才会发送响应 | If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT |
| Max-Forwards | 限制代理或网关转发消息的次数 | Max-Forwards: 10 |
| Origin 标识跨域资源请求 | 标识跨域资源请求(请求服务端设置Access-Control-Allow-Origin响应字段) | Origin: http://www.example-social-network.com |
| Pragma | 设置特殊实现字段,可能会对请求响应链有多种影响 | Pragma: no-cache |
| Proxy-Authorization | 为连接代理授权认证信息 | Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== |
| Range | 请求部分实体,设置请求实体的字节数范围,具体可以参见HTTP/1.1中的Byte serving | Range: bytes=500-999 |
| Referer | 设置前一个页面的地址,并且前一个页面中的连接指向当前请求,意思就是如果当前请求是在A页面中发送的,那么referer就是A页面的url地址 | Referer: http://en.wikipedia.org/wiki/Main_Page |
| TE | 设置用户代理期望接受的传输编码格式,和响应头中的Transfer-Encoding字段一样 | TE: trailers, deflate |
| Upgrade | 请求服务端升级协议 | Upgrade: HTTP/2.0, HTTPS/1.3, IRC/6.9, RTA/x11, websocket |
| User-Agent | 用户代理的字符串值 | User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/21.0 |
| Via | 通知服务器代理请求 | Via: 1.0 fred, 1.1 example.com (Apache/1.1) |
| Warning | 实体可能会发生的问题的通用警告 | Warning: 199 Miscellaneous warning |
常用非标准请求头
| 字段 | 属性 | 举例 |
|---|---|---|
| X-Requested-With | 标识Ajax请求,大部分js框架发送请求时都会设置它为XMLHttpRequest | X-Requested-With: XMLHttpRequest |
| DNT | 请求web应用禁用用户追踪 | DNT: 1 (Do Not Track Enabled) |
| X-Forwarded-For | 一个事实标准,用来标识客户端通过HTTP代理或者负载均衡器连接的web服务器的原始IP地址 | X-Forwarded-For: client1, proxy1, proxy2; |
| X-Forwarded-Host | 一个事实标准,用来标识客户端在HTTP请求头中请求的原始host,因为主机名或者反向代理的端口可能与处理请求的原始服务器不同 | X-Forwarded-Host: en.wikipedia.org:8080 |
| X-Forwarded-Proto | 一个事实标准,用来标识HTTP原始协议,因为反向代理或者负载均衡器和web服务器可能使用http,但是请求到反向代理使用的是https | X-Forwarded-Proto: https |
| Front-End-Https | 微软应用程序和负载均衡器使用的非标准header字段 Front-End-Https: on | |
| X-Http-Method-Override | 请求web应用时,使用header字段中给定的方法(通常是put或者delete)覆盖请求中指定的方法(通常是post),如果用户代理或者防火墙不支持直接使用put或者delete方法发送请求时,可以使用这个字段。 | X-HTTP-Method-Override: DELETE |
| X-ATT-DeviceId | 允许更简单的解析用户代理在AT&T设备上的MakeModel/Firmware | X-Att-Deviceid: GT-P7320/P7320XXLPG |
| X-Wap-Profile | 设置描述当前连接设备的详细信息的xml文件在网络中的位置 | x-wap-profile: http://wap.samsungmobile.com/uaprof/SGH-I777.xml |
| Proxy-Connection | 早起HTTP版本中的一个误称,现在使用标准的connection字段 | Proxy-Connection: keep-alive |
| X-UIDH | 服务端深度包检测插入的一个唯一ID标识Verizon Wireless的客户 | X-UIDH: ... |
| X-Csrf-Token,X-CSRFToken,X-XSRF-TOKEN | 防止跨站请求伪造 | X-Csrf-Token: i8XNjC4b8KVok4uw5RftR38Wgp2BFwql |
| X-Request-ID,X-Correlation-ID | 标识客户端和服务端的HTTP请求 | X-Request-ID: f058ebd6-02f7-4d3f-942e-904344e8cde5 |
常用标准响应头
| 字段 | 属性 | 举例 |
|---|---|---|
| Access-Control-Allow-Origin | 指定哪些站点可以参与跨站资源共享 | Access-Control-Allow-Origin: * |
| Accept-Patch | 指定服务器支持的补丁文档格式,适用于http的patch方法 | Accept-Patch: text/example;charset=utf-8 |
| Accept-Ranges | 服务器通过byte serving支持的部分内容范围类型 | Accept-Ranges: bytes |
| Age | 对象在代理缓存中暂存的秒数 | Age: 12 |
| Allow | 设置特定资源的有效行为,适用方法不被允许的http 405错误 | Allow: GET, HEAD |
| Alt-Svc | 服务器使用"Alt-Svc"(Alternative Servicesde的缩写)头标识资源可以通过不同的网络位置或者不同的网络协议获取 | Alt-Svc: h2="http2.example.com:443"; ma=7200 |
| Cache-Control | 告诉服务端到客户端所有的缓存机制是否可以缓存这个对象,单位是秒 | Cache-Control: max-age=3600 |
| Connection | 设置当前连接和hop-by-hop协议请求字段列表的控制选项 | Connection: close |
| Content-Disposition | 告诉客户端弹出一个文件下载框,并且可以指定下载文件名 | Content-Disposition: attachment; filename="fname.ext" |
| Content-Encoding | 设置数据使用的编码类型 | Content-Encoding: gzip |
| Content-Language | 为封闭内容设置自然语言或者目标用户语言 | Content-Language: en |
| Content-Length | 响应体的字节长度 | Content-Length: 348 |
| Content-Location | 设置返回数据的另一个位置 | Content-Location: /index.htm |
| Content-MD5 | 设置基于MD5算法对响应体内容进行Base64二进制编码 | Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ== |
| Content-Range | 标识响应体内容属于完整消息体中的那一部分 | Content-Range: bytes 21010-47021/47022 |
| Content-Type | 设置响应体的MIME类型 | Content-Type: text/html; charset=utf-8 |
| Date | 设置消息发送的日期和时间 | Date: Tue, 15 Nov 1994 08:12:31 GMT |
| ETag | 特定版本资源的标识符,通常是消息摘要 | ETag: "737060cd8c284d8af7ad3082f209582d" |
| Expires | 设置响应体的过期时间 | Expires: Thu, 01 Dec 1994 16:00:00 GMT |
| Last-Modified | 设置请求对象最后一次的修改日期 | Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT |
| Link | 设置与其他资源的类型关系 | Link: ; rel="alternate" |
| Location | 在重定向中或者创建新资源时使用 | Location: http://www.w3.org/pub/WWW/People.html |
| P3P | 以P3P:CP="your_compact_policy"的格式设置支持P3P(Platform for Privacy Preferences Project)策略,大部分浏览器没有完全支持P3P策略,许多站点设置假的策略内容欺骗支持P3P策略的浏览器以获取第三方cookie的授权 | P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info." |
| Pragma | 设置特殊实现字段,可能会对请求响应链有多种影响 | Pragma: no-cache |
| Proxy-Authenticate | 设置访问代理的请求权限 | Proxy-Authenticate: Basic |
| Public-Key-Pins | 设置站点的授权TLS证书 | Public-Key-Pins: max-age=2592000; pin-sha256="E9CZ9INDbd+2eRQozYqqbQ2yXLVKB9+xcprMF+44U1g="; |
| Refresh | "重定向或者新资源创建时使用,在页面的头部有个扩展可以实现相似的功能,并且大部分浏览器都支持 | Refresh: 5; url=http://www.w3.org/pub/WWW/People.html |
| Retry-After | 如果实体暂时不可用,可以设置这个值让客户端重试,可以使用时间段(单位是秒)或者HTTP时间 | Example 2: Retry-After: Fri, 07 Nov 2014 23:59:59 GMT |
| Server | 服务器名称 | Server: Apache/2.4.1 (Unix) |
| Set-Cookie | 设置HTTP Cookie | Set-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1 |
| Status | 设置HTTP响应状态 | Status: 200 OK |
| Strict-Transport-Security | 一种HSTS策略通知HTTP客户端缓存HTTPS策略多长时间以及是否应用到子域 | Strict-Transport-Security: max-age=16070400; includeSubDomains |
| Trailer | 标识给定的header字段将展示在后续的chunked编码的消息中 | Trailer: Max-Forwards |
| Transfer-Encoding | 设置传输实体的编码格式,目前支持的格式: chunked, compress, deflate, gzip, identity | Transfer-Encoding: chunked |
| TSV | Tracking Status Value在响应中设置给DNT(do-not-track),可能的取值 | |
| Upgrade | 请求客户端升级协议 | Upgrade: HTTP/2.0, HTTPS/1.3, IRC/6.9, RTA/x11, websocket |
| Vary | 通知下级代理如何匹配未来的请求头已让其决定缓存的响应是否可用而不是重新从源主机请求新的 | Example 2: Vary: Accept-Language |
| Via | 通知客户端代理,通过其要发送什么响应 | Via: 1.0 fred, 1.1 example.com (Apache/1.1) |
| Warning | 实体可能会发生的问题的通用警告 | Warning: 199 Miscellaneous warning |
| WWW-Authenticate | 标识访问请求实体的身份验证方案 | WWW-Authenticate: Basic |
| X-Frame-Options | 点击劫持保护: | X-Frame-Options: deny |
常用非标准响应头
| 字段 | 属性 | 举例 |
|---|---|---|
| X-XSS-Protection | 过滤跨站脚本 | X-XSS-Protection: 1; mode=block |
| Content-Security-Policy, X-Content-Security-Policy,X-WebKit-CSP | 定义内容安全策略 | X-WebKit-CSP: default-src 'self' |
| X-Content-Type-Options | 唯一的取值是"",阻止IE在响应中嗅探定义的内容格式以外的其他MIME格式 | X-Content-Type-Options: nosniff |
| X-Powered-By | 指定支持web应用的技术 | X-Powered-By: PHP/5.4.0 |
| X-UA-Compatible | 推荐首选的渲染引擎来展示内容,通常向后兼容,也用于激活IE中内嵌chrome框架插件 | X-UA-Compatible: IE=EmulateIE7 |
| X-Content-Duration | 提供音视频的持续时间,单位是秒,只有Gecko内核浏览器支持 | X-Content-Duration: 42.666 |
| Upgrade-Insecure-Requests | 标识服务器是否可以处理HTTPS协议 | Upgrade-Insecure-Requests: 1 |
| X-Request-ID,X-Correlation-ID | 标识一个客户端和服务端的请求 | X-Request-ID: f058ebd6-02f7-4d3f-942e-904344e8cde5 |
通用首部字段介绍
Cache-Control(控制缓存的行为)
//为了防止从缓存中返回过期的资源。缓存服务器会向源服务器进行有效期确认后处理资源。
Cache-Control: no-cache
// 当使用no-store指令时,暗示请求和对应的响应中包含机密信息。因此,该指令规定缓存不能在本地存储请求或响应的任一部分。
Cache-Control: no-store
// 表示处理公共代理服务器的情况下缓存过期没有超过指定的时间时,就会返回缓存。
Cache-Control: s-maxage=604800 (单位:秒)
// 缓存的最大有效时间,
Cache-Control: max-age=604800(单位:秒)
// 要求缓存服务器返回未过指定时间的缓存资源。
Cache-control: min-fresh=60(单位:秒)
// 使用 max-stale 可以指示缓存资源,即使过期也照常接收。
Cache-control: max-stale=3600(单位:秒)
// 仅仅使用缓存,如果缓存服务器有指定缓存则返回,否则返回 504 Gateway Timeout。
Cache-control: only-if-cached
// 代理会向源服务器再次验证即将返回的响应缓存目前是否仍然有效。
Cache-Control: must-revalidate
//要求所有的缓存服务器在接受到客户端带有该指令返回数据之前,必须再次验证缓存的有效性。
Cache-Control: proxy-revalidate
// 无论是在请求还是在响应当中,缓存都不能改变实体主体的媒体类型。这样做可以防止缓存或代理压缩图片等类似操作。
Cache-Control: no-transform
Cache-Control(控制缓存的行为)
// HTTP/1.1 版本的默认连接都是持久连接,当服务器明确想断开连接时,
// 则指定Connection的首部字段为 close。HTTP/1.1默认是打开的,而之前默认是关闭的。
Connection: close
// 控制不再转发给代理的首部字段
GET / HTTP/1.1
Upgrade: HTTP/1.1
Connection: Upgrade
HTTP系列1番外之头部字段大全的更多相关文章
- Java多线程开发系列之番外篇:事件派发线程---EventDispatchThread
事件派发线程是java Swing开发中重要的知识点,在安卓app开发中,也是非常重要的一点.今天我们在多线程开发中,穿插进来这个线程.分别从线程的来由.原理和使用方法三个方面来学习事件派发线程. 一 ...
- React Native填坑之旅--Flow篇(番外)
flow不是React Native必会的技能,但是作为正式的产品开发优势很有必要掌握的技能之一.所以,算是RN填坑之旅系列的番外篇. Flow是一个静态的检查类型检查工具,设计之初的目的就是为了可以 ...
- python的类和对象——番外篇(类的静态字段)
什么是静态字段 在开始之前,先上图,解释一下什么是类的静态字段(我有的时候会叫它类的静态变量,总之说的都是它.后面大多数情况可能会简称为类变量.): 我们看上面的例子,这里的money就是静态字段,首 ...
- QBlog V2.5 源码开放下载(ASP.NET 番外系列之开端)
QBlog简介: QBlog:是一个套博客系统,开源.支持多用户.多语言.及方便的多数据库切换. QBlog下载:http://www.cyqdata.com/download/article-det ...
- python的类和对象——类的静态字段番外篇
什么是静态字段 在开始之前,先上图,解释一下什么是类的静态字段(我有的时候会叫它类的静态变量,总之说的都是它.后面大多数情况可能会简称为类变量.): 我们看上面的例子,这里的money就是静态字段,首 ...
- 《手把手教你》系列技巧篇(三十一)-java+ selenium自动化测试- Actions的相关操作-番外篇(详解教程)
1.简介 上一篇中,宏哥说的宏哥在最后提到网站的反爬虫机制,那么宏哥在自己本地做一个网页,没有那个反爬虫的机制,谷歌浏览器是不是就可以验证成功了,宏哥就想验证一下自己想法,于是写了这一篇文章,另外也是 ...
- 《手把手教你》系列技巧篇(三十六)-java+ selenium自动化测试-单选和多选按钮操作-番外篇(详解教程)
1.简介 前边几篇文章是宏哥自己在本地弄了一个单选和多选的demo,然后又找了网上相关联的例子给小伙伴或童鞋们演示了一下如何自动化测试,这一篇宏哥在网上找了一个问卷调查,给小伙伴或童鞋们来演示一下.上 ...
- 《手把手教你》系列基础篇(八十)-java+ selenium自动化测试-框架设计基础-TestNG依赖测试-番外篇(详解教程)
1.简介 经过前边几篇知识点的介绍,今天宏哥就在实际测试中应用一下前边所学的依赖测试.这一篇主要介绍在TestNG中一个类中有多个测试方法的时候,多个测试方法的执行顺序或者依赖关系的问题.如果不用de ...
- 基于.NetCore3.1搭建项目系列 —— 使用Swagger导出文档 (番外篇)
前言 回顾之前的两篇Swagger做Api接口文档,我们大体上学会了如何在net core3.1的项目基础上,搭建一套自动生产API接口说明文档的框架. 本来在Swagger的基础上,前后端开发人员在 ...
随机推荐
- activiti7 获取流程定义的xml
RepositoryService repositoryService = ProcessEngines.getDefaultProcessEngine().getRepositoryService( ...
- More JOIN operations -- SQLZOO
The JOIN operation 注意:where语句中对表示条件的需要用单引号, 下面的译文使用的是有道翻译如有不正确,请直接投诉有道 01.List the films where the y ...
- SpringBoot+Shiro+JWT前后端分离实现用户权限和接口权限控制
1. 引入需要的依赖 我使用的是原生jwt的依赖包,在maven仓库中有好多衍生的jwt依赖包,可自己在maven仓库中选择,实现大同小异. <dependency> <groupI ...
- [SCOI2007]降雨量 线段树和区间最值(RMQ)问题
这道题是比较经典的 \(RMQ\) 问题,用线段树维护是比较简单好写的.比较难的部分是判断处理.如果没有想好直接打代码会调很久(没错就是我).怎么维护查询区间最大值我就不再这里赘述了,不懂线段树的 ...
- windows:shellcode 原理
shellcode,一段短小精干的代码,放在任何地方都能执行,不依赖当前所处环境,那么就有这么几点要求: 不能有全局变量:函数里的局部变量在栈空间,地址是执行的时候动态分配的:但全局变量在编译时,会由 ...
- MySql实现 split
substring_index(str,delim,count) str:要处理的字符串 delim:分隔符 count:计数 例子:str=www.baidu.c ...
- java_内部类、匿名内部类的使用
内部类 将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类. 内部类的分类 成员内部类,类定义在了成员位置 (类中方法外称为成员位置) 局部内部类,类定义在方法内 成员内部类 ...
- Netty之旅:你想要的NIO知识点,这里都有!
高清思维导图原件(xmind/pdf/jpg)可以关注公众号:一枝花算不算浪漫 回复nio即可.(文末有二维码) 前言 抱歉好久没更原创文章了,看了下上篇更新时间,已经拖更一个多月了. 这段时间也一直 ...
- 【MySQL】如何最大程度防止人为误操作MySQL数据库?这次我懂了!!
写在前面 今天,一位哥们打电话来问我说误操作了他们公司数据库中的数据,如何恢复.他原本的想法是登录数据库update一个记录,结果忘了加where条件,于是悲剧发生了.今天,我们不讲如何恢复误操作的数 ...
- 高级搜索树-红黑树(RBTree)代码实现
代码实现 代码参考了<数据结构(c++语言版)>--清华大学邓俊辉 "RBTree.h" #pragma once //#include"pch.h" ...