当前位置: 首页 > news >正文

计算机网络总结

1. 网络分层

  1. 网络上进行协议分层的好处
    ①分层之后层次之间的耦合程度比较低,上层协议不必了解下层的细节,下层也不必了解上层的细节;
    ②方便的对某一层的协议进行替换;

  2. 真实网络的协议分层
    OSI 七层网络模型(教科书)
    TCP/IP五层网络模型(当下最广泛)

应用层:关注传输过来的数据要干啥用,对应程序员写的应用程序
传输层:不考虑中间路径,只关注起点和终点
网络层:主要负责2个遥远的节点之间的路径规划
数据链路层:主要关注的2个相邻节点之间的传输,网络上相邻节点就是通过网线/光纤/无线直接连接的设备

物理层(纯硬件):网络通信的基础设施,网线、光纤、网络接口

这样分层之后,可以让程序员只关注一个子问题。
下面四层是操作系统内部已经封装好了,只用应用层才真正关心数据的用途。
程序员写网络程序主要编写的应用层代码,真正要发这个数据需要上层协议调用下层协议。(应用层需要调用传输层,传输层给应用层提供一组API)

  1. 在协议分层的背景下,数据如何通过网络层传输?
    答:封装 and 分用。
    发送方发送数据,要把数据从上到下,依次交给对应的层次的协议,进行封装
    接收方收到数据,要把数据从下到上,依次交给对应的层次的协议,进行解析

  2. 路由器和交换机的区别
    路由器,只需要封装分用到网络层;
    交换机,只需要封装分用到数据链路层;
    通常来说,路由器进行“三层转发”,交换机是进行“二层转发”。
    但是实际上,路由器和交换机之间的界限越来越小,路由器可以通过设定特殊模式进行“二层转发”,交换机也有高端交换器支持三层准发。

2. TCP/UDP区别

TCP API 和 UDP API 这2个协议各自的特点
①TCP:有连接(使用TCP通信的双方需要刻意保存对方的相关信息)、可靠传输(尽可能的传输过去)、面向字节流(以字节为传输的基本单位,读写方式非常灵活)、全双工(一条路径双向通信)
②UDP:无连接(使用UDP通信的双方不需要刻意保存对方的相关信息)、不可靠传输(消息发了就发了,不关注结果)、面向数据包(以一个UDP数据包为基本单位)、全双工(一条路径双向通信)

3. HTTP和HTTPS

  1. 概念
    HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准,用去从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效。
    HTTPS:是以安全为目标的HTTP通道,HTTP的安全版,在HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就是需要SSL。
    HHTPS协议的主要作用:①建立信息安全通道,保证数据传输的安全②确定网站的真实性。

  2. 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的过程

  1. 解析URL,分析域名是否规范
  2. 浏览器向DNS请求解析IP地址
  3. DNS将解析出的IP地址返回给浏览器,浏览器得到域名对应的IP地址缓存起来
  4. 浏览器和服务器建立TCP连接,3次握手
  5. TCP三次握手之后,浏览器和服务器之间啊回建立一个可靠的虚拟通道,于是浏览器就可以发送自己的HTTP请求了,(比如请求首页index.html)
  6. 服务器做出响应,将文档index.html发送给浏览器,浏览器进行接封装
    响应的状态码:
    200:响应成功
    301:永久重定向
    302:临时重定向
    404:not found网页没不存在
    502:网关故障
    500:内部服务器崩溃了
  7. 浏览器显示index.html内容进行渲染
  8. 释放TCP连接,4次挥手

5. 响应状态码301和302的区别

301和302都是将URL地址转移到新的地址中。
①301永久重定向
常见场景是域名跳转。浏览器发出原始请求后定向到新地址,浏览器会缓存这个请求,等下次再次访问原始地址时会直接请求到新地址去。

②302临时重定向
可用于临时的、动态的地址跳转,每次请求原地址都会重新定向到目标地址。场景:页面单点登录。

  1. 客户端收到301后,应该使用新的URL来访问该资源,并且以后应该直接使用新的URL,不再使用旧的URL。搜索引擎在收到301时,会更新索引,将旧的URL替换为新的URL。
  2. 当服务器返回状态码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一样&#xff0c;Scala 也是使用 Lambda 表达式实现函数式变成的。 1 遍历 除了使用 for 可以对数组、List、Set 进行遍历外&#xff0c;也可以使用 foreach 函数式编程进行遍历&#xff0c;使代码更为简洁。 foreach 的方法签名为&#xff1a; foreach(f: (A) > …...

陪护系统|陪护小程序提升长者护理服务质量的关键

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

C++算法之双指针、BFS和图论

一、双指针 1.AcWing 1238.日志统计 分析思路 前一区间和后一区间有大部分是存在重复的 我们要做的就是利用这部分 来缩短我们查询的时间 并且在使用双指针时要注意对所有的博客记录按时间从小到大先排好顺序 因为在有序的区间内才能使用双指针记录两个区间相差 相当于把一个…...

【大厂AI课学习笔记】1.5 AI技术领域(3)自然语言处理

今天来梳理自然语言处理的相关内容。 自然语言处理&#xff1a;定义、关键技术、技术发展、应用场景与商业化成功 一、自然语言处理的定义 自然语言处理&#xff08;NLP&#xff09;是人工智能&#xff08;AI&#xff09;领域的一个重要分支&#xff0c;它研究的是如何让计算…...

【数字电子技术课程设计】多功能数字电子钟的设计

目录 摘要 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语句

本节必须掌握的知识点&#xff1a; 示例二十四 代码分析 汇编解析 for循环嵌套语句 示例二十五 7.3.1 示例二十四 ■for语句语法形式&#xff1a; for(表达式1;表达式2;表达式3) { 语句块; } ●语法解析&#xff1a; 第一步&#xff1a;执行表达式1&#xff0c;表达式1…...

爬山算法优化遗传算法优化极限学习机的多分类预测,p-ga-elm多分类预测

目录 背影 极限学习机 爬山算法优化遗传算法优化极限学习机的多分类预测,p-ga-elm多分类预测 主要参数 MATLAB代码 效果图 结果分析 展望 完整代码下载链接:爬山算法优化遗传算法优化极限学习机的多分类预测,p-ga-elm多分类预测(代码完整,数据)资源-CSDN文库 https://d…...

挑战杯 opencv 图像识别 指纹识别 - python

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于机器视觉的指纹识别系统 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;3分创新点&#xff1a;4分 该项目较为新颖&#xff0c;适…...

【Docker】了解Docker Desktop桌面应用程序,TA是如何管理和运行Docker容器(2)

欢迎来到《小5讲堂》&#xff0c;大家好&#xff0c;我是全栈小5。 这是《Docker容器》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对…...

PHP、Python、Java 和 Go语言对比

PHP、Python、Java 和 Go 都是流行的编程语言&#xff0c;每种语言都有其独特的优势和适用场景。下面是对这些语言的一些基本对比&#xff1a; 一&#xff1a;PHP 适用场景&#xff1a;主要用于Web开发&#xff0c;特别是服务器端脚本。 特点&#xff1a;语法简单易懂&#…...

算法题目题单+题解——图论

简介 本文为自己做的一部分图论题目&#xff0c;作为题单列出&#xff0c;持续更新。 题单由题目链接和题解两部分组成&#xff0c;题解部分提供简洁题意&#xff0c;代码仓库&#xff1a;Kaiser-Yang/OJProblems。 对于同一个一级标题下的题目&#xff0c;题目难度尽可能做…...

车载测试中:如何处理 bug

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

亲测解决vscode的debug用不了、点了没反应

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

立足智能存取解决方案|HEGERLS智能托盘四向车储存制动能量 实现能源回收

对于商业配送和工业生产的企业而言&#xff0c;如何能高效率、低成本进行低分拣、运输、码垛、入库&#xff0c;用以提升仓库空间的利用效率&#xff0c;是现在大多企业急需要解决的行业痛点。对此&#xff0c;为了解决上述痛点&#xff0c;近年来&#xff0c;物流仓储集成商、…...

2024.2.8日总结(小程序开发5)

对上拉触底事件进行节流处理 在data中定义isloading节流阀 false表示当前没有进行任何数据请求true表示当前正在进行数据请求 在getColors()方法中修改isloading节流阀的值 在刚调用getColors时将节流阀设置true在网络请求的complete回调函数中&#xff0c;将节流阀重置为f…...

Spring Boot配置文件优先级

1、bat文件启动java程序 java -Dmmmqqq -Dfile.encodingUTF-8 -jar ruoyi-admin.jar --mmmiii --llllll 2、配置类型 程序参数Program arguments : --mmmiii 单个属性值&#xff0c;可以从String[] args读取到&#xff0c;放在jar包命令后面 VM参数VM options :一般以-D …...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;支持 Python 3.6。它基于标准 Python 类型提示&#xff0c;易于学习且功能强大。以下是一个完整的 FastAPI 入门教程&#xff0c;涵盖从环境搭建到创建并运行一个简单的…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill

视觉语言模型&#xff08;Vision-Language Models, VLMs&#xff09;&#xff0c;为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展&#xff0c;机器人仍难以胜任复杂的长时程任务&#xff08;如家具装配&#xff09;&#xff0c;主要受限于人…...

mac 安装homebrew (nvm 及git)

mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用&#xff1a; 方法一&#xff1a;使用 Homebrew 安装 Git&#xff08;推荐&#xff09; 步骤如下&#xff1a;打开终端&#xff08;Terminal.app&#xff09; 1.安装 Homebrew…...