千家信息网

计算机网络之十二:HTTP协议

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,一:HTTP简介HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和Internet
千家信息网最后更新 2026年10月31日计算机网络之十二:HTTP协议

一:HTTP简介

HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。

它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组

IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC,RFC 1945定义了HTTP/1.0版本。

其中最著名的就是RFC 2616。RFC 2616定义了今天普遍使用的一个版本--HTTP 1.1。

HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。

它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,

以及哪部分内容首先显示(如文本先于图形)等。

HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。

http://cimc-express.com/ 是哥URL,叫统一资源定位符。 HTTP称为协议,cimc-express.com是一个域名,表示互联网上

的一个位置。浏览器会将cimc-express.com解析为IP地址,HTTP 是基于TCP协议的,要先建立TCP连接。

目前使用的HTTP协议大部分是1.1. 在1.1协议里面,默认开启了Keep-Alive,这样建立的TCP连接,可以在多次请求中复用。

二:HTTP发送报文

HTTP报文大概分为三大部分。第一部分是请求行,第二部分是请求的首部,第三部分是请求的正文实体。

1.请求行

URL就是http://cimc-express.com,版本是HTTP1.1,HTTP中的方法类型有:

GET: 去服务器端获取资源,对于访问网页来讲,获取的是一个页面;对于一个基于HTTP协议的API,返回的可能是一个

JSON字符串

POST: 向服务器端提交资源

PUT: 向服务器端提交资源,POST往往是用来创建一个资源,PUT往往是用来修改一个资源

DELETE: 删除资源

2.首部

首部是key:value形式,保存一些非常重要的字段。Accept-Charset表示客户端可以接受的字符集,Content-Type指正文的

格式,Cache-Control是用来控制缓存的。

3.正文实体

三:HTTP数据发送

1.HTTP协议是基于TCP协议的,它使用面向连接的方式发送请求,通过stream二进制流的方式传给对方。到了TCP层,会把

二进制流变成一个报文段发送给服务器。

2.在发送每个报文段的时候,都需要对方有一个回应ACK,来保证报文可靠到达了对方。如果没有回应,那么TCP这一层会

进行重新传输,直到可以到达。同一个包 有可能被传了多次,但是HTTP这一层不知道这一点。

3.TCP层发送每一个报文的时候,都需要加上自己的地址(源地址)和它想要去的地址(目标地址),将这两个信息放到IP头

里面,交给IP层进行传输。

4.IP层需要查看目标地址和自己是否在同一个局域网。如果是,就发送ARP协议来请求这个目标地址对应的MAC地址,然后将

源MAC地址和目标MAC地址放入MAC头, 发送出去即可;如果否,就需要发送到网关,还需要发送ARP协议,来获取网关的

MAC地址,然后将源MAC地址和网关MAC放入MAC头,发送出去。

5.网关收到包发现MAC符合,取出目标IP地址,根据路由协议找到下一跳的路由器,获取下一条路由器的MAC地址,将包发

给吓一跳路由。

6.目标的机器发现MAC地址符合,就将包收起来;发现IP地址符合,根据IP头重协议项,知道自己上一层是TCP协议,于是解

析TCP的头,里面有序列号,需要看看这个序列 号是不是我要的,如果是就放入缓存中然后返回一个ACK,如果不是就丢弃

7.TCP头里面还有端口号,HTTP的服务器正在监听这个端口号。于是,目标机器自然知道是HTTP服务器这个进程想要这个包,

于是将包发给HTTP服务器。HTTP服务器的进程 看到,原来这个请求是要访问一个网页,于是就把这个网页发送给客户端。


四:HTTP返回报文

1.状态码

200:交易成功,400:错误请求 404:没有发现文件、查询或URl 500:内部服务器错误 502:网关错误

2.返回首部key:value. Retry-After表示客户端应该在多长时间以后再次尝试一下,Content-Type表示返回的是HTML,还是

JSON。

3.构造好了返回的HTTP报文,接下来就是把这个报文发送出去。是交给Socket去发送,还是交给TCP层,让TCP层将返回的

HTML,也分成一个个小的段,并且保证每个段都可靠 到达。

五:HTTP2.0

1.HTTP1.1在应用层以纯文本的形式进行通信,每次通信都要带完整的HTTP的头,而且不考虑pipeline模式的话,每次的过程

总是一去一回。这样在实时性和并发性上都存在问题。

2.HTTP2.0会对HTTP头进行一定的压缩,将原来每次都要携带的大量key:value在两端建立一个索引表,对相同的头只发送

索引表中的索引。

3.HTTP2.0协议将一个TCP的连接中,切分成多个流,每个流都有自己的ID,而且流可以是客户端发往服务端,也可以是服务

端发往客户端,它其实只是一个虚拟的通道,流是有 优先级的

4.HTTP2.0还将所有的传输信息分割为更小的消息和帧,并对它们采用二级制格式编码。常见的帧有Header帧,用于传输

Header内容,并且会开启一个新的流。再就是Data帧,用来 传输正文实体,多个Data属于同一个流。

5.通过这两种机制,HTTP2.0的客户端可以将多个请求分到不同的流中,然后将请求内容拆成帧,进行二进制传输。这些帧可

以打散乱序发送,然后根据每个帧首部的流标识符重新组装 ,并且可以根据优先级,决定优先处理哪个流的数据。

举例: 一个页面要发送三个独立的请求,一个获取css,一个获取js,一个获取图片jpg. 如果使用HTTP 1.1 就是串行的;但是如果

使用HTTP 2.0,就可以在一个连接里,客户端和服务端都可以 同时发送多个请求或回应,而且不用按照顺序一对一对应。

HTTP2.0成功解决了HTTP1.1的队首阻塞问题,同时,也不需要通过HTTP 1.X的pipeline机制用多条TCP连接来实现并行请求

与响应;减少了TCP连接数对服务器性能的影响,同时将页面的 多个数据css,js,jpg等通过一个数据连接进行传输,能够加快页

面组件的传输速度。

六:QUIC

HTTP 2.0虽然大大增加了并发性,但还是有问题的。因为HTTP 2.0也是基于TCP协议的,TCP协议在处理包时是有严格顺序的

。Google的QUIC协议基于UDP实现,包含自定义连接机制,

自定义重传机制,无阻塞多路复用和自定义流量控制。


地址 服务 传输 服务器 报文 客户 客户端 目标 资源 多个 网关 就是 数据 机制 正文 路由 页面 二进制 内容 同时 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 新华互联网科技 互联网科技工作委员会毛军 工业互联网科技新基建 互联网科技与金融科技 北京互联网科技公司 深圳互联网络科技有限公司 易通互联网络科技有限公司 互联网高科技企业 中国互联网金融科技基金 互联网和高科技公司 恒银科技与互联网金融 银川新华互联网科技职业技术培训学校图片 南平创想时代互联网科技有限公司 注册互联网科技公司经营范围大全 搜狐科技互联网 电子商务与互联网科技的关系 广州互联网高科技取餐柜 第三届互联网大会安防黑科技 现代科技的标志之一的互联网 伍佰万互联网科技是干嘛的 南京欣网互联网络科技有限公司 互联网和科技技术 互联网 科技创业 互联网科技公司名称 江苏南京365互联网科技 汽车互联网创新科技园 移动互联网科技公司 电子科技大学互联网创业大赛 伊宁互联网科技做什么的 互联网科技大会大佬
0