秋招面试—计算机网络安全

2021 计算机网络安全

1.Get 和 Post 的区别

get 用于获取数据,post用于提交数据;

get 的缓存保存在浏览器和web服务器日志中;

get 使用明文传输,post请求保存在请求体中;

get 长度限制在2048以内

2.常见的HTTP请求

get、post、put、delete、head

3.http1.0 / http1.1 / http2.0 之间有哪些区别?

http1.0 浏览器与服务器只保持短暂的连接,每次请求都需要向,服务器建立一个TCP连接;

http1.0 存在宽带资源浪费的现象,例如只需要某个对象的一部分,而服务器却把整个对象传输过来;

http1.1 支持长链接,默认开启了keep-alive ,弥补了http1.0每次传输都需要创建链接的问题;

http1.1 使用持久连接来时多个HTTP请求复用同一个TCP连接;

http1.1 支持管道传输 ,一个请求发出去,不必等它回来,就可以发送第二次;

http1.1 引入了更多的缓存策略 Etag 、If-Match、if-None-Match

http1.1 中新增了 host 字段,用来指定服务器的域名。

二进制分帧、多路复用、数据流、头部压缩、基于HTTPS相对安全、服务器推送

http2.0 使用二进制协议,头部信息和数据体都是二进制,统称为’帧’;

http2.0 使用多路复用TCP连接,客户端和服务端可以同时发送多个请求;

http2.0 将每个请求和回应都标记一个数据流ID;

http2.0 头部使用gzip 和 compress 压缩头部信息,在客户端和服务器之间共同维护一张头信息索引表,每次请求只发送索引号,就能找到相应的头部信息表;

http2. 0 服务端不再是被动响应,可以主动向客户端发送消息

image-20240128141735735

5.浏览器中输入www.baidu.com 发生了什么?

(1)、首先判断输入的url是一个合法的连接还是待搜索关键词,如果是个合法的url 👇;

(2)、就进行缓存判断,如果浏览器中有缓存资源,则直接访问缓存资源;如果没有,则开始👇;

(3)、DNS解析客户端本地DNS服务器发送一个请求,查看是否存在缓存,有就直接访问;

​ 如果没有,就向根域名服务器发送请求,根域名服务器发现是.com或者.cn后缀的域名;

​ 就交给顶级域名服务器,顶级域名服务器返回baidu.com域名信息;

​ 并让本地DNS转向访问权威域名服务器,权威域名服务器返回www .baidu. com对应的IP地址,

​ 同时本地DNS缓存该ip地址,客户端收到IP地址后进行访问。

image-20240128141806958

(4)、CDN(内容分发网络)

​ 如果服务器使用了CDN,DNS返回的不再是IP地址,而是CNAME别名,指向全局均衡CNAME;

​ 浏览器发送url给DNS服务器,DNS进行域名解析,解析发现该url有一个CDN专用的DNS服务器

​ DNS会将解析权交给CNAME指向的CDN专用DNS服务器CDN专用DNS服务器将IP返回给浏览器;

浏览器CDN全局负载均衡服务器发起请求,CDN全局负载均衡服务器根据IP;

​ 找到距离用户最近的区域负载均衡服务器,选择合适的缓存服务器响应用户的请求。

Image

(5)、TCP三次握手

​ 第一次握手,客户端向服务器发送一个SYN的报文,并初始化序列 ISN;

​ 第二次握手,服务端收到客户端的SYN后,将ISN+1作为自己的ACK值,并以自己的SYN作为应答;

​ 第三次握手,客户端收到服务端的SYN后,向服务端发送一个ACK报文,值为ISN+1,服务器收到后双方就建立了连接。

image-20240128141829666

🌰为什么是三次握手?不是两次、四次?

​ 三次握手可以阻止重复 历史连接的初始化(主要原因);

​ 三次握手可以同步双方的初始序列号

​ 三次握手可以避免资源浪费

🌰SYN是什么?ACK又是什么?

image-20240128141847986

(5)、页面渲染:浏览器将html解析成DOM树,将css解析成CSSOM树,结合DOM树和CSSOM树生成渲染树。接着解析

(6)、TCP四次挥手

​ 第一次挥手,客户端向服务器发送一个FIN的报文,之后进入FIN_Wait_1状态;

​ 第二次挥手,服务端收到该报文后,向客户端发送ACK报文作为应答,接着服务端进入closed_wait状态;

​ 第三次挥手,客户端收到服务端的ACK报文后,进入FIN_Wait_2状态,等待服务端数据处理完,继续向客户端发送一个FIN报文,之后服务端进入了Last_ack状态;

​ 第四次挥手,客户端收到服务端的FIN报文后,就进入了Closed 状态,至此服务端已经完成了连接关闭。客户端在经过2msl后,自动进入closed状态,至此客户端进入了完成连接关闭。

image-20240128141907538

6.对Keep-alive的理解

http1.0 默认开启的长链接(keep-alive ),使用持久连接来使多个http请求复用同一个TCP连接,数据传输完成保持TCP连接不断开。

具有①减少CPU和内存的使用。②降低阻塞控制。③减小后续请求延迟。

7.什么是https协议?TCL/SSL 的工作原理是什么?

https是为了解决http中 ①内容可能被监听②不验证通信方身份的问题 产生的,这里的s表示TLS/SSL协议,其中SSL的实现,主要依赖于对称加密、非对称加密、摘要算法、数字签名这几种手段。

对称加密:加密和解密使用的密钥都是同一个,是对称的。

image-20240128141928845

非对称加密:存在两个密钥,一个公钥,一个私钥。公钥和私钥都可以用来加密解密,公钥加密的必须使用私钥解密。

image-20240128141940784

混合加密:对称加密+非对称加密,具体做法:发送密文的一方使用对方的公钥对“对称密钥”进行加密,然后对方自己的密钥对“对称的密钥”解密;

image-20240128141958507

摘要算法:把任意长度的密钥压缩成固定长度,形成了一个独一无二的的”摘要“字符串;

摘要算法可以理解为“单向"加密算法,常用的算法是 SHA-2,只有算法,没有密钥,加密后的数据无法解密;

但是不具有机密性,如果黑客把传递的消息和摘要一起改了,完整鉴别不出完整性!

数字签名:私钥对摘要的加密,可以由公钥解密后验证,把公钥私钥的用法反过来,私钥加密、公钥解密。

8.HTTPS是如何保证安全的?

​ 数字证书认证机构(CA): 服务端向数字证书认证机构提出公开密钥申请,数字证书认证机构确定申请者的身份后,会对已申请的公开密钥做数字签名;然后分配这个已签名的公开密钥,并将公开密钥放入公钥证书后绑定在一起;服务端会将这份数字证书发送给客户端,以进行非对称加密通信;接收到证书的客户端使用数字证书认证机构的公开密钥,对服务器发送过来的数字签名进行认证,验证通过,则证明认证服务器公开密钥是真正有效的认证机构。

9.常见的状态码

状态码含义描述
1xx信息状态码接收的请求正在处理
2xx成功状态码请求正常处理完毕
204响应头没有body数据
206相应头的body不是资源的全部
3xx重定向客户端请求资源变动,需重新发送请求
301永久重定向请求资源不存在了,需要用新的url访问
302临时重定向请求资源还在,暂时用新的url访问
304缓存重定向重定向已缓存文件
4xx客户端错误
403服务器禁止访问资源
404请求的资源找不到
5xx服务器内部错误
501客户端请求的功能还不支持
502服务器自身工作正常,访问后端服务器发生错误
503服务器很忙,暂时无法响应

10.TCP和UDP的区别

UDP(用户数据报协议):对应用层交下来的报文,不合并、不拆分,只是在其上面加个首部就交给网络层;

TCP(传输控制协议):把上应用层交下来的数据看成无结构的字节流来发送。

①TCP是面向连接协议,建立连接3次握手,断开连接4次挥手;UDP是面向无连接,接收端从消息队列读取,发送端将数据发送到网络。

②TCP提供可靠服务,传输过程可以确保数据无差错,不丢失;UDP尽可能传递数据,但不保证数据是否安全到达。

③TCP面向字节流,将应用层报文看作无结构的字节流,芬姐为多个报文段传输后,在目的站重新装配;UDP面向报文,不合并也不拆分,只保留报文边界。

④TCP只能点对点,双工传输;UDP支持一对一、一对多、多对一和多对多传输。

⑤TCP传输效率低;UDP传输效率高。

11.TCP和UDP的使用场景

TCP:SMTP(电子邮件)、Telnet(传输终端接入)、Http(万维网)、FTP(文件传输系统);

UDP:DNS(域名服务系统)、TFTP(文件传输)、SNMP(网络管理)、NFS(远程文件服务器);

12.TCP粘包是怎么回事? 如何解决?

如果一次请求发送的数据量较小,没达到缓冲区大小,TCP则会将多个请求合并为同一个请求进行发送,这就造成了TCP粘包的问题。

解决方案:①发送端将每个报封装成固定长度;

​ ②发送端在每个包末尾使用固定分隔符;

​ ③将消息分成头部和消息体,头部信息足够长才算读到一个完整的消息。

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

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

相关文章

Android P 屏保和休眠相关知识

Android P添加屏保功能,如果休眠时间设定大于屏保时间,则先进入屏保,达到休眠时间后再进入休眠 需求: 添加屏幕互保开关,默认关闭。只保留时钟,可设定指针和数字、夜间模式。启用时间改多长时间无操作进入…

小程序和vue/react的区别/优势

小程序优势: 1.即开即走,不需要下载app,可以通过微信直接打开更加方便快捷 2.天然流量优势,依赖于微信这个大量流量平台 3.相比于app的开发 小程序的开发是前端人员更快上手 4.代码包要求为2M以内 性能更加突出 5.微信宿主提…

IBeginDragHandler,IEndDragHandler,IDragHandler拖拽接口

IBeginDragHandler, IEndDragHandler, 和 IDragHandler 是Unity的接口,用于处理拖拽相关的功能。需要引用 UnityEngine.EventSystems。 IBeginDragHandler 这个接口定义了一个方法,该方法在玩家开始拖拽一个对象时被调用。它通常用于初始化拖拽相关的变量…

Excel-Apache POI

Apache POI是用Java编写的免费开源的跨平台的Java API,Apache POI提供API给Java程 序对Microsoft Office格式档案读和写的功能,其中使用最多的就是使用POI操作Excel文 件。 Apache POI常用的类 HSSF - 提供读写Microsoft Excel XLS格式档案…

###C语言程序设计-----C语言学习(6)#

前言:感谢老铁的浏览,希望老铁可以一键三连加个关注,您的支持和鼓励是我前进的动力,后续会分享更多学习编程的内容。 一. 主干知识的学习 1. while语句 除了for语句以外,while语句也用于实现循环,而且它…

C++发起Https请求

Wininet库忽略Https证书 相信很多朋友使用C WINAPI开发的时候网络模块的时候遇到Https忽悠证书无效的情况下, 仍然希望获取结果下列代码便是忽略异常的Https CA证书,下面对原理进行简单的讲解首先, 需要设置Https忽略需要用到如下结果函数与参数Interne…

初识elasticsearch

一、了解ES 1.1.elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容 例如: 在GitHub搜索代码 在电商网站搜索商品 在百度搜索答案 在打车软件搜索附近的车 …

(七)for循环控制

文章目录 用法while的用法for的用法两者之间的联系可以相互等价用for改写while示例for和while的死循环怎么写for循环见怪不怪表达式1省略第一.三个表达式省略(for 改 while)全省略即死循环(上面已介绍) 用法 类比学习while语句 …

MySQL原理(一)架构组成(1)物理文件组成

目录 一、日志文件 1、错误日志 Error Log 1.1、作用: 1.2、开启关闭: 1.3、使用 2、二进制日志 Binary Log & Binary Log Index 2.1、作用: 2.2、开启关闭: 2.3、Binlog还有一些附加选项参数 (1&#x…

江科大stm32学习笔记6——GPIO输入准备

一、按键消抖 由于按键内部使用的是机械式弹簧片,所以在按下和松开时会产生5~10ms的抖动,需要通过代码来进行消抖。 二、滤波电容 在电路中,如果见到一端接在电路中,一端接地的电容,则可以考虑它的作用为滤波电容&am…

linux -- 内存管理 -- 页面分配器

linux内存管理 为什么要了解linux内存管理 分配并使用内存,是内核程序与驱动程序中非常重要的一环。内存分配函数都依赖于内核中一个非常复杂而重要的组件 - 内存管理。 linux驱动程序不可避免要与内核中的内存管理模块打交道。 linux内存管理可以总体上分为两大…

MYSQL基本查询(CURD:创建、读取、更新、删除)

文章目录 前言一、Create1.全列插入2.指定列插入3.插入否则更新4.替换 二、Retrieve1.SELECT列2.WHERE条件3.结果排序4.筛选分页结果 三、Update四、Delete1.删除数据2.截断表 五、插入查询结果六、聚合函数 前言 操作关系型数据库的编程语言,定义了一套操作关系型…

Unity中URP下额外灯角度衰减

文章目录 前言一、额外灯中聚光灯的角度衰减二、AngleAttenuation函数的传入参数1、参数:spotDirection.xyz2、_AdditionalLightsSpotDir3、参数:lightDirection4、参数:distanceAndSpotAttenuation.zw5、_AdditionalLightsAttenuation 三、A…

Spring Security关键之5张数据表与7张表 !!!

一、什么是认证和授权: 认证:系统提供的用于识别用户身份的功能,通常提供用户名和密码进行登录其实就是在进行认证,认证的目的是让系统知道你是谁。授权:用户认证成功后,需要为用户授权,其实就…

全连MGRE(OSPF)综合实验

一.要求 二.底层--所有节点拥有合法ip地址 r1: r2(isp): r3: r4: r5: r6: 三.全网可达 r1: r3: r4: r5: r6: 四.构建全连的MGRE环境 R1-R3-R4 R1: r3: r4: R1-R5-R6 r1: r5: r6: 五.ospf配置 R1: r3: r4: r5: r6:…

Qt应用软件【串口篇】串口通信

文章目录 1.串口概述2.串口传输数据的基本原理电信号的传输过程 3.串口的几个概念数据位(Data Bits)奇偶校验位(Parity Bit)停止位(Stop Bits)流控制(Flow Control)波特率&#xff0…

142. 环形链表 II(力扣LeetCode)

文章目录 142. 环形链表 II题目描述解题思路判断链表是否有环如果有环,如何找到这个环的入口 c代码 142. 环形链表 II 题目描述 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个…

宏定义define的常见用法

define作为宏定义,是C语言中的一种预处理命令; 宏定义define有两种分类,分别为为无参宏定义和带参宏定义。 (1)无参宏定义: 一般形式:#define 宏定义名称 字符串; 举例&…

7.【SpringBoot3】项目部署、属性配置、多环境开发

文章目录 1. SpringBoot 项目部署2. 属性配置方式2.1 通过 cmd 命令行配置2.2 通过环境变量配置2.3 通过外部配置文件来配置 3. 多环境开发 Profiles3.1 多环境开发的单文件配置3.2 多环境开发的多文件配置3.3 多环境开发-分组 1. SpringBoot 项目部署 项目完成后,…

LLM大模型x知识图谱2024最新SOTA方案【附开源代码】

大模型LLM与知识图谱KG的结合可以充分发挥两者的优势,例如LLMs的通用知识和语言处理能力,以及KGs的结构化和准确性。这种结合不仅能够提升模型的知识处理能力,还能够在多个层面上优化模型的性能,更好地解决各种现实世界的问题&…