【网络协议】精讲HTTP协议各版本特点!图解超赞超详细!!!零基础入门到精通,收藏这一篇就够了

1. HTTP协议定义

 **HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写**。是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。超文本传输协议是一种用于分布式、协作式和超媒体信息系统的应用层协议,是万维网WWW(World Wide Web)的数据通信的基础。

  HTTP 协议和 TCP/IP 协议族内的其他众多的协议相同, 用于客户端和服务器之间的通信。请求访问文本或图像等资源的一端称为客户端, 而提供资源响应的一端称为服务器端。HTTP 协议可以算是在人们日常生活、工作用得比较多的协议。我们使用浏览器访问网页,就是通过 HTTP 来传递数据;客户端跟服务器交互,大部分会使用到 HTTP 协议。对于我们做数据采集的人来说,也是再正常不过。Requests 和 Scrapy 都是对 HTTP 进行封装的支持自定义配置的库。

2. HTTP协议发展历程

咱们先一句话概括:

HTTP 0.9(1991年)只支持get方法的单行协议

HTTP 1.0(1996年)更加完整、接近现代化的协议:请求方法、请求头、状态码…

HTTP 1.1(1997年)标准化协议:新增请求方法、持久连接、管道、Host头…

HTTP 2.0(2015年)更优异的表现:二进制、多路复用、头部压缩、服务器推送…

HTTP 3.0(2018年)构建高效网络:QUIC协议

详细讲解各版本主要特点(文末有神图哦🧐)

HTTP 0.9
  1991年,万维网协会(World Wide Web Consortium,W3C)和互联网工程任务组(IETF)制定了 HTTP 0.9 标准,这是历史上第一个有记载的HTTP标准,它定义了当时客户端发起请求、服务端响应请求的通信模式。该协议极其简单,其组成只有一行——GET + 请求路径,服务端在收到请求返回处理结果后便会关闭TCP连接。0.9协议就是一个交换信息的无序协议,仅仅限于文字。由于无法进行内容的协商,在双发的握手和协议中,并没有规定双发的内容是什么,也就是图片是无法显示和处理的。 
HTTP 1.0
 1996年5月,一个更加完整、更加接近我们目前对 HTTP 认知的版本发布—HTTP1.0,该版本已经包含了我们现在所熟知的很多概念:请求方法、请求头、状态码…此时的请求/响应结构已经和现在的请求基本一致了,对比HTTP/0.9,HTTP/1.0引入很多新的内容,如:

1. 增加了 HEAD、POST

2. 引入了 Header 的概念,让 HTTP 处理请求和响应更加

3. 引入了协议版本号(包括在请求头内)

4. content-type字段的使用增加了传输的数据格式(如json、image),不再仅限于文本

5. 增加了响应状态码,标记可能的错误原因

然而,由于HTTP1.0不支持长连接,每次请求都需要建立新的TCP连接,无疑会增加握手开销,降低传输效率。同时HTTP/1.0所保持的TCP连接每次只能处理一个请求,虽然可以一次性接受多个请求,但仍然需要按请求顺序依次有序返回处理结果,如此下来当前面的请求处理异常很容易导致其余请求阻塞。
HTTP 1.1
前面提到了HTTP/1.0 每进行一次通信,都需要重复建立连接、传输数据和断开连接三个步骤。当一个页面引用了较多的外部文件时,这个建立连接和断开连接的过程就会导致网络请求开销急剧增大。

为了解决这个问题,HTTP/1.1 增加了一个创建持久连接的方法。主要实现是当一个连接传输完成时,并不是马上进行关闭,而是继续复用它传输其他请求的数据,这个连接保持到浏览器或者服务器要求断开连接为止。

HTTP1.1部分新特如下:

1\. 增加了 PUT、DELETE 、OPTIONS、TRACE方法

2. 支持并默认开启持久连接(Connection:keep-alive),持久连接即为TCP连接在服务器发送完数据默认不关闭,保持连接状态

3\. 引入管道机制(Pipelining)。即在同一个TCP连接里面,客户端可以同时发送多个请求

4. 允许响应数据分块(chunked),利于传输大文件

5\. 增加Host头,即指定请求的主机名和端口,使得不同域名可以配置在同一台服务器上

6. 支持更多的缓存处理如:E-tag,If-Match,If-None-Match等
HTTP 2.0
 HTTP/2 的前身是由 google 主导开发的 SPDY,SPDY并不是一个标准协议,但SPDY的开发组推动SPDY成为正式标准,而成为了互联网草案,后来SPDY并没有单独成为正式标准,不过SPDY开发组的成员全程参与了HTTP/2的制定过程,为了达到预期的性能优化,HTTP/2 中新增了二进制分帧层,这与现有 HTTP/1.1 协议的服务器及客户端是不兼容的,所以版本号直接从1升级到了2。

HTTP/2部分新特性如下:

1. HTTP/2 采用二进制协议替代原本的文本,不再可读。

2. 多路复用,并行的请求可以在同一TCP链接中处理,移除了 HTTP/1.x 中顺序和阻塞的约束。

3\. 使用压缩算法压缩请求头header,减少数据传输量。

4. 允许服务器主动向客户端推送数据,无需客户端明确请求。

5. 数据流中可以设置优先级,以此觉得客户端或服务端采取不同优先级处理数据流。

二进制传输:

HTTP/2并没有改变传统HTTP语义:如请求方法、状态码、请求头等,为了突破限制提高传输小路,HTTP/2在传统的HTTP协议与TCP协议之间加入了二进制分帧层,传统的HTTP协议采用的文本协议进行传输,而从HTTP/2开始改为二进制传输。

在该层中,HTTP/2会将所有的请求信息分割为更小的信息单元(消息、帧),同时对它们使用二进制编码,将请求头的新增封装至Hearders帧中,请求体中的数据封装至Data帧中。随后,以帧的形式在连接中进行数据交换。

HTTP 3.0
前面提到了,TCP协议的特性会造成队头阻塞,所有HTTP3的版本在传输层采用UDP代替TCP的形式,避开了TC带来的队头阻塞问题,同时通过基于UDP的QUIC协议达到类似TCP的拥塞控制、连接管理等特性,将原本”不可靠“的UDP转变为”可靠"的UDP协议,提高传输效率的同时保证数据传输的可靠性。

 与之前依赖于成熟的TCP的版本不同,HTTP3.0使用QUIC,一种基于UDP的多路传输协议。HTTP3.0具有更低的延迟和更快的加载速度。 

一图总览HTTP协议发展历程和各版本特点

**亲爱的同学们,下期我们****精讲HTTP请求头类型

`黑客&网络安全如何学习

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

1.学习路线图

攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。

(都打包成一块的了,不能一一展开,总共300多集)

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

3.技术文档和电子书

技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

4.工具包、面试题和源码

“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。

还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。

这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。

参考解析:深信服官网、奇安信官网、Freebuf、csdn等

内容特点:条理清晰,含图像化表示更加易懂。

内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值