HTTP协议演进

1 篇文章 0 订阅
1 篇文章 0 订阅

HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议。HTTP是一个客户端和服务器端请求和应答的标准(TCP)。客户端是终端用户,服务器端是网站。通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。

HTTP 详解

URI(uniform resource identifier,统一资源标识符)

用来传输数据和建立连接。URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息

URL(UniformResourceLocator, 统一资源定位符)

URL是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源。
一个完整的URL:
协议//域名:端口/虚拟目录/文件名?参数#锚

URN(uniform resource name,统一资源命名)

通过名字来标识资源,URN 和 URL 都属于 URI。URN是作为特定内容的唯一名称使用的,与当前资源的所在地无关。使用URN,就可以将资源四处迁移,而不用担心迁移后无法访问。URN在web中主要应用是下拉菜单的制作。使用URN时下拉菜单的易扩展性将会得到很大的提高。

Request

Request由请求行(request line)、请求头部(header)、空行和请求数据四个部分组成。
请求行,用来说明请求类型,要访问的资源以及所使用的HTTP版本。请求头部,紧接着请求行(即第一行)之后的部分,用来说明服务器要使用的附加信息。空行,请求头部后面的空行是必须的。请求数据也叫主体,可以添加任意的其他数据。

Response

Response由四个部分组成,分别是:状态行、消息报头、空行和响应正文。
状态行,由HTTP协议版本号, 状态码, 状态消息 三部分组成。消息报头,用来说明客户端要使用的一些附加信息。空行,消息报头后面的空行是必须的。响应正文,服务器返回给客户端的文本信息。

HTTP工作原理

在浏览器地址栏键入URL,按下回车之后会经历以下流程:

Web客户端 DNS 服务器 Web服务器 解析该 URL 中的域名所对应的 IP 地址 连接 HTTP Request 接受请求并返回HTTP Response connection为close,服务器主动关闭TCP连接 connection为keepalive,则该连接会保持 解析HTML内容 Web客户端 DNS 服务器 Web服务器

HTTP 1.1

1999年制定,是HTTP协议的的第一个主要版本,基于TCP。
文本格式,有序并阻塞

HTTP 2.0

HTTP/2(超文本传输协议第2版,最初命名为HTTP 2.0),是HTTP协议的的第二个主要版本,使用于万维网。HTTP/2是HTTP协议自1999年HTTP 1.1发布后的首个更新,主要基于SPDY协议(是Google开发的基于TCP的应用层协议,用以最小化网络延迟,提升网络速度,优化用户的网络使用体验)。基于TCP。
二进制格式:二进制协议解析起来更高效、“线上”更紧凑,更重要的是错误更少。
完全多路复用:只需一个连接即可实现并行
报头压缩:HTTP/2降低了开销
服务器推送:服务器可以将响应主动“推送”到客户端缓存中,以此来避免往返的延迟。

HTTP 3.0 (QUIC)

QUIC 扩展了这种多路复用,支持“移动IP”。QUIC是面向连接的。但是比起基于TCP,更像是基于UDP。

总结

HTTP 1.1 过去
HTTP 2.0 现在
HTTP 3.0 未来

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值