【HTTP 协议的前世今生】HTTP 1.0、HTTP 1.1 和 HTTP 2.0

本篇博客将从 HTTP 协议的概念出发,分别介绍 HTTP 协议各个版本的特点,以及对 HTTP 协议状态码和 HTTPS 协议进行说明。

首先,我们先来了解下 HTTP 协议的概念。


什么是 HTTP 协议

HTTP 协议 的全称为 HyperText Transfer Protocol(超文本传输协议),是互联网上应用最为广泛的、构建在 TCP 协议之上的应用层协议。它用于客户端与服务器之间的通信,规定了客户端和服务器之间的通信格式,包括请求与响应的格式。

设计 HTTP 最初的目的是为了提供一种发布和接收 HTML 页面的方法,用于将超文本从 WWW 服务器传输到本地浏览器。也就是说,HTTP 客户端每发起一个请求,都会建立一个到服务器指定端口(默认是 80 端口)的 TCP 连接。

而 HTTP 协议发展到今天,共经历了三次版本的变动,分别为 HTTP 1.0、HTTP 1.1 HTTP 2.0,现在的最新版本是 HTTP 2.0,接下来,我们一起回顾下 HTTP 协议的发展历程。


HTTP 协议的版本更迭

HTTP 的最早版本诞生在 1991 年,这个版本和现在比起来极其简单,没有 HTTP 头,没有状态码,甚至连版本号也没有,后来它的版本号才被定为 0.9,用来和其他版本的 HTTP 区分。

0.9 版本的协议就是一个交换信息的无序协议,仅限于文字。当 TCP 建立连接之后,服务器向客户端返回 HTML 格式的字符串,发送完毕后,就关闭 TCP 连接。由于没有状态码和错误代码,如果服务器处理的时候发生错误,只会传回一个特殊的包含问题描述信息的 HTML 文件。

可以看出,0.9 版本协议远不能满足日益发展的各种应用的需要,因此在 1996 年,发布了功能更加完善的新版本:HTTP 1.0

HTTP 1.0

相比 HTTP 0.9,HTTP 1.0 主要有如下特性:

  • 请求与响应支持头部;
  • 响应对象以响应状态码开始;
  • 响应对象不只限于超文本;
  • 支持更多类型的客户端向 web 服务器提交数据的方式,包括 GET、HEAD、POST;
  • 支持长连接(默认还是使用短连接)、缓存机制以及身份认证;

HTTP 1.0 大大丰富了 HTTP 的传输内容,除了文字,还可以发送图片、视频等,规定了连接方式和连接类型,极大扩展了 HTTP 的领域,为互联网的发展奠定了基础。

但是 HTTP 1.0 也有一个比较大的缺陷,就是浏览器的每次请求都需要与服务器建立 TCP 连接,服务器完成请求处理后立即断开该连接,服务器不会对每个客户进行跟踪,也不记录过去的请求。这个客户端和服务器端频繁建立和关闭连接的过程是相对费时的,会严重影响客户机和服务器的性能,之后的 HTTP 1.1 版本解决了这个问题,可以说 HTTP 1.1 版本是对 HTTP 1.0 版本的完善和改进。

HTTP 1.1

为了克服HTTP 1.0 的性能缺陷,HTTP 1.1 版本开始支持长连接(默认使用带流水线的长连接模式),在一个 TCP 连接上可以传送多个 HTTP 请求和响应,有效减少了建立和关闭连接的消耗和延迟。

除了长连接的优化,HTTP 1.1 版本在 1.0 版本的基础上还新增了以下特性:

错误状态响应码

HTTP 1.1中新增了 24 个错误状态响应码,如409(Conflict)表示请求的资源与资源的当前状态发生冲突ÿ

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盛夏温暖流年

可以赏个鸡腿吃嘛~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值