OSI七层模型+http演进历史

HTTP 相关

一、OSI七层

OSI层数 名称 功能 协议
第七层 应用层 (Application Layer) 为应用程序提供网络服务 https,ftp,ssh,telnet,ssl,tls
第六层 表示层 (Presentation Layer) 数据格式化,代码转换,数据加密 /
第五层 会话层 (Session Layer) 互连主机通讯 /
第四层 传输层 (Transport Layer) 端到端连接 TCP,UDP
第三层 网络层 (Network Layer) 路由:确定地址和最佳路径 ip,icmp……
第二层 数据链路层 (Data Link Layer) 传输有地址的帧,CRC、奇偶校验 arp,mtu……
第一层 物理层 (Physical Layer) 二进制的传输 IEEE802.11a/b/g,ISO2110

第一层物理层传输二进制信息,包含ISO2110(局域网有线协议)、IEEE802.11a/b/g(无线协议)。
第二层数据链路层传输的单位是帧,提供CRC校验,奇偶位校验等能力,包含arp,mtu等协议。
第三层网络传输层,主要功能是路由,包含ip,icmp协议等
第四层传输层提供端到端的连接能力,包含TCP,UDP协议
第五层传输层提供主机之间的通讯会话控制。
第六层表示层提供数据格式化,代码转换,数据加密等能力
第七层应用层,为应用程序提供网络服务,包含很多应用协议,http,ssh,ftp,map等协议。

  • Http是基于TCP/IP协议的 应用层协议
  • HTTPS 是在TCP/IP协议之上加了SSL/TLS(应用层协议)协议进行加密。
OSI是理论结构,SSL/TLS是实践协议不能准确的放入OSI七层协议的某一层。
SSL/TLS 其实是两层协议:下层SSL记录协议,上层是SSl握手协议。SSl握手协议是四种协议的统称SSL握手协议(SSL HandShake Protocol)、SSL密码参数修改协议(SSL Change Cipher Spec Protocol)、应用数据协议(Application Data Protocol)和SSL告警协议(SSL Alert Protocol))。

二、HTTP协议演进

2.1 http/0.9

1991年发布的,只有一个命令GET.

2.2 http/1.0

1996年五月发布,引入了POST HEAD命令,keep-alive(TCP复用,http1.0默认关闭,必须在header里写Connection:Keep-Alive)

2.3 http/1.1

1997年一月,目前应用最广的协议版本,持久连接 persistent connection 默认打开(客户端不用在header里写Connection:Keep-Alive就默认打开)

2.3.1 persistent connection 的两种方式

1)HTTP/1.0 + keep-alive 连接

  1. HTTP/1.1 + persistent 连接
2.3.2 管道机制

在同一个TCP连接里面,客户端可以同时发送多个请求,服务器按照顺序一个个返回这些请求。虽然允许复用TCP,但是服务器只有处理完一个请求,才会处理下一个。
如果前面的请求处理很慢,会造成"队头堵塞 head-of-line blocking"。

2.3.3 页面速度优化

要解决队头堵塞head-of-line这个问题,有两种方法:减少请求数。同时开启多个持久连接。这就是网页优化技巧的原则。
常用的页面优化技巧:合并表单样式表、将图片嵌入CSS代码、域名分片(一个域名只允许6个持久连接)。
如果http协议设计的更好一点,这些工作就是可以避免的。

2.3.4 Content-Length

一个TCP通过管道机制可以返回多个回应,那么就需要一种机制来区分这些回应。Content-Length就是这个作用。

2.3.5 分块传输

Content-Length可以使用的前提是服务器知道回应的长度。但是对一些耗时操作来说,这样效率很低。更好的方法是产生一块数据,采用"流模式steam"取代"缓存模式buffer"。
因此http/1.1可以不使用Content-Length,而使用分块传输编码(chunked transfer encoding)。只要请求或回应的header里有Transfer-Encoding字段,则表明将有数量未定的数据块。

Transfer-Encoding:chunked

每个非空数据块之前,有一个16禁止的数值,表示块长度。最后一个大小为0的块表示本次数据块已经全部发送完毕。

2.4 http/2 的前身:SPDY协议

2009年谷歌公开了自行研发的spdy协议,该协议在chrome上验证可行后,被当作http/2的基础。主要特性在http/2中得到继承。

2.5 http/2

叫http/2不是2.0,因为标准委员会不打算发布子版本了。下版将是http/3

2.5.1 二进制协议

http/1.1版的header是ASCII编码的文本信息。而http/2则是一个彻底的二进制协议。header和数据体都是二进制,并统称为"帧":头信息帧、数据帧。

2.5.2 多工

http/2复用TCP连接时,客户端和浏览器可以同时发送多个请求回应,并且不用按照顺序一一对应。避免了对头拥塞head-of-line blocking。
这样双向实时的通信就叫多工。

2.5.3 头信息压缩
  • http协议不带状态,每次请求都必须附上所有信息,所以很多字段都是重复的,比如cookie和user agent。
  • http/2对此做了优化:
    1)一方面头信息经过gzip或者compress压缩后再发送,
    2)另一方面,客户端和服务器同时维护一张头信息表。所有字段都存入这个表。生成一个索引号。以后就不发送同样的字段,只发送索引号。
2.5.4 服务器推送

支持主动向客户端发送资源。

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

推荐阅读更多精彩内容