【21-40】计算机网络基础知识(非常详细)从零基础入门到精通,看完这一篇就够了

【21-40】计算机网络基础知识(非常详细)从零基础入门到精通,看完这一篇就够了

  • 以下是本文参考的资料 欢迎大家查收原版 本版本仅作个人笔记使用
  • 21、HTTPS是如何保证数据传输的安全,整体的流程是什么?(SSL是怎么工作保证安全)
    • 对称加密
    • 非对称加密
    • 消息认证码 (MAC)
    • 数字证书
  • 22、如何保证公钥不被篡改?
  • 23、HTTP请求和响应报文有哪些主要字段?
    • 请求报文
    • 响应报文
  • 24、Cookie是什么
  • 25、Cookie有什么用途?
  • 26、Session知识大总结
  • 27、Session 的工作原理是什么?
  • 28、Cookie与Session的对比
  • 29、SQL注入攻击了解吗?
  • 30、网络的七层模型与各自的功能(图片版)
  • 31、什么是RARP?工作原理
  • 32、端口有效范围是多少到多少?
  • 33、为何需要把 TCP/IP 协议栈分成 5 层(或7层)?
  • 34、DNS查询方式有哪些?
    • 递归解析
    • 迭代解析
  • 35、HTTP中缓存的私有和共有字段?知道吗?
  • 36、GET 方法参数写法是固定的吗?
  • 37、GET 方法的长度限制是怎么回事?
  • 38、POST 方法比 GET 方法安全?
  • 39、POST 方法会产生两个 TCP 数据包?你了解吗?
  • 40、Session是什么?

以下是本文参考的资料 欢迎大家查收原版 本版本仅作个人笔记使用

  • https://interviewguide.cn/notes/03-hunting_job/02-interview/03-02-net.html

21、HTTPS是如何保证数据传输的安全,整体的流程是什么?(SSL是怎么工作保证安全)

  • (1)客户端向服务器端发起SSL连接请求;
  • (2) 服务器把 公钥 发送给客户端,并且服务器端保存着唯一的 私钥
  • (3)客户端用 公钥 对双方通信的对称秘钥进行加密,并发送给服务器端
  • (4)服务器利用自己唯一的 私钥 对客户端发来的对称秘钥进行解密
  • (5)进行数据传输,服务器和客户端双方用公有的相同的对称秘钥对数据进行加密解密,可以保证在数据收发过程中的安全,即是第三方获得数据包,也无法对其进行加密,解密和篡改。

在这里插入图片描述

因为数字签名、摘要是证书防伪非常关键的武器。 “摘要”就是对传输的内容,通过hash算法计算出一段固定长度的串。然后,通过发送方的私钥对这段摘要进行加密,加密后得到的结果就是“数字签名”

SSL/TLS协议的基本思路是采用公钥加密法,也就是说,客户端先向服务器端索要公钥,然后用公钥加密信息,服务器收到密文后,用自己的私钥解密。

对称加密

在握手过程中,协商出一个用于加密数据的对称密钥。在之后的通信过程中,这个密钥将被用来加密和解密所有数据。由于对称加密算法可以提供高效的数据加密和解密,因此在 HTTPS 中广泛使用的共同协议包括 AES、RC4 和 ChaCha20 等等。
在这里插入图片描述

非对称加密

在 SSL/TLS 协议的握手过程中,通过公钥加密进行数据加密传输,这个过程就称为非对称加密。非对称加密算法是一种公开密钥加密技术,其中 Sender 将消息加密并发送到接收者 Receiver。只有 Receiver 可以使用其私钥解密消息,并且 Sender 无法访问该私钥。常见的非对称加密算法包括 RSA、Diffie-Hellman 和椭圆曲线加密等等。
在这里插入图片描述

消息认证码 (MAC)

在握手过程中,另一个重要的操作是生成消息认证码(MAC),用于检查消息的完整性和验证它们的真实性。MAC 是通过数据摘要和密钥生成的,旨在防止未经授权的更改或篡改,并验证该数据是从所述计算机到达的,而不是第三方出现的恶意代码。
在这里插入图片描述

数字证书

SSL/TLS 协议还涉及数字证书。数字证书是由受信任的第三方认证机构(CA)颁发的,在 SSL/TLS 握手期间用于验证身份。数字证书包含服务器“所有者”的信息,这些信息通过基于公钥密码学的签名进行保护。客户端会对服务器的数字证书进行检查,并使用它来验证服务器的身份是否存在问题。

在这里插入图片描述
在这里插入图片描述

22、如何保证公钥不被篡改?

将公钥放在数字证书中。只要证书是可信的,公钥就是可信的。 公钥加密计算量太大,如何减少耗用的时间? 每一次对话(session),客户端和服务器端都生成一个"对话密钥"(session key),用它来加密信息。由于"对话密钥"是对称加密,所以运算速度非常快,而服务器公钥只用于加密"对话密钥"本身,这样就减少了加密运算的消耗时间。

  • (1) 客户端向服务器端索要并验证公钥。
  • (2) 双方协商生成"对话密钥"。
  • (3) 双方采用"对话密钥"进行加密通信。上面过程的前两步,又称为"握手阶段"(handshake)。

23、HTTP请求和响应报文有哪些主要字段?

请求报文

请求行:Request Line
请求头:Request Headers
请求体:Request Body

响应报文

状态行:Status Line
响应头:Response Headers
响应体:Response Body

24、Cookie是什么

HTTP 协议是无状态的,主要是为了让 HTTP 协议尽可能简单,使得它能够处理大量事务,HTTP/1.1 引入 Cookie 来保存状态信息。

Cookie 是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器之后向同一服务器再次发起请求时被携带上,用于告知服务端两个请求是否来自同一浏览器。由于之后每次请求都会需要携带 Cookie 数据,因此会带来额外的性能开销(尤其是在移动环境下)。

Cookie 曾一度用于客户端数据的存储,因为当时并没有其它合适的存储办法而作为唯一的存储手段,但现在随着现代浏览器开始支持各种各样的存储方式,Cookie 渐渐被淘汰。

新的浏览器 API 已经允许开发者直接将数据存储到本地,如使用 Web storage API(本地存储和会话存储)或 IndexedDB。

cookie 的出现是因为 HTTP 是无状态的一种协议,换句话说,服务器记不住你,可能你每刷新一次网页,就要重新输入一次账号密码进行登录。这显然是让人无法接受的,cookie 的作用就好比服务器给你贴个标签,然后你每次向服务器再发请求时,服务器就能够 cookie 认出你。

抽象地概括一下:一个 cookie 可以认为是一个「变量」,形如 name=value,存储在浏览器;一个 session 可以理解为一种数据结构,多数情况是「映射」(键值对),存储在服务器上。

25、Cookie有什么用途?

  • 会话状态管理(如用户登录状态、购物车、游戏分数或其它需要记录的信息)
  • 个性化设置(如用户自定义设置、主题等)
  • 浏览器行为跟踪(如跟踪分析用户行为等)

26、Session知识大总结

除了可以将用户信息通过 Cookie 存储在用户浏览器中,也可以利用 Session 存储在服务器端,存储在服务器端的信息更加安全。

Session 可以存储在服务器上的文件、数据库或者内存中。也可以将 Session 存储在 Redis 这种内存型数据库中,效率会更高。

使用 Session 维护用户登录状态的过程如下:

用户进行登录时,用户提交包含用户名和密码的表单,放入 HTTP 请求报文中;
服务器验证该用户名和密码,如果正确则把用户信息存储到 Redis 中,它在 Redis 中的 Key 称为 Session ID;

在这里插入图片描述

服务器返回的响应报文的 Set-Cookie 首部字段包含了这个 Session ID,客户端收到响应报文之后将该 Cookie 值存入浏览器中;

客户端之后对同一个服务器进行请求时会包含该 Cookie 值,服务器收到之后提取出 Session ID,从 Redis 中取出用户信息,继续之前的业务操作。

注意:Session ID 的安全性问题,不能让它被恶意攻击者轻易获取,那么就不能产生一个容易被猜到的 Session ID 值。此外,还需要经常重新生成 Session ID。在对安全性要求极高的场景下,例如转账等操作,除了使用 Session 管理用户状态之外,还需要对用户进行重新验证,比如重新输入密码,或者使用短信验证码等方式。

27、Session 的工作原理是什么?

session 的工作原理是客户端登录完成之后,服务器会创建对应的 session,session 创建完之后,会把 session 的 id 发送给客户端,客户端再存储到浏览器中。这样客户端每次访问服务器时,都会带着 sessionid,服务器拿到 sessionid 之后,在内存找到与之对应的 session 这样就可以正常工作了。

28、Cookie与Session的对比

HTTP作为无状态协议,必然需要在某种方式保持连接状态。这里简要介绍一下Cookie和Session。

Cookie

Cookie是客户端保持状态的方法。

Cookie简单的理解就是存储由服务器发至客户端并由客户端保存的一段字符串。为了保持会话,服务器可以在响应客户端请求时将Cookie字符串放在Set-Cookie下,客户机收到Cookie之后保存这段字符串,之后再请求时候带上Cookie就可以被识别。

除了上面提到的这些,Cookie在客户端的保存形式可以有两种,一种是会话Cookie一种是持久Cookie会话Cookie就是将服务器返回的Cookie字符串保持在内存中,关闭浏览器之后自动销毁,持久Cookie则是存储在客户端磁盘上,其有效时间在服务器响应头中被指定,在有效期内,客户端再次请求服务器时都可以直接从本地取出。需要说明的是,存储在磁盘中的Cookie是可以被多个浏览器代理所共享的。

Session

Session是服务器保持状态的方法。

首先需要明确的是,Session保存在服务器上,可以保存在数据库、文件或内存中,每个用户有独立的Session用户在客户端上记录用户的操作我们可以理解为每个用户有一个独一无二的Session ID作为Session文件的Hash键,通过这个值可以锁定具体的Session结构的数据,这个Session结构中存储了用户操作行为。

当服务器需要识别客户端时就需要结合Cookie了。每次HTTP请求的时候,客户端都会发送相应的Cookie信息到服务端。实际上大多数的应用都是用Cookie来实现Session跟踪的,第一次创建Session的时候,服务端会在HTTP协议中告诉客户端,需要在Cookie里面记录一个Session ID,以后每次请求把这个会话ID发送到服务器,我就知道你是谁了。如果客户端的浏览器禁用了Cookie,会使用一种叫做URL重写的技术来进行会话跟踪,即每次HTTP交互,URL后面都会被附加上一个诸如sid=xxxxx这样的参数,服务端据此来识别用户,这样就可以帮用户完成诸如用户名等信息自动填入的操作了。

29、SQL注入攻击了解吗?

攻击者在HTTP请求中注入恶意的SQL代码,服务器使用参数构建数据库SQL命令时,恶意SQL被一起构造,并在数据库中执行。 用户登录,输入用户名 lianggzone,密码 ‘ or ‘1’=’1 ,如果此时使用参数构造的方式,就会出现 select * from user where name = ‘lianggzone’ and password = ‘’ or ‘1’=‘1’ 不管用户名和密码是什么内容,使查询出来的用户列表不为空。如何防范SQL注入攻击使用预编译的PrepareStatement是必须的,但是一般我们会从两个方面同时入手。

Web端

  • 有效性检验。
  • 限制字符串输入的长度。

服务端

  • 不用拼接SQL字符串
  • 使用预编译的PrepareStatement
  • 有效性检验。(为什么服务端还要做有效性检验?第一准则,外部都是不可信的,防止攻击者绕过Web端请求)
  • 过滤SQL需要的参数中的特殊字符。比如单引号、双引号。

30、网络的七层模型与各自的功能(图片版)

在这里插入图片描述
在这里插入图片描述

31、什么是RARP?工作原理

概括:

反向地址转换协议,网络层协议,RARP与ARP工作方式相反。 RARP使只知道自己硬件地址的主机能够知道其IP地址。RARP发出要反向解释的物理地址并希望返回其IP地址,应答包括能够提供所需信息的RARP服务器发出的IP地址。

原理:

  • 网络上的每台设备都会有一个独一无二的硬件地址,通常是由设备厂商分配的MAC地址。主机从网卡上读取MAC地址,然后在网络上发送一个RARP请求的广播数据包,请求RARP服务器回复该主机的IP地址。

  • RARP服务器收到了RARP请求数据包,为其分配IP地址,并将RARP回应发送给主机。

  • PC1收到RARP回应后,就使用得到的IP地址进行通讯。

32、端口有效范围是多少到多少?

0-1023为知名端口号,比如其中HTTP是80,FTP是20(数据端口)、21(控制端口)

UDP和TCP报头使用两个字节存放端口号,所以端口号的有效范围是从0到65535动态端口的范围是从1024到65535

在16位的系统中,1字(word)= 2字节(byte)= 16(bit);在32位的系统中,1字(word)= 4字节(byte)=32(bit)

2的16次方:65536

33、为何需要把 TCP/IP 协议栈分成 5 层(或7层)?

答:ARPANET 的研制经验表明,对于复杂的计算机网络协议,其结构应该是层次式的。

分层的好处:

①隔层之间是独立的

②灵活性好

③结构上可以分隔开

④易于实现和维护

⑤能促进标准化工作。

34、DNS查询方式有哪些?

在这里插入图片描述

递归解析

当局部DNS服务器自己不能回答客户机的DNS查询时,它就需要向其他DNS服务器进行查询。此时有两种方式。局部DNS服务器自己负责向其他DNS服务器进行查询,一般是先向该域名的根域服务器查询,再由根域名服务器一级级向下查询。最后得到的查询结果返回给局部DNS服务器,再由局部DNS服务器返回给客户端。

迭代解析

局部DNS服务器自己不能回答客户机的DNS查询时,也可以通过迭代查询的方式进行解析。局部DNS服务器不是自己向其他DNS服务器进行查询,而是把能解析该域名的其他DNS服务器的IP地址返回给客户端DNS程序客户端DNS程序再继续向这些DNS服务器进行查询,直到得到查询结果为止。也就是说,迭代解析只是帮你找到相关的服务器而已,而不会帮你去查。比如说:baidu.com的服务器ip地址在192.168.4.5这里,你自己去查吧,本人比较忙,只能帮你到这里了。

在这里插入图片描述

递归的意思是:只需要发出一次请求,就能得到相应的结果。比如主机-本地DNS、本地DNS-转发器,都是递归查询。

迭代的意思是:需要经过多次挨个查询,才能得到相应的结果。比如转发器-根服务器、转发器http://-.com域服务器等,都是迭代查询。

35、HTTP中缓存的私有和共有字段?知道吗?

private 指令规定了将资源作为私有缓存,只能被单独用户使用一般存储在用户浏览器中

Cache-Control: private

public 指令规定了将资源作为公共缓存,可以被多个用户使用,一般存储在代理服务器中。

Cache-Control: public

36、GET 方法参数写法是固定的吗?

在约定中,我们的参数是写在 ? 后面,用 & 分割。

我们知道,解析报文的过程是通过获取 TCP 数据,用正则等工具从数据中获取 Header 和 Body,从而提取参数。

比如header请求头中添加token,来验证用户是否登录等权限问题。

也就是说,我们可以自己约定参数的写法,只要服务端能够解释出来就行,万变不离其宗。

37、GET 方法的长度限制是怎么回事?

首先说明一点,HTTP 协议没有 Body 和 URL 的长度限制,对 URL 限制的大多是浏览器和服务器的原因。

浏览器原因就不说了,服务器是因为处理长 URL 要消耗比较多的资源,为了性能和安全(防止恶意构造长 URL 来攻击)考虑,会给== URL 长度加限制==。

38、POST 方法比 GET 方法安全?

有人说POST 比 GET 安全,因为数据在地址栏上不可见。

然而,从传输的角度来说,他们都是不安全的,因为 HTTP 在网络上是明文传输的,只要在网络节点上捉包,就能完整地获取数据报文。

要想安全传输,就只有加密,也就是 HTTPS。

39、POST 方法会产生两个 TCP 数据包?你了解吗?

有些文章中提到,POST 会将 header 和 body 分开发送,先发送 header**,服务端返回 100 状态码再发送 body。**

HTTP 协议中没有明确说明 POST 会产生两个 TCP 数据包,而且实际测试(Chrome)发现,header 和 body 不会分开发送。

所以,header 和 body 分开发送是部分浏览器或框架的请求方法,不属于 post 必然行为。

40、Session是什么?

除了可以将用户信息通过 Cookie 存储在用户浏览器中,也可以利用 Session 存储在服务器端,存储在服务器端的信息更加安全。

Session 可以存储在服务器上的文件数据库或者内存中。也可以将 Session 存储在 Redis 这种内存型数据库中,效率会更高。

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

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

相关文章

运筹学基础(三):求解整数规划的切平面法(cutting plane method)

文章目录 算法思想一个例子参考文档 算法思想 先将整数规划问题松弛为线性规划问题,然后割掉线性规划问题可行域的一部分(只包含非整数解),使得线性规划问题的最优解在原整数规划问题的可行域某顶点上取得。 因此,割平…

Flink SQL 基于Update流出现空值无法过滤问题

问题背景 问题描述 基于Flink-CDC ,Flink SQL的实时计算作业在运行一段时间后,突然发现插入数据库的计算结果发生部分主键属性发生失败,导致后续计算结果无法插入, 超过失败次数失败的情况问题报错 Caused by: java.sql.BatchUp…

智慧公厕:让公共厕所变得更智能、更卫生、更舒适的解决方案

近年来,随着城市发展的不断壮大,公共设施的建设也越来越受到重视。而公共厕所作为城市基础设施的一部分,是城市文明程度的重要体现。然而,传统的公共厕所在使用、运行、管理、养护等方面存在诸多问题,严重影响了市民的…

特征选择集大成的包-arfs(python)

特征选择集大成的包-arfs(python) 一、介绍 arfs介绍文档https://arfs.readthedocs.io/en/latest/Introduction.html 英文好的朋友可以阅读作者写的介绍: All relevant feature selection means trying to find all features carrying info…

YOLOv5改进系列:升级版ResNet的新主干网络DenseNet

一、论文理论 论文地址:Densely Connected Convolutional Networks 1.理论思想 DenseNet最大化前后层信息交流,通过建立前面所有层与后面层的密集连接,实现了特征在通道维度上的复用,不但减缓了梯度消失的现象,也使其…

【二分图】【二分图最大匹配】LCP 04. 覆盖

作者推荐 视频算法专题 本文涉及知识点 二分图 二分图最大匹配 LeetCode LCP 04. 覆盖 你有一块棋盘,棋盘上有一些格子已经坏掉了。你还有无穷块大小为1 * 2的多米诺骨牌,你想把这些骨牌不重叠地覆盖在完好的格子上,请找出你最多能在棋盘…

2024年京东云主机租用价格_京东云服务器优惠价格表

2024年京东云服务器优惠价格表,轻量云主机优惠价格5.8元1个月、轻量云主机2C2G3M价格50元一年、196元三年,2C4G5M轻量云主机165元一年,4核8G5M云主机880元一年,游戏联机服务器4C16G配置26元1个月、4C32G价格65元1个月、8核32G费用…

新书速递——《可解释AI实战(PyTorch版)》

本书旨在帮助你实施最新的可解释AI技术,以构建公平且可解释的AI系统。可解释AI是当今AI研究中的热门话题,但只有少数资源和指南涵盖了所有重要技术,这些技术对实践者来说非常有价值。本书旨在填补这一空白。 本书读者对象 本书既适合那些有兴…

GIt的原理和使用(五):模拟多人协作的两种情况

目录 多人协作 多人协作一 准备工作 协作开发 多人协作二 准备工作 额外场景 申请单合并分支 更推荐写法 远程分支删除后,本地git branch -a依然能看到的解决办法 多人协作 多人协作一 目标:在远程master分支下的file.txt文件新增代码“aaa”…

鸿蒙OS开发实例:【窥探网络请求】

HarmonyOS 平台中使用网络请求,需要引入 "ohos.net.http", 并且需要在 module.json5 文件中申请网络权限, 即 “ohos.permission.INTERNET” 本篇文章将尝试使用 ohos.net.http 来实现网络请求 场景设定 WeiBo UniDemo HuaWei : 请求顺序WeiBo1 UniDem…

华为数通 HCIP-Datacom H12-831 题库补充(3/27)

2024年 HCIP-Datacom(H12-831)最新题库,完整题库请扫描上方二维码,持续更新。 如图所示,关于R4路由器通过IS-IS计算出来的IPv6路由,哪一选项的描述是错误的? A:R4通过IS—IS只学习到…

基于SpringBoot的“校园台球厅人员与设备管理系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“校园台球厅人员与设备管理系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构图 系统首页界面图…

PCL拟合并绘制平面(二)

使用RANSAC拟合点云平面 1、C实现2、效果图 普通的点云平面拟合方式在一般情况下可以得到较好的平面拟合效果,但是容易出现平面拟合错误或是拟合的平面不是最优的情况。此时就需要根据自己的实际使用情况,调整平面拟合的迭代次数以及收敛条件。 使用RAN…

亚马逊测评新策略:解决底层环境防关联,提升下单成功率

对于做测评的环境系统,确保稳定性和成功率是非常重要的。市面上有各种环境方案,如虚拟机、模拟机、gcs、云手机、VPS等。然而,这些方案不仅成本高,而且成功率很低。因此,一个好的环境系统是成功的基础。 亚马逊平台的…

记录rocketMQ5.+启动报错解决过程

1.根据官方文档指引下载对应的rocketMQ源码包,上传到服务器解压 2. 启动NameServer nohup sh bin/mqnamesrv & 验证namesrv是否启动成功 tail -f ~/logs/rocketmqlogs/namesrv.log The Name Server boot success… 3.启动BrokerProxy nohup sh bin/mqbroker -n …

第3章.引导ChatGPT精准角色扮演:高效输出专业内容

角色提示技术 角色提示技术(role prompting technique),是通过模型扮演特定角色来产出文本的一种方法。用户为模型设定一个明确的角色,它就能更精准地生成符合特定上下文或听众需求的内容。 比如,想生成客户服务的回复…

Java作业3-字符串

题目一 代码 import java.util.*; public class Main {public static void main(String[] args) {Scanner input new Scanner( System.in );String str input.nextLine();int len str.length();StringBuilder s new StringBuilder(len);//StringBuilder类参考菜鸟教程for…

深入理解HDFS工作原理:大数据存储和容错性机制解析

** 引言: ** 在当今数据爆炸的时代,存储和管理大规模数据成为了许多组织面临的重要挑战。为了解决这一挑战,分布式文件系统应运而生。Hadoop分布式文件系统(HDFS)作为Apache Hadoop生态系统的核心组件之一&#xff…

是德科技keysight N9000B 信号分析仪

181/2461/8938产品概述: 工程的内涵就是将各种创意有机地联系起来,并解决遇到的问题。 CXA 信号分析仪具有出色的实际性能,它是一款出类拔萃、经济高效的基本信号表征工具。 它的功能十分强大,为一般用途和教育行业的用户执行测试…

深入探讨分布式ID生成方案

✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天开心哦!✨✨ 🎈🎈作者主页: 喔的嘛呀🎈🎈 ✨✨ 帅哥美女们,我们共同加油!一起进步&am…