计算机网络总结
1. 网络分层
-
网络上进行协议分层的好处
①分层之后层次之间的耦合程度比较低,上层协议不必了解下层的细节,下层也不必了解上层的细节;
②方便的对某一层的协议进行替换; -
真实网络的协议分层
OSI 七层网络模型(教科书)
TCP/IP五层网络模型(当下最广泛)
应用层:关注传输过来的数据要干啥用,对应程序员写的应用程序
传输层:不考虑中间路径,只关注起点和终点
网络层:主要负责2个遥远的节点之间的路径规划
数据链路层:主要关注的2个相邻节点之间的传输,网络上相邻节点就是通过网线/光纤/无线直接连接的设备
物理层(纯硬件):网络通信的基础设施,网线、光纤、网络接口
这样分层之后,可以让程序员只关注一个子问题。
下面四层是操作系统内部已经封装好了,只用应用层才真正关心数据的用途。
程序员写网络程序主要编写的应用层代码,真正要发这个数据需要上层协议调用下层协议。(应用层需要调用传输层,传输层给应用层提供一组API)
-
在协议分层的背景下,数据如何通过网络层传输?
答:封装 and 分用。
发送方发送数据,要把数据从上到下,依次交给对应的层次的协议,进行封装
接收方收到数据,要把数据从下到上,依次交给对应的层次的协议,进行解析 -
路由器和交换机的区别
路由器,只需要封装分用到网络层;
交换机,只需要封装分用到数据链路层;
通常来说,路由器进行“三层转发”,交换机是进行“二层转发”。
但是实际上,路由器和交换机之间的界限越来越小,路由器可以通过设定特殊模式进行“二层转发”,交换机也有高端交换器支持三层准发。
2. TCP/UDP区别
TCP API 和 UDP API 这2个协议各自的特点
①TCP:有连接(使用TCP通信的双方需要刻意保存对方的相关信息)、可靠传输(尽可能的传输过去)、面向字节流(以字节为传输的基本单位,读写方式非常灵活)、全双工(一条路径双向通信)
②UDP:无连接(使用UDP通信的双方不需要刻意保存对方的相关信息)、不可靠传输(消息发了就发了,不关注结果)、面向数据包(以一个UDP数据包为基本单位)、全双工(一条路径双向通信)
3. HTTP和HTTPS
-
概念
HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准,用去从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效。
HTTPS:是以安全为目标的HTTP通道,HTTP的安全版,在HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就是需要SSL。
HHTPS协议的主要作用:①建立信息安全通道,保证数据传输的安全②确定网站的真实性。 -
HTTP和HTTPS的区别
HTTP协议传输的数据都是没有加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常的不安全,为了保证这些隐私数据能够加密传输,设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密——>HTTPS。
HTTPS协议=HTTPS协议+SSL,可进行加密传输、身份认证的网络协议。
①HTTPS协议需要申请证书,一般免费证书比较少,因此需要一定费用;
②HTTP是超文本传输协议,信息是明文传输,HTTPS则是具有安全性的SSL加密传输协议;
③HTTP和HTTPS的默认端口号也不一样,前者是80开头,后者是443开头;
④HTTP的链接简单,是无状态的,HTTPS协议是由SSL和HTTP协议构成的可进行加密传输、身份认证的网络协议,比HTTP协议安全。
4. 浏览器输入一串url的过程
- 解析URL,分析域名是否规范
- 浏览器向DNS请求解析IP地址
- DNS将解析出的IP地址返回给浏览器,浏览器得到域名对应的IP地址缓存起来
- 浏览器和服务器建立TCP连接,3次握手
- TCP三次握手之后,浏览器和服务器之间啊回建立一个可靠的虚拟通道,于是浏览器就可以发送自己的HTTP请求了,(比如请求首页index.html)
- 服务器做出响应,将文档index.html发送给浏览器,浏览器进行接封装
响应的状态码:
200:响应成功
301:永久重定向
302:临时重定向
404:not found网页没不存在
502:网关故障
500:内部服务器崩溃了 - 浏览器显示index.html内容进行渲染
- 释放TCP连接,4次挥手
5. 响应状态码301和302的区别
301和302都是将URL地址转移到新的地址中。
①301永久重定向
常见场景是域名跳转。浏览器发出原始请求后定向到新地址,浏览器会缓存这个请求,等下次再次访问原始地址时会直接请求到新地址去。
②302临时重定向
可用于临时的、动态的地址跳转,每次请求原地址都会重新定向到目标地址。场景:页面单点登录。
- 客户端收到301后,应该使用新的URL来访问该资源,并且以后应该直接使用新的URL,不再使用旧的URL。搜索引擎在收到301时,会更新索引,将旧的URL替换为新的URL。
- 当服务器返回状态码302时,表示被请求的资源已经被临时移动到了新的位置。客户端收到302后,应该使用新的URL来访问该资源,但以后仍然可以使用旧的URL。搜索引擎在收到302时,会继续保留旧的URL在索引中,而不会将其替换为新的URL。
6. get和post的区别
①url的可见性
get的参数url可见
post的参数url不可见
②数据传输
get通过拼接url进行传递参数
post通过body体传输参数
③数据大小限制:
get数据是附加在url后面的,有url的长度限制。
post数据是包含在请求的主体中,通常没有固定的长度限制,post请求适用于传递大量的数据,例如文件上传。
④安全性
get因为数据是暴露在url中,包含敏感信息的数据不够安全。
post数据不暴露在url中,相对安全,适用于处理敏感信息的情况
⑤幂等性
get请求是幂等的,多次执行不会产生不同的结果,对于相同的get请求,服务器应该返回相同的响应。
post请求不一定是幂等的,同样的post请求可能会导致服务器状态的变化,例如提交一个表单可能会创建新的资源。
相关文章:
计算机网络总结
1. 网络分层 网络上进行协议分层的好处 ①分层之后层次之间的耦合程度比较低,上层协议不必了解下层的细节,下层也不必了解上层的细节; ②方便的对某一层的协议进行替换; 真实网络的协议分层 OSI 七层网络模型(教科书&…...

初识文件包含漏洞
目录 什么是文件包含漏洞? 文件包含的环境要求 常见的文件包含函数 PHP伪协议 file://协议 php://协议 php://filter php://input zip://、bzip2://、zlib://协议 zip:// bzip2:// zlib:// data://协议 文件包含漏洞演示 案例1:php://inp…...

AR特效自研AI算法技术解决方案
在当今这个高速发展的数字化时代,增强现实(AR)技术已经成为企业创新和市场竞争的重要手段。美摄科技凭借对AI技术的深厚积累,为企业提供了一套创新的AR特效自研AI算法技术解决方案,旨在满足企业在AR领域的多元化需求。…...
牛客2024年除夕娱乐赛(题解)
比赛地址 : 牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ A 看题面然后猜!!! #include<bits/stdc.h> using namespace std; int main(){cout << "原神启动" << endl; } B 也是看题面然后猜 : #include<bits/stdc.…...
5 scala的函数式编程简介
与Java一样,Scala 也是使用 Lambda 表达式实现函数式变成的。 1 遍历 除了使用 for 可以对数组、List、Set 进行遍历外,也可以使用 foreach 函数式编程进行遍历,使代码更为简洁。 foreach 的方法签名为: foreach(f: (A) > …...

陪护系统|陪护小程序提升长者护理服务质量的关键
在如今逐渐老龄化的社会中,老年人对更好的护理服务需求不断增加。科技的进步使得陪护小程序系统源码成为提供优质服务的重要途径之一。本文将从运营角度探讨如何优化陪护小程序系统源码,提升长者护理服务的质量。 首先,我们需要对软件的设计和…...

C++算法之双指针、BFS和图论
一、双指针 1.AcWing 1238.日志统计 分析思路 前一区间和后一区间有大部分是存在重复的 我们要做的就是利用这部分 来缩短我们查询的时间 并且在使用双指针时要注意对所有的博客记录按时间从小到大先排好顺序 因为在有序的区间内才能使用双指针记录两个区间相差 相当于把一个…...
【大厂AI课学习笔记】1.5 AI技术领域(3)自然语言处理
今天来梳理自然语言处理的相关内容。 自然语言处理:定义、关键技术、技术发展、应用场景与商业化成功 一、自然语言处理的定义 自然语言处理(NLP)是人工智能(AI)领域的一个重要分支,它研究的是如何让计算…...

【数字电子技术课程设计】多功能数字电子钟的设计
目录 摘要 1 设计任务要求 2 设计方案及论证 2.1 任务分析 2.1.1 晶体振荡器电路 2.1.2 分频器电路 2.1.3 时间计数器电路 2.1.4 译码驱动电路 2.1.5 校时电路 2.1.6 整点报时/闹钟电路 2.2 方案比较 2.3 系统结构设计 2.4 具体电路设计 3 电路仿真测试及结…...

【新书推荐】7.3 for语句
本节必须掌握的知识点: 示例二十四 代码分析 汇编解析 for循环嵌套语句 示例二十五 7.3.1 示例二十四 ■for语句语法形式: for(表达式1;表达式2;表达式3) { 语句块; } ●语法解析: 第一步:执行表达式1,表达式1…...
爬山算法优化遗传算法优化极限学习机的多分类预测,p-ga-elm多分类预测
目录 背影 极限学习机 爬山算法优化遗传算法优化极限学习机的多分类预测,p-ga-elm多分类预测 主要参数 MATLAB代码 效果图 结果分析 展望 完整代码下载链接:爬山算法优化遗传算法优化极限学习机的多分类预测,p-ga-elm多分类预测(代码完整,数据)资源-CSDN文库 https://d…...

挑战杯 opencv 图像识别 指纹识别 - python
0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于机器视觉的指纹识别系统 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:3分创新点:4分 该项目较为新颖,适…...

【Docker】了解Docker Desktop桌面应用程序,TA是如何管理和运行Docker容器(2)
欢迎来到《小5讲堂》,大家好,我是全栈小5。 这是《Docker容器》系列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对…...
PHP、Python、Java 和 Go语言对比
PHP、Python、Java 和 Go 都是流行的编程语言,每种语言都有其独特的优势和适用场景。下面是对这些语言的一些基本对比: 一:PHP 适用场景:主要用于Web开发,特别是服务器端脚本。 特点:语法简单易懂&#…...
算法题目题单+题解——图论
简介 本文为自己做的一部分图论题目,作为题单列出,持续更新。 题单由题目链接和题解两部分组成,题解部分提供简洁题意,代码仓库:Kaiser-Yang/OJProblems。 对于同一个一级标题下的题目,题目难度尽可能做…...

车载测试中:如何处理 bug
一:Jira 提交 bug 包含那些内容 二:如何处理现上 bug 三:车载相关的 bug 如何定位 四:遇到 bug ,复现不出来怎么办 五:bug 的处理流程 一:Jira 提交 bug 包含那些内容二:如何处理现上…...

亲测解决vscode的debug用不了、点了没反应
这个问题在小虎登录vscode同步了设置后出现,原因是launch文件被修改或删除。解决方法是重新添加launch。 坏境配置 win11 + vscode 解决方法 Ctrl + shift + P,搜索debug添加配置: 选择python debugger。 结果生成了一个文件在当前路径: launch内容: {// Use Int…...

立足智能存取解决方案|HEGERLS智能托盘四向车储存制动能量 实现能源回收
对于商业配送和工业生产的企业而言,如何能高效率、低成本进行低分拣、运输、码垛、入库,用以提升仓库空间的利用效率,是现在大多企业急需要解决的行业痛点。对此,为了解决上述痛点,近年来,物流仓储集成商、…...
2024.2.8日总结(小程序开发5)
对上拉触底事件进行节流处理 在data中定义isloading节流阀 false表示当前没有进行任何数据请求true表示当前正在进行数据请求 在getColors()方法中修改isloading节流阀的值 在刚调用getColors时将节流阀设置true在网络请求的complete回调函数中,将节流阀重置为f…...
Spring Boot配置文件优先级
1、bat文件启动java程序 java -Dmmmqqq -Dfile.encodingUTF-8 -jar ruoyi-admin.jar --mmmiii --llllll 2、配置类型 程序参数Program arguments : --mmmiii 单个属性值,可以从String[] args读取到,放在jar包命令后面 VM参数VM options :一般以-D …...

【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...

汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...

Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...