跳到主要内容

计算机网络基础

一、TCP


1.1 TCP 三次握手

1.2 TCP 为什么是可靠的?

1.3 说下你对 TCP 对头阻塞的理解? 如何解决对头阻塞?

二、UDP


2.1 UDP如何做到可靠,站在自己设计的角度来讲

三、HTTP


3.1 如何取消 Axios 请求

3.2 HTTP Keep-Alive 的作用?

3.3 304 状态码 与 浏览器缓存机制?

3.4 301、302、307、308 状态码的含义?

3.5 HTTP 1.1 / HTTP 2 / HTTP 3 的区别?

3.6 为什么说利用多个域名来存储网站资源会更有效?

答: 浏览器规定,同域名下资源请求存在最大并发数

3.7 说下你对 HTTP 对头阻塞的理解?如何解决对头阻塞?

四、HTTPS


4.1 为什么需要CA机构对证书签名?

4.2 https验证身份也就是TSL/SSL身份验证的过程?

4.3 https用哪些端口进行通信,这些端口分别有什么用?

4.4 身份验证过程中会涉及到密钥, 对称加密,非对称加密,摘要的概念,请解释一下

五、网络安全


5.1 XSS 攻击

答: XSS(跨站脚本攻击)是指攻击者在返回的 HTML 中嵌入 Javascript 脚本,为了减轻这些攻击,需要在HTTP 头部配上,set-cookie:httponly-这个属性可以防止 XSS,它会禁止 Javascript 脚本来访问 cookiesecure - 这个属性告诉浏览器仅在请求为 https 的时候发送cookie。 结果应该是这样的: Set-Cookie=<cookie-value>.....

5.2 CSRF 攻击

答: Csrf(跨站点请求伪造) 攻击者在用户已经登录目标网站之后,诱使用户访问一个攻击页面,利用目标网站对用户的信任,以用户身份再攻击页面对目标网站发起伪造用户操作的请求,达到攻击目的 Js 中手写一个深拷贝

5.3 中间人攻击

https 协议由 http + ssl 协议构成,具体的链接过程可参考 SSLTLS 握手的概述,中间人攻击过程如下:

  1. 服务器向客户端发送公钥。
  2. 攻击者截获公钥,保留在自己手上。
  3. 然后攻击者自己生成一个【伪造的】公钥,发给客户端。
  4. 客户端收到伪造的公钥后,生成加密hash 值发给服务器。
  5. 攻击者获得加密hash 值,用自己的私钥解密获得真秘钥。
  6. 同时生成假的加密hash 值,发给服务器。
  7. 服务器用私钥解密获得假秘钥。
  8. 服务器用加秘钥加密传输信息

防范方法: 服务端在发送浏览器的公钥中加入 CA 证书,浏览器可以验证 CA 证书的有效性

5.4 你对网络安全有了解吗?有做过哪些网络安全的尝试吗?

六、WebSocket


6.1 webSocket与传统的http有什么优势

6.2 webSocket协议升级时什么,能简述一下吗?