【计算机网络】HTTP 协议解析

简介: 【1月更文挑战第10天】【计算机网络】HTTP 协议解析

HTTP 超文本传输协议,是一个基于请求与响应无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。

版本

产生时间

内容

发展现状

HTTP/0.9

1991年

不涉及数据包传输,规定客户端和服务器之间通信格式,只能GET请求

没有作为正式的标准

HTTP/1.0

1996年

短链接,传输内容格式不限制,增加PUT、PATCH、HEAD、 OPTIONS、DELETE命令

正式作为标准

HTTP/1.1

1997年

持久连接(长连接)、节约带宽、HOST域、管道机制、分块传输编码

2015年前使用最广泛

HTTP/2

2015年

多路复用、服务器推送、头信息压缩、二进制协议等

逐渐覆盖市场


多路复用:通过单一的HTTP/2连接请求发起多重的请求-响应消息,多个请求stream共享一个TCP连接,实现多流并行而不是依赖建立多个TCP连接。

HTTP 协议报文格式:

HTTP 协议特点:

  • 无状态:协议对客户端没有状态存储,对事物处理没有“记忆”能力,比如访问一个网站需要反复进行登录操作
  • 无连接:HTTP/1.1之前,由于无状态特点,每次请求需要通过TCP三次握手四次挥手,和服务器重新建立连接。比如某个客户机在短时间多次请求同一个资源,服务器并不能区别是否已经响应过用户的请求,所以每次需要重新响应请求,需要耗费不必要的时间和流量。
  • 基于请求和响应:基本的特性,由客户端发起请求,服务端响应
  • 简单快速、灵活
  • 通信使用明文传输数据、请求和响应不会对通信方进行确认、无法保护数据的完整性

针对无状态的一些解决策略:

  • 通过Cookie/Session技术
  • HTTP/1.1持久连接(HTTP keep-alive)方法,只要任意一端没有明确提出断开连接,则保持TCP连接状态,在请求首部字段中的Connection: keep-alive即为表明使用了持久连接

客户端输入URL回车,DNS解析域名得到服务器的IP地址,服务器在80端口监听客户端请求,端口通过TCP/IP协议(可以通过Socket实现)建立连接。HTTP属于TCP/IP模型中的运用层协议,所以通信的过程其实是对应数据的入栈和出栈。

报文从运用层传送到运输层,运输层通过TCP三次握手和服务器建立连接,四次挥手释放连接。

相关文章
|
1天前
|
监控 负载均衡 网络协议
|
1天前
|
网络协议 物联网 网络安全
|
1天前
|
监控 安全 网络虚拟化
|
1天前
|
监控 安全 网络性能优化
|
2天前
|
存储 缓存 开发框架
Flutter的网络请求:使用Dart进行HTTP请求的技术详解
【4月更文挑战第26天】了解Flutter网络请求,本文详述使用Dart进行HTTP请求
|
11天前
|
域名解析 网络协议 Linux
TCP/IP协议及配置、IP地址、子网掩码、网关地址、DNS与DHCP介绍
TCP/IP协议及配置、IP地址、子网掩码、网关地址、DNS与DHCP介绍
|
3天前
|
XML 人工智能 Java
Spring Bean名称生成规则(含源码解析、自定义Spring Bean名称方式)
Spring Bean名称生成规则(含源码解析、自定义Spring Bean名称方式)
|
11天前
yolo-world 源码解析(六)(2)
yolo-world 源码解析(六)
23 0
|
11天前
yolo-world 源码解析(六)(1)
yolo-world 源码解析(六)
17 0

推荐镜像

更多