【八股】计网八股速记版(二)

10. HTTPS的工作原理

在这里插入图片描述

  1. 客户端发送请求报文给服务端,请求建立HTTPS连接。
  2. 服务端收到请求后,产生一对公私钥,然后把公钥发送给CA机构,CA机构也产生一对公私钥,CA机构使用自己的私钥对服务端的公钥进行加密,产生一个CA数字证书。
  3. 服务端响应客户端的请求,将CA机构生成的数字证书发送给客户端。
  4. 客户端将服务端发送过来的数字证书进行解析,由于客户端和CA机构是合作的关系,所以客户端浏览器中已经保存了大部分CA机构的密钥。验证这个数字证书是否合法,如果这个数字证书合法,取出服务端生成的公钥,如果不合法,就会发出警告。
  5. 客户端拿到解密后的公钥,产生一个随机的密钥key(作为之后的对称密钥)。
  6. 客户端使用公钥对这个key进行加密后发送给服务端,作为接下来的对称加密的密钥
  7. 服务端收到之后,会使用自己的私钥对它进行解密,然后获得随机码key。
  8. 服务端使用随机码key对传输的数据进行加密,再传输加密后的内容给客户端。
  9. 客户端使用自己生成的随机码key解密服务端发送过来的数据之后,客户端和服务端通过对称密钥加密传输数据,随机码key作为传输的密钥。

11. HTTPS与HTTP的区别

  1. HTTP是明文传输,HTTPS是使用SSL\TLS进行加密的
  2. HTTPS需要到CA申请证书
  3. HTTP的端口号是80 HTTPS的端口号是443
  4. HTTP的连接简单,是无状态的;HTTPS的协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全。

12. DNS及其查询过程

DNS, 域名管理系统,是当用户使用浏览器访问网址之后,使用的第一个重要协议。DNS要解决的是域名和IP地址的映射问题。

查询过程:

  1. 首先用户在浏览器输入URL地址之后,会先查询浏览器的缓存中是否有该域名对应的IP地址。
  2. 如果没有的话,会查询本地HOST文件中是否缓存该IP地址。
  3. 如果本地的HOST文件中也没有,会向本地DNS解析器发送一个DNS查询请求
  4. 本地DNS系统没有缓存该域名的解析记录,会向根DNS服务器发出查询请求,根DNS系统并不负责解析域名,但它能告诉本地DNS解析器应该向哪个顶级域(.com/.org/.net)的DNS服务器继续查询
  5. 本地DNS解析器接着向指定的顶级域DNS服务器发出查询请求。顶级域DNS服务器也不负责具体的域名解析,但它能告诉本地的DNS服务器应该前往哪个权威DNS服务器查询下一步的信息。
  6. 本地DNS解析器最后向权威DNS服务器发送查询请求。权威DNS服务器是负责储存特定域名和IP地址映射的服务器。当权威DNS服务器收到查询请求时,它会查找“example.com”域名对应的IP地址,并将结果返回给本地DNS解析器。
  7. 本地的DNS解析器将收到的IP地址返回给浏览器,并且还会将域名解析结果储存在本地,以便下次访问时更快地响应。

13. HTTP多个TCP连接怎么实现

多个TCP连接时由某些服务器对Connection:keep-alive的Header进行了支持实现的。简而言之,完成这个HTTP请求之后,不要断开TCP连接。这样的好处是连接可以被重新使用,之后发送HTTP请求的时候不需要重新建立TCP连接,以及如果要维持连接,那么SSL的开销也可以避免。

14. TCP的Keepalive和HTTP的Keep-alive是一个东西吗

HTTP的Keep-alive是由应用层(用户态)实现的,称为HTTP长连接:
每次请求都要经历这样的过程: 建立TCP连接->请求资源->发送资源->释放连接,这就是HTTP短连接,但是这样每次建立连接都只能请求一次资源,所以HTTP的Keep-alive实现了使用同一个TCP连接来发送和接受多个HTTP请求/应答,避免了连接建立和释放的开销,这就是HTTP长连接。

TCP的keepalive是由TCP层(内核态)实现的,称为TCP保活机制:
通俗来说,就是TCP有一个定时任务做倒计时,超时后会触发任务,内容是发送一个探测报文给对端,用来判断对端是否存活。

15.TCP如何确保可靠性

  1. 数据块大小控制:应用数据被分割成TCP认为最适合发送的数据块,再传输给网络层,数据块被称为报文段或段
  2. 序列号:TCP给每个数据包指定一个序列号,接收方根据序列号对数据包进行排序,并根据序列号对数据包进行去重
  3. 校验和:TCP将保持它首部和数据的校验和。这是一个端到端的校验和,目的是检测数据在传输过程中发生的任何变化。如果接收端收到一个报文段的校验和出现了差错,接收端将丢弃此报文段并不确认收到了该报文段。
  4. 流量控制:TCP连接的每一方都有固定大小的缓冲区。TCP的接收端只允许发送端发送接收端缓冲区能够容纳的大小的数据。当接收方来不及处理发送方发送的数据,可以提示发送方降低发送的速率,防止包求实。TCP利用滑动窗口实现流量控制。
  5. 拥塞控制:当网络拥塞时,减少数据的发送
  6. 确认应答:通过ARQ协议实现。基本原理是每发完一个分组就停止发送,等待对方确认。如果没收到确认,会重发数据包,直到确认后再发下一个分组。
  7. 超时重传:当TCP发出一个数据段后,它启动一个定时器,等待目的端确认收到这个定时器。如果不能及时收到一个确认,将重发这个报文段。

16. 拥塞控制是怎么实现的

  1. 慢启动。 在连接刚开始时,发送方会逐渐增加窗口的大小,从而以指数增长的速度增加发送的数据量。
  2. 拥塞避免。一旦慢启动的阶段过去,发送方会进入拥塞避免的阶段,发送方会逐渐增加发送窗口的大小,但增加的速率减慢,避免网络中出现拥塞。
  3. 超时重传。如果发送方在超时时间内未收到回复,他会认为数据包丢失,会立即重传这些数据包。这是拥塞控制的最后手段,用于检测和处理网络中的丢包或拥塞情况。当网络出现拥塞,也就是会发生数据包重传。
  4. 快速重传和快速恢复。当发送方发送的数据包丢失或网络出现拥塞时,接收方会发送重复确认通知发送方有数据包丢失。当发送方收到一定数量的重复确认后,它会立即重传丢失的数据包,而不是等待超时。这样可以减少网络的拥塞程度。
  5. 拥塞窗口调整。发送方根据网络的拥塞程度动态调整发送窗口的大小,通过监测网络延迟和丢包情况来确定合适的发送速率,以避免网络拥塞。

17.Cookie和Session是什么,有什么区别

Cookie 和 Session 都⽤于管理⽤户的状态和身份, Cookie 通过在客户端记录信息确定⽤户身份, Session 通过在服务器端记录信息确定⽤户身份。

Cookie

Cookie 是存储在⽤户浏览器中的⼩型⽂本⽂件,⽤于在⽤户和服务器之间传递数据。通常,服务器会将⼀个或多个 Cookie 发送到⽤户浏览器,然后浏览器将这些 Cookie 存储在本地。
服务器在接收到来⾃客户端浏览器的请求之后,就能够通过分析存放于请求头的Cookie得到客户端特有的信息,从⽽动态⽣成与该客户端相对应的内容。

Session

客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是 Session 。Session 主要⽤于维护⽤户登录状态、存储⽤户的临时数据和上下⽂信息等。

区别

存储位置:Cookie 数据存储在⽤户的浏览器中,⽽ Session 数据存储在服务器上。
数据容量:Cookie 存储容量较⼩,⼀般为⼏ KB。Session 存储容量较⼤,通常没有固定限制,取决于服务器的配置和资源。
安全性:由于 Cookie 存储在⽤户浏览器中,因此可以被⽤户读取和篡改。相⽐之下,Session 数据存储在服务器上,更难被⽤户访问和修改。
传输⽅式:Cookie 在每次 HTTP 请求中都会被⾃动发送到服务器,⽽ Session ID 通常通过 Cookie 或 URL 参数传递。

参考:
《代码随想录》 ——八股速记版

  • 19
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
计科面试八股文指的是在计算机科学相关岗位的面试中,面试官常常会采用一些标准化的问题和固定的答题模式,来评估面试者的基本知识和解决问题的能力。八股文的特点是模式化、机械化,给人一种呆板、死板的印象。 但是,八股文并不是完全没有价值的。它可以帮助面试官快速地了解面试者的基本背景和能力,并提供一个公平的评估标准。对于面试者来说,通过准备八股文,可以提高自己面试的成功率,从而获得心仪的工作机会。 然而,过于依赖八股文也有一些弊端。首先,八股文只是面试的一部分,过分注重八股文可能会忽略面试者的实际能力和潜力。其次,八股文的模式化特点容易导致面试者们背答案而不是真正理解和掌握知识。最后,八股文虽然可以给面试者提供一种应对固定问题的方式,但在实际工作中,面对的问题往往是多样化和具有挑战性的。 因此,在准备面试时,应该注重平衡。可以通过查阅面试常见问题,了解行业相关背景知识,并结合自己的实际经验和项目经历,对问题进行思考和回答,尽量做到有理有据、言之有物。同时,也要有开放的心态,面对一些非标准问题,灵活思考,展现自己的解决问题的能力和创造力。最关键的是,要将面试视为一个互动的机会,通过与面试官的交流和互动,展现自己的学习能力、团队合作能力和职业素养,从而给面试官留下深刻的印象。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值