当前位置: 首页 > 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请求可能会导致服务器状态的变化,例如提交一个表单可能会创建新的资源。

相关文章:

  • 2024/2/4 备战蓝桥杯 5-1 前缀和
  • mac检查CPU温度和风扇速度软件:Macs Fan Control Pro 1.5.17中文版
  • 决策树之scikit-learn
  • qt学习:arm摄像头+c调用v412框架驱动+qt调用v412框架驱动 显示摄像头画面
  • containerd中文翻译系列(五)客户端选项
  • 单片机学习笔记---DS1302时钟
  • 安全之护网(HVV)、红蓝对抗
  • 数据结构——单向链表和双向链表的实现(C语言版)
  • 图像处理常用算法—6个算子 !!
  • uniapp踩坑之项目:简易版不同角色显示不一样的tabbar和页面
  • 【JS逆向一】逆向某站的 加密参数算法--仅供学习参考
  • STM32内部Flash
  • 跟着cherno手搓游戏引擎【23】项目维护、2D引擎之前的一些准备
  • 西工大计算机学院复试问题整理
  • 第6章 智能租房——前期准备
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • Angular6错误 Service: No provider for Renderer2
  • Java应用性能调优
  • js中的正则表达式入门
  • Promise面试题,控制异步流程
  • React as a UI Runtime(五、列表)
  • ubuntu 下nginx安装 并支持https协议
  • unity如何实现一个固定宽度的orthagraphic相机
  • vue2.0项目引入element-ui
  • windows下使用nginx调试简介
  • 包装类对象
  • 今年的LC3大会没了?
  • 通过git安装npm私有模块
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 微信开放平台全网发布【失败】的几点排查方法
  • 用element的upload组件实现多图片上传和压缩
  • 自定义函数
  • 1.Ext JS 建立web开发工程
  • Mac 上flink的安装与启动
  • 翻译 | The Principles of OOD 面向对象设计原则
  • #考研#计算机文化知识1(局域网及网络互联)
  • (06)金属布线——为半导体注入生命的连接
  • (C语言)fgets与fputs函数详解
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (三十五)大数据实战——Superset可视化平台搭建
  • (五)c52学习之旅-静态数码管
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .Net Winform开发笔记(一)
  • .net 中viewstate的原理和使用
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .NET和.COM和.CN域名区别
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • /etc/sudoers (root权限管理)
  • @Controller和@RestController的区别?
  • [2016.7 Day.4] T1 游戏 [正解:二分图 偏解:奇葩贪心+模拟?(不知如何称呼不过居然比std还快)]