如果您使用互联网,您可能遇到过 HTTP 或 HTTPS 一词。这也是浏览次数最多的信件,特别是考虑到目前活跃的数十亿个网站。
HTTP 或超文本传输协议是缩写词。 它既充当客户端协议又充当服务器协议,定义了如何通过互联网发送和构造消息。
关键精华
- HTTP 1.0 只允许每个连接一个请求,而 HTTP 1.1 允许多个请求。
- HTTP 1.1 支持持久连接,允许更快的网站加载,而 HTTP 1.0 则不支持。
- HTTP 1.1 比 HTTP 1.0 具有更高效的标头压缩,从而减少了带宽使用。
HTTP 1.0 与 HTTP 1.1
HTTP 1.0 是 HTTP 协议的第一个版本,于 1996 年推出。它是一种简单、无状态的协议,在请求-响应的基础上运行。 HTTP 1.1 是 HTTP 协议中使用最广泛的版本,于 1999 年推出。它是 HTTP 1.0 的改进版本,引入了多项新功能,包括对持久连接、缓存、管道和分块传输编码的支持。
1996 年,HTTP/1.0 被正式引入并得到认可。 从那时起,它的受欢迎程度飙升。
HTTPv1.0仅提供基本的身份验证(挑战-响应控制); 这种技术的一个关键问题是用户名和密码没有加密,这使得它们很容易受到监视并且没有时间限制。
只有 16 个状态代码。
HTTP 1.1 还提供持久连接,这意味着可以通过同一个 HTTP 连接发送许多响应和请求。
OPTIONS 方法是 HTTP/1.1 中的新方法。 HTTP 客户端可以很容易地使用此技术来发现 HTTP 服务器的功能。 它主要用于 Web 应用程序中以实现跨源资源共享。
对比表
比较参数 | HTTP 1.0 | HTTP 1.1 |
---|---|---|
状态码 | 可以定义16个状态码; 但是,错误弹出窗口不够精确。 | 通过指定 24 个状态代码的能力,错误报告更快、更有效。 |
认证机制 | 因为密码和用户名也是以明文或 base64 编码发送的,所以基本的身份验证机制是不安全的。 | 因为它利用摘要认证和NTLM认证,所以相对安全。 |
高速缓存 | If-Modified-Since 标头用于辅助缓存。 | 使用一些额外的标头,如缓存控制。 |
性能优化 | 支持缓存以更快地提供更多页面。 | 许多优化被用作“每个主机六个连接”要求的变通方法,包括 spriting、连接、内联和域分片。 |
主要特性 | 每个 TCP 连接只有一个请求和应答。 | 它支持连接重用,这意味着可以为每个 TCP 连接发送和接收许多请求和应答。 |
什么是 HTTP 1.0?
HTTPv1.0 仅提供基本的身份验证(挑战-响应控制); 这种技术的一个关键问题是用户名和密码没有加密,容易受到监视,而且没有时间限制。
任何通过刺探获得的信息,在获得之后都可以长期使用。 客户应该计算一个 校验 密码、用户名和一次性值,包括 HTTP 请求类型和有效响应所请求的 URI。
因为HTTP1.0 的本意是为每个请求使用一个新的TCP 连接,所以每次请求都必须支付建立一个新的TCP 连接的费用。
因为大多数 Internet 交易都很短暂,而且很少会超过慢启动阶段,所以它们没有充分利用可用带宽。
尽管某些版本 1.0 实现使用“keep-alive”标头来要求链接保持活动状态,但这对于中间代理来说效果不佳。
服务器必须仍然按照与给定连接的匹配请求相同的顺序提供答复。 客户端在通过同一连接(流水线)提交另一个请求之前不必等待对其先前请求的响应。
它减少了网络往返延迟,同时还优化了 TCP 协议的功能。
什么是 HTTP 1.1?
通过引入永久连接和流水线,它解决了这个问题。 HTTP/1.1 意味着 TCP 连接应保持活动状态,除非在使用持久连接时明确请求断开连接。
它允许客户端通过同一连接提交多个请求,而不必等待每个请求都得到答复,从而显着提高了 HTTP/1.1 相对于 HTTP/1.0 的性能。
不幸的是,这种优化技术有一个固有的瓶颈。
因为几个数据包在途中无法相互传递。 有时,队列前面的请求无法获取其所需的资源,导致其后面的所有请求都被阻塞。
这被称为 HOL 队头阻塞,这是提高 HTTP/1.1 连接性能的主要问题。
单独的、并行的 TCP 连接可能会解决问题,但是,客户端和服务器之间的并发 TCP 连接数是有限的,每个新连接都会消耗大量资源。
HTTP/1.1 中的流量控制是基于 TCP 的。 建立 TCP 后,服务器和客户端都使用其系统默认设置来确定缓冲区大小。
如果接收方的缓冲区部分满,它将通知发送方接收方的接收窗口或其缓冲区中的可用空间量。
HTTP 1.0 和 HTTP 1.1 之间的主要区别
- HTTP1.0主要用在header中,但是HTTP1.1用来引入更复杂的 缓存 管理办法。
- HTTP1.0 中有一些带宽浪费,但 HTTP 1.1 中带宽浪费较少。
- HTTP1.1请求和响应消息都支持Host头字段,虽然HTTP1.0认为每个服务器都应该绑定一个不同的IP地址。
- 在 HTTP1.0 中,每个 TCP 连接只有一个请求和应答,而 HTTP 1.1 允许连接重用。
- Spriting、连接、内联和域分片是 HTTP 1.1 中使用的一些优化,而 HTTP 1.0 支持缓存以更快地为网站提供服务。
- https://ieeexplore.ieee.org/abstract/document/1243114/
- http://journals.uic.edu/ojs/index.php/fm/article/view/2125
最后更新:16 年 2023 月 XNUMX 日
Sandeep Bhandari 拥有塔帕尔大学计算机工程学士学位(2006 年)。 他在技术领域拥有 20 年的经验。 他对各种技术领域都有浓厚的兴趣,包括数据库系统、计算机网络和编程。 你可以在他的网站上阅读更多关于他的信息 生物页面.
HTTP 1.1 引入的 OPTIONS 方法是一个值得注意的补充,它允许客户端发现服务器功能,特别有利于 Web 应用程序中的跨域资源共享。
HTTP 1.1 中的身份验证机制通过采用摘要和 NTLM 身份验证显着增强了安全性,降低了用户名和密码拦截的风险。
HTTP 1.1 对持久连接的支持在加快网站加载时间和优化网络往返延迟方面改变了游戏规则。
HTTP 1.1 中的瓶颈和优化强调需要不断改进 Web 协议以克服挑战并提高性能。
比较表清楚地概述了 HTTP 1.0 和 1.1 之间的差异,强调了在错误报告和性能优化方面取得的进步。
HTTP 协议自诞生以来已经取得了长足的进步。 1.1版本的改进对性能和安全性产生了重大影响。
HTTP 1.0 和 1.1 的技术细节为协议的演变提供了宝贵的见解,特别是在连接重用和高效标头压缩方面。
HTTP 1.1 的详细解释解决了以前版本的挑战,例如避免为每个请求建立新的 TCP 连接的费用,展示了该协议的进步。
HTTP 1.0 和 1.1 的细分展示了错误处理、状态代码和缓存方面的逐步改进,强调了协议发展的重要性。
HTTP 1.1中永久连接和管道的引入无疑提高了Web事务的整体性能。