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

相关推荐
treesforest8 小时前
IP定位技术在网络犯罪侦查中的应用与价值
网络·网络协议·tcp/ip·网络安全·ip归属地查询·反欺诈
外滩运维专家8 小时前
HTTPS 证书报错排查手册:6 个高频错误码及解决方法
网络协议·http·https
起司喵喵10 小时前
通过Certbot自动申请更新HTTPS网站的SSL证书
网络协议·https·ssl
纵有疾風起10 小时前
计算机网络的性能指标体系:带宽、时延、吞吐量
计算机网络·rtt·408·带宽·性能指标·吞吐量·时延
鲜花飘飘扬12 小时前
HTTP请求头中表示代理IP地址的属性及获取情况
网络协议·tcp/ip·http
paopaokaka_luck16 小时前
基于springboot3+vue3的智能文库平台(AI智能搜索、AI智能汇总、实时在线状态展示、多格式文档预览与富文本编辑、Echarts图形化分析)
前端·网络·spring boot·网络协议·echarts
发光小北18 小时前
SG-RS232/485/422-Fiber-110 串口光纤收发器如何使用?
网络协议
纵有疾風起18 小时前
从OSI到TCP/IP——分层架构的思想根源与模型之争
tcp/ip·计算机网络·架构·osi·408·体系结构·分层
M1582276905520 小时前
工业跨网段通信零改造方案!SG-NAT-210/410 NAT 网关全功能解析,不改 PLC IP 实现多协议互通
网络·网络协议·tcp/ip
实心儿儿20 小时前
Linux —— 应用层协议HTTP
linux·网络·http