计算机网络

http请求相关的过程

https://m.php.cn/faq/417099.html

tcp和udp的区别,为什么tcp更可靠,tcp一定就不会丢包吗?

1、连接方面区别

TCP面向连接

UDP是无连接的

2、安全方面的区别

TCP提供可靠的服务,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达。

UDP尽最大努力交付,即不保证可靠交付。

3、传输效率的区别

TCP传输效率相对较低。

UDP传输效率高,适用于对高速传输和实时性有较高的通信或广播通信。

4、连接对象数量的区别

TCP连接只能是点到点、一对一的。

UDP支持一对一,一对多,多对一和多对多的交互通信。

5、UDP是面向报文的,对上层交下来的报文,添加首部之后就交付给IP层。
TCP是面向字节流的。
6、UDP没有拥塞控制,TCP有。

TCP可靠传输的实现:滑动窗口、超时重传、选择确认。

tcp在网络状况不好的情况下是可能丢包的。

服务端发送 FIN(第二次 FIN) 报文前要等待多长时间

等数据处理完就会发送 FIN 报文了
是网络层的数据处理完,还是应用层的数据处理完呢?
(看具体情况,如果是 HTTP 请求的话就是应用层数据处理完;如果是基于 TCP 编码的话就是传输层数据处理完

https建立连接过程

SSL协议通信过程
 
(1) 浏览器发送一个连接请求给服务器;服务器将自己的证书(包含服务器公钥S_PuKey)、对称加密算法种类及其他相关信息返回客户端;
 
(2) 客户端浏览器检查服务器传送到CA证书是否由自己信赖的CA中心签发。若是,执行4;否则,给客户一个警告信息:询问是否继续访问。
 
(3) 客户端浏览器比较证书里的信息,如证书有效期、服务器域名和公钥S_PK,与服务器传回的信息是否一致,如果一致,则浏览器完成对服务器的身份认证。
 
(4) 服务器要求客户端发送客户端证书(包含客户端公钥C_PuKey)、支持的对称加密方案及其他相关信息。收到后,服务器进行相同的身份认证,若没有通过验证,则拒绝连接;
 
(5) 服务器根据客户端浏览器发送到密码种类,选择一种加密程度最高的方案,用客户端公钥C_PuKey加密后通知到浏览器;
 
(6) 客户端通过私钥C_PrKey解密后,得知服务器选择的加密方案,并选择一个通话密钥key(即对称加密的key),接着用服务器公钥S_PuKey加密后发送给服务器;
 
(7) 服务器接收到的浏览器传送到消息,用私钥S_PrKey解密,获得通话密钥key。
 
(8) 接下来的数据传输都使用该对称密钥key进行加密。
 
上面所述的是双向认证 SSL 协议的具体通讯过程,服务器和用户双方必须都有证书。
由此可见,SSL协议是通过非对称密钥机制保证双方身份认证,并完成建立连接,在实际数据通信时通过对称密钥机制保障数据安全性

为什么使用对称加密 对称加密和非对称加密的优缺点

https://zhuanlan.zhihu.com/p/42516761

HTTP 和 HTTPS 的区别?

https://gitee.com/SnailClimb/JavaGuide/blob/master/docs/network/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.md#%E5%8D%81%E4%B8%89-http-%E5%92%8C-https-%E7%9A%84%E5%8C%BA%E5%88%AB

拥塞控制

https://gitee.com/SnailClimb/JavaGuide/blob/master/docs/network/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.md#43-%E6%8B%A5%E5%A1%9E%E6%8E%A7%E5%88%B6

网络带宽网速计算

实际下载速度=带宽/8。因为宽带带宽是以位(b)计算,而下载速度是以字节(B)计算,1字节(B)等于8位(b)

DNS解析原理,使用的底层协议

dns解析有两种 查询方式,分为递归查询和迭代查询。一般的 主机 向本地域名服务器的查询使用递归查询,本地域名服务器向根域名服务器查询使用迭代查询。它使用的是 UDP协议,原因是性能更好,查询时间更短,如果发生数据丢失,重传一个就好了,不需要建立连接

http使用的是tcp还是udp

http 底层用什么协议得分版本,http1.0和http2.0都是基于tcp;http3.0是基于udp的,利用介于传输层和应用层之间的一个协议QUIC协议保证可靠传输。

get与post请求的区别,post的安全性体现在那里,是否可以发现他的请求内容

  1. GET把 参数包含在URL中,POST通过request body传递参数
  2. GET请求会被 浏览器主动cache,而POST 不会,除非手动设置。
  3. GET产生 一个TCP 数据包;POST产生 两个T CP数据包。
  4. GET比POST更不安全,因为参数 直接暴露在URL上,所以不能用来传递敏感信息。
  5. GET请求只能进行 url编码,而POST支持 多种编码方式。
  6. GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
  7. GET产生的URL地址可以被 Bookmark,而POST不可以
  8. GET在浏览器回退时是无害的,而POST会再次提交请求。
    9 由于(主流) 浏览器的一些 限制,导致get请求所传输的数据长度和字符编码(ASCII)受到一些限制,但是post请求一般未对其进行限制,所以支持更多的编码和数据长度
    post的安全性主要体现在上面的2,4,5,6点。可以通过抓包的形式获取到他的请求内容,不过,可能需要进行转码,解密。

TCP为什么要三次握手

TCP的三次握手最主要是防止已过期的连接再次传到被连接的主机。
如果采用两次的话,会出现下面这种情况。
比如是A机要连到B机,结果发送的连接信息由于某种原因没有到达B机;
于是,A机又发了一次,结果这次B收到了,于是就发信息回来,两机就连接。
传完东西后,断开。
结果这时候,原先没有到达的连接信息突然又传到了B机,于是B机发信息给A,然后B机就以为和A连上了,这个时候B机就在等待A传东西过去。
2. 三次握手改成仅需要两次握手,死锁是可能发生
考虑计算机A和B之间的通信,假定B给A发送一个连接请求分组,A收到了这个分组,并发送了确认应答分组。按照两次握手的协定,A认为连接已经成功地建立了,可以开始发送数据分组。可是,B在A的应答分组在传输中被丢失的情况下,将不知道A是否已准备好,不知道A建议什么样的序列号,B甚至怀疑A是否收到自己的连接请求分组。在这种情况下,B认为连接还未建立成功,将忽略A发来的任何数据分组,只等待连接确认应答分组。而A在发出的分组超时后,重复发送同样的分组。这样就形成了死锁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值