计算机网络总结
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 …...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...
Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...
让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...
华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...
【FTP】ftp文件传输会丢包吗?批量几百个文件传输,有一些文件没有传输完整,如何解决?
FTP(File Transfer Protocol)本身是一个基于 TCP 的协议,理论上不会丢包。但 FTP 文件传输过程中仍可能出现文件不完整、丢失或损坏的情况,主要原因包括: ✅ 一、FTP传输可能“丢包”或文件不完整的原因 原因描述网络…...
raid存储技术
1. 存储技术概念 数据存储架构是对数据存储方式、存储设备及相关组件的组织和规划,涵盖存储系统的布局、数据存储策略等,它明确数据如何存储、管理与访问,为数据的安全、高效使用提供支撑。 由计算机中一组存储设备、控制部件和管理信息调度的…...
《开篇:课程目录》
大家好!我是一名.NET技术开发者,长期以来积累了比较多的项目实战经验,现在把它分享给大家,希望能够帮助到大家,同时为.NET社区提供一份力量,让更多的开发者参与进来。 要讲解的课程如下: 《介绍…...
