如何理解http、http1.0、http1.1、http2.0、https?

web开发,对http有所了解是很重要的。

这里是我对几个概念的讲解。

http
http是一种数据传输的协议,它工作在应用层,基于网络层的tcp协议,中文全称叫“超文本传输协议”,最开始的用途就是为了传输超文本(html)。

http协议是无状态的,也就是前后两次请求,没有必然联系,不会保存上一次请求的相关信息和状态,每一次请求都是独立的,服务器和浏览器都只知道这次请求的信息。也正是因为“无状态”,浏览器和服务器需要通过cookie和session来保存一些状态和标识,比如是否已登录。

http是以一个请求对应一个响应的形式设计的,也就是说,基于http的话,服务器只有接收到请求后才能响应。

http和tcp
http之所以采用tcp(传输控制协议)在网络层上传输数据,主要因为它可能传输很多数据,而tcp支持按顺序组织数据并保证数据完整性。

也正因为http采用了tcp作为网络层的支持,其本身也就具备了tcp必然的特性,比如握手机制、新建tcp连接的慢启动问题等。

慢启动:当tcp连接被建立时,它会先进行一次握手,以确保数据能够到达另一方,然后再开始传输数据,刚开始传输数据的时候,不会以最大速率进行传输,而是慢慢加大传输速率,慢启动主要是为了保证数据完整性和tcp所追求的稳定性。

http1.0
最先广泛使用的版本。

主要采用短连接的设计,一次请求,就建立一个tcp连接,响应结束,就立刻关闭。

这导致一个网页的资源一旦很复杂,比如需要请求很多数据,就会开启大量的tcp连接,而因此,tcp慢启动的特性严重影响了http的效率,同样因为多个tcp开启需要经历多个三次握手,也是浪费。

http1.1
目前最流行的版本。

效率优化(tcp长连接)
它改进了1.0的效率问题,将之前采用tcp短连接的形式优化到了tcp长连接,也就是一个tcp连接,可以处理多次http传输(请求)。我们可以在请求头或者响应头中看到一个connection参数,它等于close的时候,可以使http请求使用tcp短连接,默认情况下它是keep-alive(长连接)。

并发请求
因为改成了长连接,http1.1支持针对统一域名同时发起多个http请求(并发处理),但针对同一域名的并发处理有数量限制,超过数量后会被阻塞,具体的限定数量,由浏览器决定,现代浏览器一般是6个。
在http1.1这个机制下,如果想要并发处理超过限制数量的请求,则可以通过使用不同域名的方式来绕过去,因为http1.1的并发请求限制是针对域名的。

其他
另外,http1.1还增加了一些请求头,比如host,用于让服务器确定是哪个虚拟空间(网站)。这让一台服务器能够支持运行多个网站。
http1.1还增加了身份认证、状态管理、cache相关的请求响应头、断点续传等。
http2.0
已经有一定普及率的版本

这个版本主要增加了多路复用、二进制分帧、首部压缩、服务器推送等。

多路复用
多路复用对性能提升最为显著, 1.1的时候,多个http请求是通过开启多个tcp连接来实现并发的,但在2.0中,多个http请求的并发,是在一个tcp连接中实现。
多路指的是多条通路,复用指重复使用tcp连接,说白了就是一个tcp可以处理多个并发http请求

二进制分帧

1.1时,数据直接以文本传输,是没有顺序的,服务器和浏览器双方都是按接收顺序来组装数据的,这导致一个tcp必须传输一份数据,如果多份数据传输,双方接收的数据就混乱了。
2.0因为将数据拆分成了更小的帧和流,也就是二进制分帧,在应用层和网络层中间又加了二进制分帧层,帧是有顺序的,这样传输数据的双方就可以根据流来分类、再按帧的顺序来组装数据

https
https实际上不适合放在http1.0、1.1、2.0中间来讨论,因为完全是两回事。

但在这里,还是总结一下。

https实际上就是http协议和tls(ssl)协议的组合。
http负责传输,tls负责加解密(现在一般都用tls,ssl已经很老了)
http传输的时候,数据是没有经过加密的,这不安全,所以引入了tls协议来对数据加解密,先处理成密文,再放到下层去工作,http拿到要传输的数据时,这个数据已经经过tls协议的加密,所以http本身也不知道这个数据原本是什么样子。而http从下层拿到数据时,也不知道这个数据是什么内容,需要传给上面的tls层来解密,才能显示出来。
这就是https大致的意思。
从速度上,https因为多了加解密的步骤,且比http多几次握手(用于双方确定加密方式和证书),所以会慢一些。
另外,https采用非对称加密技术。

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

推荐阅读更多精彩内容