首页 > 科技 >正文

一文串联 HTTP / [ 0.9 | 1.0 | 1.1 | 2 | 3 ]

2021-02-02 17:05 • 稿源:前端日志

本文转载自微信公众号「前端日志」,作者 孟思行 。转载本文请联系前端日志公众号。 孟思行

1989 年,万维网诞生之后,get="_blank">HTTP 迅速成为主导世界的应用层协议。在今天,几乎任何场景都或多或少用到了 HTTP 协议。

在 30 多年的历史中,HTTP 协议本身有比较大的发展,同时,还有一些重大的变动也在酝酿之中。这些演化使得这个协议的表现力更强,性能更好,更能满足日新月异的应用需求。本文就来回顾和展望一下 HTTP 的历史和未来。

HTTP/0.9 HTTP/1.0 HTTP/1.1 HTTP/2 HTTP/3

HTTP/0.9

HTTP/0.9 诞生于 1991 年,是 HTTP 协议的最初版,构造十分简单:

请求端只支持 GET 请求 响应端只能返回 HTML 文本数据

GET/index.html

<html><body>HelloWorld</body></html>

请求示意图如下:

HTTP/0.9

可以看到,HTTP/0.9 只能发送 GET 请求,且每一个请求都单独创建一个 TCP 连接,响应端只能返回 HTML 格式的数据,响应完成之后 TCP 请求断开。

这样的请求方式虽然能够满足当时的使用需求,但也还是暴露出了一些问题。

HTTP/0.9 痛点:

请求方式唯一,返回格式唯一 TCP 连接无法复用

HTTP/1.0

HTTP/1.0 诞生于 1996 年,它在 HTTP/0.9 的基础上,增加了 HTTP 头部字段,极大扩展了 HTTP 的使用场景。这个版本的 HTTP 不仅可以传输文字,还能传输图像、视频、二进制文件,为互联网的迅速发展奠定了坚实的基础。

核心特点如下:

请求端增加 HTTP 协议版本,响应端增加状态码。 请求方法增加 POST、HEAD。 请求端和响应端增加头部字段。 Content-Type 让响应数据不只限于超文本。 Expires、Last-Modified 缓存头。 Authorization 身份认证。 Connection: keep-alive 支持长连接,但非标准。

GET/mypage.htmlHTTP/1.0User-Agent:NCSA_Mosaic/2.0(Windows3.1)

200OKDate:Tue,15Nov199408:12:31GMTServer:CERN/3.0libwww/2.17Content-Type:text/html<html><body>HelloWorld</body></html>

请求示意图如下:

HTTP/1.0

可以看到,HTTP/1.0 扩展了请求方法和响应状态码,并且支持定义 HTTP 头部字段,通过 Content-Type 头,我们就能传输任何格式的数据了。同时可以看出,HTTP/1.0 仍然是一个请求对应一个 TCP 连接,不能形成复用。

HTTP/1.0 痛点:

TCP 连接无法复用。 HTTP 队头阻塞,一个 HTTP 请求响应结束之后,才能发起下一个 HTTP 请求。 一台服务器只能提供一个 HTTP 服务。
展开阅读全文
免责声明:"5G之家"的传媒资讯页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权
等问题,请与我们联系删除或处理。稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实
其内容的真实性,更不对您的投资构成建议。我们不鼓励任何形式的投资行为、购买使用行为。

相关推荐

关键词:

本站由阿里云提供计算和安全 Copyright ©5gzj.net. All Rights Reserved. 违法举报平台12377 浙ICP备20028707号-2