计算机网络: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**

相关推荐
千千寰宇17 分钟前
[网络协议/文件] `SMB` 协议:一种Windows主流的局域网网络文件共享协议
计算机网络·操作系统-磁盘管理/文件系统
DfromY3 小时前
【随手记】YOCTO下MQTT使用简记
c语言·网络协议
@insist1233 小时前
网络工程师-OSI 七层模型与 TCP/IP 协议族:核心考点全解析
网络·网络协议·tcp/ip·网络工程师·软考·软件水平考试
天草二十六_简村人12 小时前
阿里云的NAT和弹性公网IP,解决ECS机器访问外网的实现方案
运维·后端·网络协议·阿里云·云计算·ip
HwJack2013 小时前
HarmonyOS HTTP请求:从“能跑就行”到“优雅可靠”的进化之路
http·华为·harmonyos
吴声子夜歌13 小时前
Node.js——WebSocket
websocket·网络协议·node.js
嵌入式学习菌13 小时前
EMS - 电表 / 智能插座 TCP 通讯协议
网络·网络协议·tcp/ip
AnalogElectronic13 小时前
对https一系列问题的疑问与解答
网络协议·http·https
哇蛙蛙13 小时前
H3CNE--21.RIP
网络·经验分享·网络协议·tcp/ip·计算机网络·智能路由器
A968_13 小时前
IP-vlan实验
网络·网络协议·tcp/ip