趣谈HTTP协议中的那些MIME header

HTTP协议是我们最常使用到的协议,我们通过浏览器上网,下载文件,上传数据很多都是使用的它,但是我以前对它还是懵懵懂懂的,逐渐地,我有些感悟了,所以就记载到这里。本文将尽量使用诙谐的笔法介绍HTTP中的那些mime header field 头域。

场景一:使用wget来下载一个源码包,比如ATS 5.3版本,使用下面的命令:

wget -d "http://mirror.bit.edu.cn/apache/trafficserver/trafficserver-5.3.0.tar.bz2"


我们重点看response header部分:

HTTP/1.1 告诉我们使用的是HTTP协议的1.1版本,现在HTTP/2已经出来了,但是我们见到的还不多;

200 OK 告诉我们响应的状态码是200,就是正常返回数据了,其它还有很多响应码,比如2xx,3xx,4xx,5xx等等,不细说了;

Server告诉我们服务器软件是Nginx,版本是1.1.9,现在最新版的已经到1.8.x了;

Content-Type告诉我们响应的数据类型,这里是C++源码,当然是application/octet-stream了,其它还有图片,视频,json,html,xml之类的;

Content-Length告诉我们response body的长度,也就是源码包的字节大小;

Date 告诉我们从服务器获取该源码包的时间,和我目前的时间差8小时,估计是时区设置的问题;

Last-Modified 告诉我们,这个ATS 5.3的源码包放到服务器上的时间,刚好是其对外发布时间;

Connection:告诉我们,C/S直接的连接保持方式,这里的keep-alive表示是保活的,没有立即断开,如果还有其它请求,可以重用这里TCP连接;

Accept-Ranges告诉我们从需要的字节开始接收;

由此可见,这些response header都是很有参考意义的,能给我们提供丰富的信息。

场景二:使用curl通过ATS 5.3下载一个普通的网页文件,使用下面的命令:

curl -o /dev/null -vx 127.0.0.1:8081  -H "Accept-Encoding: gzip,deflate,sdch" "http://news.sohu.com"


相同的头在这里不再重复了。

Vary告诉我们,对Accept-Encoding头的不同值要区分,来得到不同的document副本,比如gzip压缩的,deflate压缩的,没有压缩的,这些都是不同的副本;

Cache-Control告诉我们缓存规则,这里是不要对document做变换,document的最大存活期是120秒,从缓存获得该文件开始计算,超过120s要向服务器再次验证;

Expires告诉我们,到那个指定的时刻,这个document就是过期的,必须向源站重新请求;

Content-Encoding告诉我们,该document是使用gzip压缩的;

Age告诉我们,文档的存活期,刚获取的文档,存活期是0;

Proxy-Connection告诉我们,curl和Proxy的网络连接是保活的;

Via告诉我们,请求从源站到达客户端所经过的代理情况,这里只经过了一个代理ATS 5.3,注意后面的缓存情况[cMsSfW]表明是回源获取的;

X-RS,FSS-Cache是源站自定义头,不做表述。

将上述请求再重复几次,我们得到


我们看到了几点差异:

Age值有变化,原来是0,现在是8,表明该document在ATS的缓存中存活了8秒,它最大存活期是120秒,对一个新闻门户网站来说,这是合理的,120秒后必须刷新网页内容;

Via头中缓存状态有变化,现在是[cRs f ],表示是从ATS中的RAM中获取的热点内容;

场景三:range请求和检查服务器是否支持断点续传功能

curl命令行中的-r/--range选项支持向服务器发送Range请求,-i选项指定显示响应头信息


注意返回状态码是206,

Accept-Ranges告诉我们服务器是否支持指定范围请求及哪种类型的分段请求,这里是byte

Content-Range告诉我们在整个返回体中本部分的字节位置,因为我们请求的是图片的前10个字节,所以Content-Range的值是bytes 0-9/1575,后面的1575是图片总的字节数。

上面是curl获取到的响应头信息,其中如果能够找到Content-Range则表明服务器支持断点续传,有些服务器还会返回Accept-Ranges。Nginx服务器默认支持断点续传的,无须做任何额外配置。


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 网络协议是计算机网络进行数据传输和通信的规则和约定。PDF(Portable Document Format)是一种由Adobe开发的文件格式,用于以可靠的方式呈现和交换电子文档。 在谈论网络协议的PDF下载时,我们可以探讨以下趣闻: 首先,网络协议的PDF下载可以帮助我们更好地理解和学习网络协议。网络协议本身是一种抽象的概念,有时候很难通过文字或图片来完全理解。但是,通过以PDF格式提供的文档,我们可以更直观地看到网络协议的结构、流程和细节,使得学习变得更加容易和有趣。 其次,网络协议的PDF下载还能帮助我们及时了解和跟进最新的协议标准。网络协议是一门不断发展的学科,新的协议版本和标准经常被提出和更新。通过及时下载最新的协议文档,我们可以了解最新的协议规范和改进,从而更好地应用它们于实际网络环境。 此外,网络协议的PDF下载也给了我们方便地和他人共享学习资源的机会。通过将网络协议的文档以PDF格式发布在互联网上,任何人都能够自由下载和阅读,促进了知识的传播和共享。在学术和研究领域,这种方式也为学者们提供了方便的途径来分享最新的网络协议研究成果。 总之,网络协议的PDF下载不仅能够促进我们更好地理解和学习网络协议,还能帮助我们及时了解最新的协议标准,并且方便地与他人共享学习资源。无论是对于专业人员还是对于普通用户,网络协议的PDF下载都具有重要的意义和趣味性。 ### 回答2: 网络协议是计算机网络的基础,它定义了数据在网络传输的规则和方式。网络协议可以确保数据的可靠传输,有效地管理网络资源,并实现各种网络应用功能。 趣谈网络协议是一本介绍网络协议的有趣读物,可以以轻松、幽默的方式解释复杂的网络协议概念和原理。这本书通常以PDF格式提供下载,方便读者在任何设备上阅读。 下载这本书的PDF版本,可以享受以下好处: 首先,PDF格式具有跨平台和跨设备的特点。不论您使用的是电脑、平板还是手机,只要安装了合适的PDF阅读器软件,就可以轻松打开并阅读这本书。 其次,下载PDF可以实现离线阅读。无论您身处何地,只要下载好了PDF文件,即便没有网络连接,也可以随时随地阅读网络协议的趣谈故事。 此外,PDF格式使得阅读更加方便。您可以在PDF阅读器进行文字搜索、加注释、划重点,甚至可以调整字号的大小,以适应不同的阅读环境。 最后,通过下载PDF,您还可以将这本书保存到自己的电脑或移动设备上,以备日后参考。您可以在需要的时候,随时翻阅这本书,方便复习和查找相关内容。 总之,趣谈网络协议PDF的下载为我们提供了方便、快捷、随时随地的阅读体验。无论是想了解网络协议,还是希望在计算机网络领域深入学习,这本书都会是一本有趣而又实用的读物。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值