网络分层协议和应用模型

分层模型

五层网络模型

请添加图片描述
MAC地址跟IP地址的区别:MAC地址是唯一的,相当于每个人的指纹,出生时就是唯一的;IP地址就相当于是你当前的住址,是会发生变化的,但是是动态唯一的。

应用层协议

URL

URL(uniform resource locator,统一资源定位符)。用于定位网络服务。
请添加图片描述
它表示:从网络中哪台计算机(domain)中的哪个程序(port)寻找哪个服务(path),以及要用什么样的协议(schema)通信

协议为HTTP时,默认端口号为80 ,端口可省略不写
协议为HTTPS时,默认端口443,可省略

URI

URI(Uniform Resource Identifier)统一资源标识符,它包含两个子集:URL和URN(Uniform Resource Name)。URL是用来定位资源的,而URN是用来命名资源的。所以URL是URI的子集。

测试小例子:

如果访问一个地址http://www.baidu.com/imgs/1.png的结果返回了一个图片。那可以说明后端有一个/imgs/1.png这样的目录和文件吗?
答案是:并不能说明什么!!
因为访问地址链接到的是后端的程序,后端程序规定你用什么路径访问,你就得用什么路径访问,跟程序所在的文件路径没有关系

HTTP

超文本传输协议(Hyper Text Transfer Protocol)

该协议规定了两个方面的内容:

  • 传递消息的模式
  • 传递消息的格式

请添加图片描述
HTTP使用的消息传递模式,是【请求-响应模式】,非常简单,【请求-响应】完成后,一次交互结束。
HTTP消息格式是一种纯文本的格式,文本分为三个部分:

  • 请求行(包括请求方法(如GET、POST等)、请求的URL路径和HTTP协议版本号);对应响应行(包括HTTP协议版本号、状态码(表示请求的处理状态,如200表示成功,404表示未找到等)和对应的状态消息)
  • 请求头(用于传递关于消息的元数据信息,由多个键值对组成的列表,用于传递诸如内容类型、内容长度、缓存控制、认证信息等相关信息)
  • 请求体(携带具体的数据内容,常包含请求参数或数据);对应响应体(通常包含请求所得的资源数据或相关内容)消息主体可以是任意类型的数据,如文本、HTML、JSON、XML、二进制数据等。

HTTP和HTTPS的区别

1. 基本概念:

HTTP协议规定了如何从网站服务器传输超文本到本地浏览器,是基于客户端和服务器端架构工作的,它可以使浏览器更加高效、网络传输减少。
HTTPS是HTTP的安全版,在HTTP的基础上加入SSL层(加密/身份验证层),保证数据传输的安全性,并且确认网站的真实性。

2. 区别:

HTTP传输是明文传输,不安全;HTTPS在HTTP的基础上设计了SSL(Secure Sockets Layer)协议,用于对传输数据进行加密和身份认证。
主要区别如下:

  1. HTTPS协议需要申请CA(Certificate Authority,数字证书认证机构)证书,需要一定费用。
  2. HTTP是明文传输,数据未加密,安全性差;HTTPS具有加密的SSL安全协议,安全性好。
  3. HTTP和HTTPS使用的是不同的连接方式,HTTP的连接是无状态的。默认端口也不同:HTTP默认端口80,HTTPS默认端口443.
  4. HTTP页面响应速度更快,因为它使用的是TCP三次握手建立连接,客户端和服务端需要交换3个包,HTTPS协议除了三次握手交换3个包,SSL还需要交换9个包,共12个包。
3. http1.x 和http2.x区别
  1. HTTP2是二进制传输,HTTP1是文本传输
  2. HTTP2支持多路复用,即在单个TCP连接上同时发送多个HTTP请求和响应,显著提高性能和效率,充分利用网络资源。
  3. HTTP2头部压缩。将头信息压缩后再发送,并且客户端和服务端共同使用一张头信息表,这样每次传输时只需要传递这张表的ID就好了,根据索引ID查询头信息。
  4. HTTP2支持在未经客户端允许的情况下主动推送信息。
4. HTTPS工作原理:
  1. 客户端发起HTTPS请求,连接到服务端的443端口
  2. 要使用HTTPS协议,前提是要申请CA证书的,颁发证书的同时会产生一个私钥(钥匙)和公钥(锁头),私钥(钥匙)由服务端自己保存,不可泄漏,公钥(锁头)是附带在证书中的,可以公开;证书本身还附带一个电子签名,用来验证证书的完整性和真实性,可以防止证书被篡改。
  3. 服务端响应客户端请求后,将证书传递给客户端
  4. 客户端解析证书(这一步是浏览器内置的SSL/TLS实现),并对其进行验证(验证证书颁发机构是否可信、证书是否过期,证书中域名与实际域名是否一致)
  5. 如果证书没有问题,客户端就从证书中取出公钥,然后客户端生成一个随机码KEY,使用公钥对其加密,加密后发送给服务端,
  6. 服务端接收到加密的随机码KEY之后,使用私钥对其解密,得到相同的随机码KEY
  7. 至此,客户端和服务端建立安全连接。服务器可以用KEY对数据加密发送给客户端,客户端也可以用KEY对数据解密,双方使用对称加密实现数据传递。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/770443.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

node.js 常用命令71条详解

一、Node.js 常用的命令包括: node 某个js文件:调用 Node.js 程序,运行指定的 JavaScript 文件。例如,如果你有一个名为 app.js 的文件,你可以使用 node app.js 来运行它。npm install:用于安装 Node.js 项…

web渗透测试漏洞流程:红队目标信息收集之资产搜索引擎收集

web渗透测试漏洞流程 渗透测试信息收集---域名信息收集1.域名信息的科普1.1 域名的概念1.2 后缀分类1.3 多重域名的关系1.4 域名收集的作用1.5 DNS解析原理1.6 域名解析记录2. 域名信息的收集的方法2.1 基础方法-搜索引擎语法2.1.1 Google搜索引擎2.1.1.1 Google语法的基本使用…

基于Colab训练的yolov4-tiny自定义数据集(可用于OpenCV For Unity)

参考资料文档和视频。 1.打开文档,点击【文件】【在云端硬盘中保存一份副本】,即将文档复制到自己云端硬盘。 2.打开该文件,按文中提示进行。 【代码执行程序】【更改运行时类型】修改运行时为GPU(免费的GPU不好用,收费的好用,某宝上几十元就可用一个月) 步骤1) !git…

如何调用occtproxy放入自己的wpf文件

1.创建一个wpf程序 2.添加项目occtproxy.vcxproj 3.把该项目配置类型设为dll 4.添加引用 5.报错显示,这是因为还没有生成dll 6.把occtproxy设为启动项目运行,设定输出目录在该目录下,生成dll 7.再运行,即可

一文整合工厂模式、模板模式、策略模式

为什么使用设计模式 今天终于有时间系统的整理一下这几个设计模式了, 这几个真是最常用的,用好了它们,你就在也不用一大堆的if else 了。能更好的处理大量的代码冗余问题。 在我们的实际开发中,肯定会有这样的场景:我…

2024年云仓酒庄新动态:铸就新篇章

原标题:刘总出席成都糖酒会:信任铸就云仓酒庄新篇章,共襄盛举展未来近日,备受瞩目的成都糖酒会盛大开幕,吸引了来自全国各地的业界精英和代表。在这场盛大的行业盛会上,云仓酒庄的刘总亲临现场。 现场&…

以XX大学校园为例的智慧能源管理系统建设方案【能源物联网+智能微电网数字校园、节能校园、低碳校园】

建设背景 贯彻落实《中共中央 国务院关于完整准确全面贯彻新发展理念做好碳达峰碳中和工作的意见》和《国务院关于印发2030年前碳达峰行动方案的通知》要求,把绿色低碳发展纳入国民教育体系。 2021年3月26日为推动信息技术与教育教学深度融合,教育部印…

使用SQLAlchemy库进行数据库操作的基本流程[简单示例]

SQLAlchemy ORM(Object-Relational Mapping)是 SQLAlchemy 库的一部分,它允许开发者通过对象的方式来操作数据库,而不需要直接编写 SQL 语句。ORM 将数据库中的表映射为 Python 类,表中的每一行数据则映射为相应类的对…

solr functionquery函数查询自定义函数实现

Solr是一个开源的搜索平台,基于Apache Lucene库构建,主要用于提供全文搜索的功能。它被设计为一个高度可靠、可扩展的搜索应用服务器。以下是Solr的一些主要使用场景: 全文搜索:Solr最核心的功能是提供全文搜索,它可以…

2.6 IDE(集成开发环境)是什么

IDE(集成开发环境)是什么 IDE 是 Integrated Development Environment 的缩写,中文称为集成开发环境,用来表示辅助程序员开发的应用软件,是它们的一个总称。 通过前面章节的学习我们知道,运行 C 语言&…

eclipse导入svn项目

1、配置maven 2、用svn引入项目 3一直点击next,到最后选完成。

基于springboot的房屋租赁管理系统+数据库+免费远程调试

项目介绍: 基于springboot的房屋租赁管理系统。Javaee项目,springboot项目,采用M(model)V(view)C(controller)三层体系结构,通过Spring SpringBoot JspMaven来实现。MyS…

Qt_day4:2024/3/25

作业1: 完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面 如果账号和…

关于docker-Engine使用的存储驱动devicemapper的常识

缘起: 今天值班的兄弟找我说PAAS节点扩容后有个 docker-container 创建一直失败,看不懂输出的报文信息。 看值班给出的投屏发现和storage-driver有关,提示信息如下: Error running DeviceCreate (createSnapDevice) dm_task_ru…

STM32IAP技术

STM32IAP技术 内存 1、程序存储在0x0800 0000。 2、程序从0x0000 0000开始执行。 3、0x0000 0000和0x0800 0000 相互映射。 4、厂商自带的Bootloader存在系统存储区。地址为0x1FFF F000 5、不同容量单片机闪存大小不同,对于主存储闪存容量不多于512KB的GD32F30x_C…

MongoDB聚合运算符:$isArray

文章目录 语法使用举例 $isArray聚合运算符返回操作数是否是一个数组&#xff0c;返回一个布尔值。 语法 { $isArray: [ <expression> ] }使用 <expression>为任何类型的表达式&#xff0c;举例说明&#xff1a; 举例结果说明{ $isArray: "hello" }f…

【iOS ARKit】播放3D音频

3D音频 在前面系列中&#xff0c;我们了解如何定位追踪用户&#xff08;实际是定位用户的移动设备&#xff09;的位置与方向&#xff0c;然后通过摄像机的投影矩阵将虚拟物体投影到用户移动设备屏幕。如果用户移动了&#xff0c;则通过VIO 和 IMU更新用户的位置与方向信息&…

钡铼技术R40路由器助力构建无人值守的智能化污水处理厂

钡铼技术R40路由器作为智能化污水处理厂的关键网络设备&#xff0c;发挥着至关重要的作用&#xff0c;助力构建无人值守的智能化污水处理系统。在现代社会&#xff0c;污水处理是城市环境保护和可持续发展的重要组成部分&#xff0c;而智能化污水处理厂借助先进的技术和设备&am…

后端常问面经之Java基础

基本数据类型 Java中有8种基本数据类型&#xff1a; 6种数字类型&#xff1a; 4种整数型&#xff1a;byte、short、int、long 2种浮点型&#xff1a;float、double 1种字符类型&#xff1a;char 1种布尔类型&#xff1a;boolean 数据类型的默认值以及所占空间如下&#x…

由浅到深认识Java语言(25):正则表达式

该文章Github地址&#xff1a;https://github.com/AntonyCheng/java-notes 在此介绍一下作者开源的SpringBoot项目初始化模板&#xff08;Github仓库地址&#xff1a;https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址&#xff1a;https://blog.c…