栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

计算机网络最新面试题总结(三)2022版

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

计算机网络最新面试题总结(三)2022版

其他计算机网络面试题总结:
【计算机网络面试题总结一】
【计算机网络面试题总结二】
【计算机网络面试题总结四】

一、POST和GET有哪些区别?

使用场景

  • GET 的语义是从服务器获取指定的资源,请求的参数位置一般是写在 URL 中(URL 只支持 ASCII,而且浏览器会对 URL 的长度有限制)。
  • POST 的语义是根据请求负荷(报文body)对指定的资源做出处理,请求携带数据的位置一般是写在报文 body 中。

安全性和幂等性

  • 安全性:指请求方法不会「破坏」服务器上的资源。
  • 幂等性:多次执行相同的操作,结果都是「相同」的。
  • GET 方法就是安全且幂等的,因为它是「只读」操作。
  • POST 因为是「新增或提交数据」的操作,会修改服务器上的资源,所以是不安全和非幂等的。

是否可缓存

  • GET可以缓存到浏览器本身上(彻底避免浏览器发请求),也可以做到代理上(如nginx)
  • POST不可缓存
二、GET请求中URL编码的意义?

在GET请求中会对URL中非西文字符进行编码,这样做的目的就是为了 避免歧义

假设有“name1=value1&name2=value2”的字符串,该字符串在计算机中用ASCII码表示为:

   6E616D6531 3D 76616C756531 26 6E616D6532 3D 76616C756532
   6E616D6531:name1 
   3D:= 
   76616C756531:value1 
   26:&
   6E616D6532:name2 
   3D:= 
   76616C756532:value2 

服务端在接收到该数据后就可以遍历该字节流,一个字节一个字节的吃,当吃到3D这字节后,服务端就知道前面吃得字节表示一个key。

但是参数值中就包含 = 或 & 这种特殊字符的时候该怎么办?例如“va&lu=e1”

为了避免服务器解析产生歧义,解决的办法就是对参数进行URL编码。

三、HTTP中常用的状态码?

状态码分类

1xx:表示目前是协议的中间状态,还需要后续操作;

2xx:表示请求成功

3xx:表示重定向,需要重新请求

4xx:表示请求报文错误,客户端出错

5xx:表示服务器端错误

常用状态码

「200 OK」:如果是非 HEAD 请求,服务器返回的响应头都会有 body 数据。

「204 No Content」:响应头没有 body 数据。

「206 Partial Content」:表示响应返回的 body 数据并不是资源的全部,而是其中的一部分。

「301 Moved Permanently」:表示永久重定向,说明请求的资源已经不存在了,需改用新的 URL 再次访问。

「302 Found」:表示临时重定向。

「304 Not Modified」:表示资源未修改,重定向已存在的缓冲文件,也称缓存重定向,也就是告诉客户端可以继续使用缓存资源。

「400 Bad Request」:请求错误。

「403 Forbidden」:表示服务器禁止访问。

「404 Not Found」:表示请求的资源未找到。

「500 Internal Server Error」:服务器错误。

「502 Bad Gateway」:服务器作为网关或代理时返回的错误码。

「503 Service Unavailable」服务器繁忙。

四、HTTP长连接和短链接,流水线是什么?

长连接和短链接

  • 短连接:浏览器和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。
  • 长连接:指的是复用TCP连接。多个HTTP请求可以复用同一个TCP连接,节省了TCP连接建立和断开的消耗。

流水线

默认情况下,HTTP 请求是按顺序发的,下一个请求只有在当前请求收到响应之后才会被发出。而收到下一个请求可能需要很长时间。流水线就是在一个 HTTP 长连接下连续发出请求,不用等待响应返回,减少延迟。

五、HTTP1.0,1.1,2.0 ,3.0的版本区别?

HTTP/1.0

  • 仅支持短连接,每次发送数据都会经过TCP三次握手和四次挥手,效率低。

  • 不支持端点续传,每次发送数据都会发送全部数据

  • 不支持虚拟网络

HTTP/1.1

  • 默认使用长连接:只需要建立一次连接,可以传输多次数据,传输完成之后,只需要一次切断即可。通过请求头的 Connection: keep-alive设置。
  • 引入了管道机制(pipelining),即在同一个TCP连接里面,客户端可以同时发送多个请求。

有了持久连接和管道,大大的提升了HTTP的效率。但是服务端还是顺序执行的,效率还有提升的空间。

HTTP/2.0

  • 基于 HTTPS 。安全性有保障。
  • 利用HPACK算法进行头部压缩。由于HTTP1.1头部经常出现Cookie、Accept、Sever、Range等字段可能会占用几百到几千字节,而body有时只有几十字节(“头重身轻”)。
  • 报文采用二进制格式。头信息帧和数据帧统称为帧。
  • 数据流。每个请求的所有数据包,称为一个数据流。每个数据流都标记着一个独一无二的编号(Stream ID),因此不同 Stream 的帧是可以乱序发送的。
  • 多路复用。在一个连接中,客户端和浏览器都可以同时发送多个请求或回应,而不用按照顺序一一对应。

HTTP/1.1 中的管道虽然解决了请求的队头阻塞,但是没有解决响应的队头阻塞;

HTTP/2.0通过多路复用解决了响应的队头阻塞,但是在一个TCP连接中,一旦发生丢包,就会阻塞住所有的 HTTP 请求,这属于 TCP 层队头阻塞。

HTTP/3.0

HTTP/3 把 HTTP 下层的 TCP 协议改成了 UDP。UDP 发生是不管顺序,也不管丢包的,所以不会出现像 HTTP/2 队头阻塞的问题,基于 UDP 的 QUIC 协议 可以实现类似 TCP 的可靠性传输。

  • 无队头阻塞

  • 更快的连接建立

六、HTTP和HTTPS的区别?

Http协议运行在TCP之上,明文传输,客户端与服务器端都无法验证对方的身份;Https是身披SSL(Secure Socket Layer)外壳的Http,运行于SSL上,SSL运行于TCP之上,是添加了加密和认证机制的HTTP。

  • http 协议是免费使用的, https 协议需要到CA机构购买证书;
  • http明文传输,https报文加密;
  • http端口80,https端口443;
  • https会消耗更多cpu和内存资源;
七、HTTP中的请求方法有哪些?
  • GET:获取资源。
  • HEAD:获取报文首部。
  • POST:对指定资源进行处理。
  • PUT:上传文件。由于自身不带验证机制,任何人都可以上传文件,因此存在安全性问题
  • Delete:删除文件,与 PUT 功能相反,并且同样不带验证机制。
八、对称加密和非对称加密的区别?

对称加密

指双方对信息的加密和解密使用的是同一个密钥的方式。

非对称加密

非对称加密的密钥分为公钥和私钥,任何人都可以获得公钥,但是只有自己拥有私钥。使用公钥加密的数据,只有对应的私钥能进行解密;使用私钥加密的数据,只有对应的公钥能进行解密。加密和解密使用的是两个不同的密钥,故称非对称加密。

九、请求转发和重定向的区别?

请求转发

  • 浏览器只发出一次请求,收到一次响应。
  • 浏览器地址显示的是用户提交的请求路径,不会改变。
  • 只能跳转道当前应用的资源中。

重定向

  • 浏览器发出两次请求,接收两次响应。
  • 浏览器地址显示为重定向的请求路径,而非提交的请求路径。可以防止表单的 重复提交。
  • 不仅可以跳转到当前应用的其他资源,也可以跳转到其他应用的资源。
十、谈谈你对停止等待协议的理解?

停止等待协议

位于数据链路层,为了实现可靠传输,原理是每发送完一个帧就停止发送,等待对方的确认,在收到确认后再发送下一个帧。

超时重传

在停止等待协议中会设置超时计时器,如果超过时间没有收到接收方的ACK,则会对数据进行重传。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/941219.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号