【干货】具体例子讲解HTTP Header

之前一篇文章,大概介绍了HTTP Headers,接下来我们看看常见的header信息和它所代表的含义。

首先打开腾讯首页,控制台Network。

www.qq.com请求:

Genaral Headers:

  • Request URL:http://www.qq.com/
  • Request Method:GET
  • Status Code:200 OK
  • Remote Address:127.0.0.1:8888
  • Referrer Policy:unsafe-url

Request URL:请求的URL

URL(Uniform Resource Locator即统一资源定位符),互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。

基本URL包含:模式(或称协议)、服务器名称(或IP地址)、路径和文件名,如“协议://授权/路径?查询”。

Request Method:请求方法

常见的Request Method有:get、post、head

get和post的区别:本质上并无区别,只是http协议上对这两个方法有些规定。比如:1、GET使用URL传参,而POST将数据放在BODY中。2、GET的URL会有长度上的限制,则POST的数据则可以非常大。3、POST比GET安全,因为数据在地址栏上不可见。

从其他角度来看:get是Safe、Idempotent的,get更像是查询语句,不会改变服务器任何状态,所以他是Safe(安全)、Idempotent(幂等的)。Safe可理解为只读,Idempotent可理解为多次访问相等。而post不是Safe,也不是Idempotent的,post更像是insert语句,会改变服务器状态。

从缓冲角度来看:服务端程序在接收客户端表单提交的数据时,需要先将数据存储到一个内存空间,然后做解析等后续工作,这个内存空间一般称之为接收缓冲区。对于post数据因为有Content-Length标记,服务端可以按标记的长度创建一个等于或稍大于提交数据的缓冲区。对于get,因为事先不知道提交的数据有多少,需要估计缓冲区长度,如果缓冲区很大而接收数据很小会造成内存浪费,而如果缓冲区小于接收数据,就可能造成缓冲区溢出。

Status Code:状态码

(消息)1**:这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。

(成功)2**:这一类型的状态码,代表请求已成功被服务器接收、理解、并接受。

(重定向)3**: 这类状态码代表需要客户端采取进一步的操作才能完成请求。

(请求错误)4**:这类的状态码代表了客户端看起来可能发生了错误,妨碍了服务器的处理。

(服务器错误)5、6:这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。

Remote Address:远程地址

一般是127.0.0.1:8888或者远程服务器ip地址+端口号

Referrer Policy:来源管制

这个东西怎么理解呢?我研究了好一会才明白,我们知道链接都是跳来跳去的。当从一个链接跳到另一个链接,另一个链接的referer就记录了是从哪个链接跳来的。Referrer Policy就是管理这个来源信息的机制。

no-referrer:整个 Referer 首部会被移除。访问来源信息不随着请求一起发送。

no-referrer-when-downgrade (默认值):在同等安全级别的情况下,引用页面的地址会被发送(HTTPS->HTTPS),但是在降级的情况下不会被发送 (HTTPS->HTTP)

origin:在任何情况下,仅发送文件的源作为引用地址。例如 https://example.com/page.html 会将 https://example.com/ 作为引用地址。

unsafe-url:无论是同源请求还是非同源请求,都发送完整的 URL(移除参数信息之后)作为引用地址。

ps:就着昨天,‘www.qq.com’还是‘unsafe-url’的,今天就变成了‘no-referrer-when-downgrade’,难道我发现了什么不可告人的秘密?

Request Headers:

Accept:客户端可以处理的内容类型,这种内容类型用MIME类型来表示

text/plain:文本文件默认值。意思是 未知的文本文件 ,浏览器认为是可以直接展示的。

text/css:任何一个CSS文件想要在网页上被解释执行就必须为text/css 文件。

text/html:HTML5统一的html格式。

image/gif、image/jpeg、image/png、image/svg+xml:图片格式。

......

Accept-Encoding:客户端发给服务器,声明客户端支持的编码类型。默认是deflate,其余还有gzip、compress等。

gizp: GZIP常用于UNIX系统的文件压缩。我们在Linux中经常会用到后缀为.gz的文件,它们就是GZIP格式的。现今已经成为Internet 上使用非常普遍的一种数据压缩格式,或者说一种文件格式。

comporess:compress是一个相当古老的 unix 档案压缩指令,压缩后的档案会加上一个 .Z 延伸档名以区别未压缩的档案,压缩后的档案可以以 uncompress 解压。由于gzip更理想,一般用gzip。

Accept-Language:声明客户端可以理解的自然语言,以及优先选择的区域方言。

Cache-Control:用于指定所有缓存机制在整个请求/响应链中必须服从的指令。

public:所有内容都将被缓存(客户端和代理服务器都可缓存)
private:内容只缓存到私有缓存中(仅客户端可以缓存,代理服务器不可缓存)
no-cache/no-store:浏览器需要重新发送请求。
max-age=xxx:缓存的内容将在 xxx 秒后失效, 这个选项只在HTTP 1.1可用。

Cookie:客户端cookie(不展开)

Host:客户端地址(不展开)

Proxy-Connection:(代理链接、不展开)

Referer:来源,能看到是从哪里链接过来的。

Upgrade-Insecure-Requests:(不展开)

User-Agent:可以看到客户端系统版本、浏览器版本

Response Headers:

  • Cache-Control:max-age=60
  • Content-Encoding:gzip
  • Content-Type:text/html; charset=GB2312
  • Date:Tue, 25 Jul 2017 02:01:24 GMT
  • Expires:Tue, 25 Jul 2017 02:02:24 GMT
  • Proxy-Connection:Keep-alive
  • Server:squid/3.5.20
  • Transfer-Encoding:chunked
  • Vary:Accept-Encoding
  • Vary:Accept-Encoding
  • Vary:Accept-Encoding
  • X-Cache:MISS from shenzhen.qq.com

Content-Type:返回格式、编码

Date:请求时间

Expires:缓存失效日期

Server:服务器代理

Transfer-Encoding:分块编码

X-Cache: 表示你的 http request 是由 proxy server 回的

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,383评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,522评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,852评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,621评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,741评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,929评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,076评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,803评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,265评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,582评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,716评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,395评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,039评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,027评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,488评论 2 361
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,612评论 2 350

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,637评论 18 139
  • 一、概念(载录于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434阅读 8,337评论 6 152
  • Http协议详解 标签(空格分隔): Linux 声明:本片文章非原创,内容来源于博客园作者MIN飞翔的HTTP协...
    Sivin阅读 5,211评论 3 82
  • 引言:对于HTTP属性的一些整理,数据请求和响应就不再贴图,随意找个网站打开调试工具都可以看得到。注:HTTP版本...
    可爱的木头阅读 3,002评论 0 1
  • 本文整理自MIN飞翔博客 [1] 1. 概念 协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或...
    HoyaWhite阅读 2,659评论 2 20