IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 【计算机网络】HTTP协议详解(一):初识HTTP -> 正文阅读

[网络协议]【计算机网络】HTTP协议详解(一):初识HTTP

初识HTTP



前置知识

1.网络分层模型

OSI七层模型与TCP/IP四层模型及其对应
在这里插入图片描述

2.TCP/IP协议

要学习HTTP协议,我们首先要先了解一下TCP/IP协议,因为HTTP协议是以TCP/IP协议为基础的,TCP/IP是一个协议族,是一个四层协议组成的系统(参考以上分层模型)

(1)应用层:这一层有许多的协议,基于这些协议,为用户提供网络应用服务是与用户最近的一层,是与用户关系最为密切的一层

(2)传输层:端到端的通信服务,有两种不同性质的协议:TCP(有连接,可靠)、UDP(无连接、不可靠)

(3)网络层:主要解决数据在网络中的路由问题(即传输路径),基于IP协议划分的IP地址,通过路由算法来确定最优的传输路径

(4)链路层:涉及到的网络硬件如NIC网络适配器(网卡)及一些光电物理特性

3.TCP的三次握手

(1)TCP是有连接的通信,在通信之前,首先要在通信的两端之间建立一个全双工的通信(即信道中既可以发送也可以接收数据)——可以通俗得理解为两个人之间打电话,必须得在电话通了之后再开始对话
建立一个TCP连接,会采用三次握手策略:
在这里插入图片描述
第一次握手:首先,服务端一直处于监听状态,监听客户端的连接请求,客户端主动发起连接请求,会发送一个带有SYN标志的连接请求报文,然后进入SYN-SEND状态,开始监听服务端返回确认报文

第二次握手:服务端被动打开连接,并要返回一个ACK确认报文,同时附带上自己的SYN连接请求,然后进入SYN-RECV状态

第三次握手:客户端收到确认消息后,也需要返回一个ACK确认报文,告知服务端你的确认报文及连接请求信息我也确认收到了,此时双方进入Established状态,TCP连接建立,可以开始进行数据传输

为什么要三次握手?意义何在?

因为TCP协议的特点,传输数据前要确保双方的连接已经建立,双方都能明确各自的收发能力都是正常的:
第一次握手,客户端发出消息,对于接收到消息的服务端,就能得出结论:客户端的发送能力是正常的,并且我服务端的接收能力也是正常的
第二次握手,服务端返回确认消息,对于接收到返回消息的客户端,就能得出结论:服务端的发送能力是正常的,并且我客户端的接收能力也是正常的,同时因为接收方返回了确认消息,也就证明了我客户端第一次发出的连接请求服务端收到了,我客户端的发送能力也是正常的
第三次握手,客户端也返回一个确认消息,来告知服务端你的确认消息我收到了,对于接收到确认消息的服务端,也就明确了我服务端的发送能力也是正常的
————即三次握手后,通信双方都确信了自己的收发能力是正常的

可以通俗地理解为:
A、B两人打电话,
A说:“喂,你能听到我说话吗?”
B说:“我能,你能听到我说话吗?”
A说:“能”

(2)TCP基于传输确认机制(ACK),即发送方发送一个消息,接收方需要返回一个确认消息——ACK(回执)。如果发送方没接收到正确的ACK,就会重新发送数据直到接收到ACK为止。
比如:发送方发送的数据序号是seq,那么接收方会发送seq + 1作为ACK,这样发送方就知道接下来要发送序号为seq + 1的数据给接收方了。

(3)超时重传机制——发送方发出消息后,会启动一个坚持定时器,在一定的时间内没有收到接受方返回的确认消息,也会认为没有发送成功并重新发送一次消息

——所以说TCP是可靠传输的协议

4.数据在网络中的传输

发送方数据从顶层(应用层)开始,逐层往下,遵守各层的网络协议的数据格式进行封装,应用层将数据封装为HTTP格式报文,传递给传输层,传输层再在数据的头部添加TCP首部封装为TCP数据报,传输层建立一个TCP连接,再交给网络层,网络层根据IP协议在数据头部添加IP首部标记,封装为IP数据报,网络层根据本地路由表确定下一跳的IP地址,并根据IP地址查询目的MAC地址表,告知链路层,链路层在数据头部添加帧首部标记,并根据目的MAC地址表查询出发出数据的接口,并将数据从该接口传出

接收方链路层接收到数据,逐层往上地将数据拆包,最终在应用层将数据展现给客户


一、什么是HTTP协议?

超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)
是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端浏览器

协议即为规则,即从A传送超文本(有图文内容的文件,文本内容中有超链接,最常见的格式为HTML)到B需要遵守这个规则

HTTP协议是作用于应用层的协议,HTTP1.1是现在最常用的版本

二、Web与HTTP

Web是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统


未完待续…

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章           查看所有文章
加:2021-09-09 12:08:14  更:2021-09-09 12:10:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年6日历 -2024/6/18 19:20:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码