计算机网络(一)
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