计算机网络:http协议

计算机网络:http协议

一、本文内容与前置知识点

1. 本文内容

HTTP自己用到的状态码,方法,HTTP各版本区别。

2. 前置知识点

  1. c++关于指针和内存分配知识点

二、HTTP协议工作简介

1)面向事物的应用层协议。

2)请求-应答模型,这部分可以理解为同步通信。

工作图解如下
参考《计算机网络》6.4.3 超文本传输协议HTTP p267

1. 特点

1)基于TCP连接 :保证了数据可靠传输,所以HTTP不再需要考虑数据丢失和重传。

2)本身是无连接协议 :从http协议层面来说,不存在http连接建立。

3)无状态的:服务器并记录客户访问的过程,每一个都是新的独立的http请求,简化了服务器设计,提高效率。

2. 传输时间分析

1)客户端和服务器tcp连接三次握手,第三次握手的时候会传输http请求报文。(1.5RTT时间)

2)服务器收到http请求报文之后进行数据准备,分片发送文件,需要花费时间T。

3)分片发送文件的最后一片到达的时间为1.5RTT+T+0.5RTT = 2RTT+T。
综上,一次http请求从开始到返回应答的时间是2RTT+T

在此之后会有四次挥手的连接释放过程,但是在此之前已经拿到应答了。

3. http报文结构

如下图所示:
参考《计算机网络》6.4.3超文本传输协议HTTP p271

1)开始行

用于区分请求报文和响应报文,会有所不同,请求报文主要是方法和URL,响应报文主要是状态码。

个人用到的常见方法

方法 意义
OPTION 请求一些选项信息
GET 读取URL标志的星系
POST 给服务器添加信息
DELETE 删除URL所标志的资源

状态码

1xx表示通知消息,2xx表示成功,3xx表示重定向,4xx表示客户端出错,5xx表示服务器差错。
个人用到常见状态码

状态码 含义
200 OK,请求成功
400 Bad Request,错误请求
404 Not Found,服务器无法找到请求资源
503 Service Unavailable,服务器暂时无法处理请求,因为忙碌或超载

2)首部行

3)实体主体

消息传输的载体,一般服务器返回的数据就在这个实体主题显示,在机器人API的数据请求指令中,实体主体内会包含json字符串格式的数据。

三、HTTP版本迭代

1. HTTP1.0和HTTP1.1主要区别

1)引入了长连接 ,一次http请求应答之后,tcp连接会继续持续一段时间,此时可以继续发送其他http请求,提高效率。

"Connections:close"代表此次http请求后会将长连接断开。

"Connections:keep-alive"代表此次http请求后还会有额外的请求,不打算断开tcp连接。

2)http1.1流水线模式(请求管线化),每个http请求不需要等待上一个请求应答就可以立刻发送,tcp连接建立后,访问所有对象都只需要一个RTT时间。但是响应必须按照请求发出顺序返回,存在头部阻塞

2. HTTP1.1和HTTP2主要区别

1)数据分帧:帧是 HTTP/2 协议中的最小单位。所有的 HTTP/2 通信都通过帧进行。每个帧都包含一个固定长度的头部(标识所属于的stream流)和一个可变长度的负载

2)引入了多路复用:有了固定长度头部之后,就可以表面这个帧属于那一个http请求流,此时头部阻塞问题解决,实现了真正的并发,所有流使用同一个tcp连接进行,

3. HTTPS与HTTP的主要区别

1)HTTPS使通过SSL\TLS进行了加密

2)端口号不同,HTTP是80默认,HTTPS443

3)HTTPS需要CA证书

4)HTTP 的连接简单,是无状态的;HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身 份认证的网络协议,比 HTTP 协议安全。

四、参考文献

《计算机网络》6.4.3 超文本传输协议HTTP p267**

《计算机网络》6.4.3超文本传输协议HTTP p271**

相关推荐
Web极客码2 小时前
WordPress网站中如何修复504错误
http·php·wordpress
颇有几分姿色4 小时前
OpenSSL 常见用法与命令输出解析
网络协议·https·ssl
yz7174 小时前
计算机网络•自顶向下方法:IP编址
网络·tcp/ip·计算机网络
IT 青年4 小时前
计算机网络 (17)点对点协议PPP
计算机网络
yz7175 小时前
计算机网络•自顶向下方法:网络应用原理
学习·计算机网络
网安墨雨6 小时前
TCP/IP网络协议攻击
网络·网络协议·tcp/ip
像污秽一样6 小时前
《计算机网络A》单选题-复习题库
计算机网络
背着黄油面包的猫8 小时前
计算机网络-数据链路层(ppp协议)
网络·网络协议·计算机网络
云计算DevOps-韩老师8 小时前
【网络云SRE运维开发】2024第52周-每日【2024/12/31】小测-计算机网络参考模型和通信协议的理论和实操考题-简要解析
linux·运维·网络·计算机网络·云计算·运维开发·perl
w3625012668 小时前
UDP和TCP的区别
网络协议·tcp/ip·udp