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

相关推荐
XUEYUAN52125 天前
ASN 自治系统号风控:平台如何通过 IP 所属自治域批量识别代理流量
python·网络协议·http·网络安全·socks5
CHENKONG_CK5 天前
破解制鞋打磨痛点:RFID赋能去毛刺工序自动化升级
网络·单片机·嵌入式硬件·网络协议·tcp/ip
z落落5 天前
C#UDP+串口服务端+UDP 客户端(含 CRC16 校验)
网络·网络协议·udp
花间相见5 天前
【计算基础|网络04】—— HTTP接口实战(下):接口测试、鉴权与跨域排错
java·linux·人工智能·后端·python·计算机网络·postman
云运维笔记5 天前
华为设备IP地址配置全攻略
运维·网络·计算机网络·华为
曼巴UE55 天前
UE5 客户端 需要的网络同步概念总结(3 )-事件同步 RPC 以及三种调用方式
网络·c++·网络协议·学习·rpc·ue5
captain3765 天前
HTTP(2)
java·网络·http·java-ee
开开心心就好5 天前
安卓手写文字生成工具,多种纸张一直免费
网络·网络协议·tcp/ip·leetcode·智能手机·电脑·模拟退火算法
比兔代理6 天前
正向代理与反向代理技术辨析,为什么代理 IP 属于正向代理
服务器·网络·http·ip
鹿鸣天涯6 天前
护网专项工作 | 勒索病毒防护指南
网络·计算机网络·安全