面试题汇总——计算机网络

参考链接:
Http的8中请求方法:https://www.cnblogs.com/weibanggang/p/9454581.html
牛客面经:https://www.nowcoder.com/tutorial/96/4700c6f1f3334c9191a38406002efa65

七层/五层模型?

在这里插入图片描述

TCP建立连接的三次握手,可不可以只有两次?

在这里插入图片描述SYN:同步位
ACK:确认ACK,仅当ACK=1时,确认号ack字段有效。TCP规定,在建立连接后,所有传送的报文段都必须把ACK置为1.
seq:序号
ack:确认号

    1.客户端向服务器发送 **SYN 包**,表示客户端请求建立连接。
    2.服务器收到 SYN 包后,发送 **SYN+ACK 包给**客户端,表示服务器收到了客户端的请求。
    3.客户端收到 SYN+ACK 包后,再发送 **ACK 包**给服务器,表示客户端确认服务器的确认应答。

TCP 协议采用三次握手(Three-way Handshake)的方式建立连接,而不是两次握手或其他方式建立连接,是因为三次握手可以有效地防止已失效的连接请求报文段被错误地接受并导致数据传输混乱。

具体来说,假设客户端向服务器发送了一个连接请求,但该请求在网络中滞留了一段时间,并且延迟到连接释放后才到达服务器。如果仅使用两次握手来建立连接,那么服务器会认为客户端仍然想要建立连接,并向其发送确认应答。此时客户端没有发出请求,却收到了服务器的确认应答,就会认为连接已经建立,于是开始向服务器发送数据。但由于服务器并没有实际上建立连接,因此无法正确处理数据,导致通信失败或产生不可预期的错误。

三次握手时,客户端收到后可以根据自身的上下文,判断是否是一个历史连接(序列号过期或超时),那么客户端就会发送 RST 报文给服务端,表示终止这一次连接。如果是两次握手,就无法阻止历史连接,因为客户端没有中间状态 RST 给服务端来阻止连接,导致会建立一个历史连接,造成资源浪费。

总之,TCP 使用三次握手来建立连接,是为了确保连接的可靠性和正确性,避免已失效的连接请求报文导致数据传输混乱。

链接:https://www.zhihu.com/question/429915921/answer/2930173596

DNS域名解析过程,基于什么传输层协议?

Http与TCP的区别和联系

Http的8中请求方法

HTTP/1.1协议中共定义了八种方法(有时也叫“动作”),来表明Request-URL指定的资源不同的操作方式
HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法
(1)操作
HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查 ,改 ,增 ,删 4个操作。
在这里插入图片描述
(2)区别
GET:请求参数在请求行中(在URL后);请求的URL长度有限制;不太安全
POST:请求参数在请求体中;请求URL长度没有限制;相对安全

http和https

相比于http,https是基于ssl加密的http协议。https的SSL加密是在传输层实现的。

(1)http和https的基本概念

http: 超文本传输协议,是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。 https: 是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
https协议的主要作用是:建立一个信息安全通道,来确保数组的传输,确保网站的真实性。

(2)http和https的区别?

http传输的数据都是未加密的,也就是明文的,网景公司设置了SSL协议来对http协议传输的数据进行加密处理,简单来说https协议是由http和ssl协议构建的可进行加密传输和身份认证的网络协议,比http协议的安全性更高。
主要的区别如下: Https协议需要ca证书,费用较高。
http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
使用不同的链接方式,端口也不同,一般而言,http协议的端口为80,https的端口为443 http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

(3)https协议的工作原理

客户端在使用HTTPS方式与Web服务器通信时有以下几个步骤,如图所示。
客户使用https url访问服务器,则要求web 服务器建立ssl链接。
web服务器接收到客户端的请求之后,会将网站的证书(证书中包含了公钥),返回或者说传输给客户端。
客户端和web服务器端开始协商SSL链接的安全等级,也就是加密等级。
客户端浏览器通过双方协商一致的安全等级,建立会话密钥,然后通过网站的公钥来加密会话密钥,并传送给网站。
web服务器通过自己的私钥解密出会话密钥。
web服务器通过会话密钥加密与客户端之间的通信。

(4)https协议的优点

使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器;
HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性。
HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。
谷歌曾在2014年8月份调整搜索引擎算法,并称“比起同等HTTP网站,采用HTTPS加密的网站在搜索结果中的排名将会更高”。

(5)https协议的缺点

https握手阶段比较费时,会使页面加载时间延长50%,增加10%~20%的耗电。
https缓存不如http高效,会增加数据开销。
SSL证书也需要钱,功能越强大的证书费用越高。
SSL证书需要绑定IP,不能再同一个ip上绑定多个域名,ipv4资源支持不了这种消耗。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weightOneMillion

感谢看官们的供粮~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值