计算机网络(一)为什么要进行四次挥手,不能进行两次握手,Http和Https区别,Http请求和DNS解析过程

1、为什么要进行四次挥手?

由于TCP是全双工的,因此每个方向都需要单独关闭。
因为服务端的listen状态下的socket收到SYN报文的连接请求的时候,可以把ACK和SYN(ACK起应答作用,SYN起同步作用)放在一个报文里来发送。但关闭连接时,当收到对方的SYN报文通知时,仅表示对方没有数据发送给你了,但未必你所有的数据都发送给对方了,所以你未必可能会马上关闭socket,即你可能会发送一些东西给对方后,再发送FIN报文给对方代表你同意关闭连接了,所以这里的ACK和SYN大多情况都是分开发送的。

2、为什么不能进行两次握手?

三次握手完成了两个重要的功能,既要双方做好发送数据的准备,也要双方就初始序号进行协商,这个序列号在握手过程中被发送和确认。
如果把三次握手改成两次握手,死锁是有可能发生的。假如Client发送了一个连接请求分组给Server,Server收到了这个分组,并且发送了确认应答分组。
按照两次握手的协定,Server端认为已经建立连接了,可以进行发送数据。但是,如果Server的应答分组丢失了,Client将不知道Server是否准备好,甚至怀疑Server是否收到了自己的连接请求。在这种情况下,Client认为还未建立成功,将忽略Server发来的任何数据分组,只等待Server端的确认分组。而Server发出的分组超时后,重复发送同样的分组,这样就形成了死锁。

3、TCP粘包

参考网址:https://www.cnblogs.com/panchanggui/p/9518735.html

4、Http请求的过程

比如我们在地址栏输入 www.baidu.com,然后回车,后续发生的过程如下:

过程概览

  • 1、对www.baidu.com这个地址进行DNS域名解析,得到对应的IP地址。
  • 2、根据这个IP,找到对应的服务器,发起TCP的三次握手。
  • 3、建立TCP连接之后发起HTTP请求
  • 4、服务器相应HTTP请求,浏览器得到HTML代码
  • 5、浏览器解析HTML代码,并请求HTML代码中的资源(如js,css图片等),先得到HTML代码,才能去找这些资源
  • 6、浏览器对页面进行渲染呈现给用户。

注:
1、DNS域名解析采用的是递归的方式,过程是,首先先去DNS缓存查找–>缓存找不到就去根域名服务器–>根域名又会去找下一级,这样递归查到了,给web浏览器
2、最后一步浏览器是如何对页面进行渲染的?

  • 解析HTML构成DOM树
  • 解析css文件构成渲染树
  • 边解析,边渲染
  • JS单线程运行,JS有可能修改DOM结构,意味着JS执行完成前,后续所有的资源下载都是没有必要的,所以JS是单线程的,会阻塞后续资源下载
5、DNS解析过程

过程的具体细节:

  • a、首先会搜索浏览器自身的DNS缓存(缓存时间较短,大概只有1分钟,且只能容纳1000条缓存)
  • b、如果浏览器自身的DNS缓存没有找到,就会搜索系统的DNS缓存
  • c、如果还没有找到,就尝试从hosts文件中去找
  • d、如果还没找到,就递归地去域名服务器查找
    参考网址:https://www.cnblogs.com/xuzekun/p/7527736.html
6、Http和Https的区别
6.1、基本概念

HTTP协议以明文方式发送内容,不提供任何数据的加密,如果攻击者截取了浏览器和服务器之间的传输报文,就可以直接读懂其中的信息,因此,Http不适合传输一些敏感信息。
Https可以看做http的安全版,即在Http下加入了SSL层,Https的安全基础就是SSL。

Https协议的作用可以分为两个:一种是建立信息安全通道,来保证数据传输的安全。另一种就是确认网站的真实性。

6.2、Http和Https的主要区别

(1)Https需要申请证书
(2)Https比Http安全
(3)Http和Https采用完全不同的连接方式,端口也不一样,前者是80,后者是443
(4)Http的连接很简单,是无状态的;Https是有SSL+Http协议构建的可进行加密传输,身份认证的网络协议。

6.3、Https的工作原理

客户端在使用Https方式与web服务器进行通信时,会有以下几个步骤:
(1)客户端使用Https的URL访问web服务器,要求与web服务器建立SSL连接。
(2)web服务器收到请求后,会将网站的证书信息(包含公钥)发送给客户端。
(3)客户端的浏览器与web服务器开始协商SSL连接的安全等级,也就是信息加密的等级
(4)客户端的浏览器根据双方同意的加密等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
(5)web服务器根据自己的私钥解密出会话密钥。
(6)web服务器根据会话密钥加密与客户端之间通信。
在这里插入图片描述
参考网址:https://www.cnblogs.com/wqhwe/p/5407468.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值