知识梳理_01_网络

网络体系结构

五层协议体系结构

应用层 HTTP,SMTP,FTP
运输层 TCP,UDP
网络层 IP
链路层
物理层

TCP/IP体系结构

应用层 HTTP,SMTP,FTP
运输层 TCP,UDP
网络层 IP
网络接口层

UDP(User Datagram Protocol,用户数据报协议)

特点

  1. 面向无连接
  2. 不可靠
  3. 数据报文段传输
  4. 传输效率快
  5. 所需资源少
  6. 首部字节 8个字节

TCP(Transmission Control Protocol ,传输控制协议)

特点

  1. 是面向连接
  2. 可靠
  3. 字节流传输
  4. 传输效率慢
  5. 所需资源多
  6. 首部字节20-60

三次握手

三次握手
图片来源:https://mp.weixin.qq.com/s/t7ZYT6wBBbFYVBPOSztpRg

  1. 第一次握手:建立连接时,客户端发生SYN(Seq=x)包到服务器,并进入SYN_SEND状态,等待服务器确认。
  2. 第二次握手:服务器收到SYN包,打开客户端连接,发送一个 SYN-ACK 作为答复,Seq =y,ACK=x+1
  3. 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ACK=y+1)

举例:

  • 小明给小红打电话,接通了后,小明说喂,能听到吗,这就相当于是连接建立。
  • 小红给小明回应,能听到,你能听到我说的话吗,这就相当于是请求响应。
  • 小明听到小红的回应后,好的,这相当于是连接确认。在这之后小明和小红就可以通话/交换信息了。

四次挥手

在连接终止阶段使用四次挥手
四次挥手
图片来源:https://mp.weixin.qq.com/s/t7ZYT6wBBbFYVBPOSztpRg

  1. 客户端发送一个FIN,用来关闭客户端到服务器的连接,并进入FIN_WAIT_1状态
  2. 服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1
  3. 当客户端收到服务器发送的 ACK 响应后,客户端就进入 FIN_WAIT_2 状态,然后等待来自服务器的 FIN 消息
  4. 服务器发送 ACK 确认消息后,一段时间(可以进行关闭后)会发送 FIN 消息给客户端,告知客户端可以进行关闭。
  5. 当客户端收到从服务端发送的 FIN 消息时,客户端就会由 FIN_WAIT_2 状态变为 TIME_WAIT 状态。
  6. 客户端发回ACK报文确认,并将确认序号设置为收到序号加1
  7. 在等待一段时间后,连接关闭,客户端上所有的资源(包括端口号和缓冲区数据)都被释放。

举例:

  • 小明对小红说,我所有的东西都说完了,我要挂电话了。
  • 小红说,收到,我这边还有一些东西没说。
  • 经过若干秒后,小红也说完了,小红说,我说完了,现在可以挂断了
  • 小明收到消息后,又等了若干时间后,挂断了电话。

HTTP(Hypertext Transfer Protocol,超文本传输协议)

Get 和 Post 区别

  • Get:
    请求数据在URL后
    传输数据就会受到URL长度的限制
    不安全
  • Post:
    请求参数在请求体中
    由于不是通过URL传值,理论上数据不受限
    相对安全

HTTP请求格式

请求格式
请求格式例子
图片来源:https://www.cnblogs.com/lmh001/p/9928517.html

HTTP响应格式

响应行(状态行): HTTP 版本、 状态码、 状态消息
响应头: 消息报头, 客户端使用的附加信息
空行: 响应头和响应实体之间的, 必须的。
响应实体: 正文, 服务器返回给浏览器的信息
响应格式例子
图片来源:https://www.cnblogs.com/lmh001/p/9928517.html

HTTP1.1版本新特性

  1. 长连接的通信方式,只要任意一端没有明确提出断开连接,则保持 TCP 连接状态。
  2. 管道网络传输,即可在同一个 TCP 连接里面,客户端可以发起多个请求,只要第一个请求发出去了,不必等其回来,就可以发第二个请求出去,可以减少整体的响应时间。
  3. 支持断点续传,通过使用请求头中的 Range 来实现

一次完整的HTTP请求

  1. DNS解析,查找过程:浏览器缓存、本机 hosts 文件、网络中 DNS 查询
  2. TCP连接
  3. 发起HTTP请求
  4. 服务器处理请求并返回HTTP报文
  5. 浏览器解析渲染页面
  6. 连接结束

Http与Https的区别

  1. HTTP 以http://开头,而HTTPS 以https://开头
  2. HTTP是不安全的,HTTPS是安全的
  3. HTTP默认端口80,HTTPS默认端口443
  4. HTTP无法加密,而HTTPS对传输数据进行加密
  5. HTTP无需证书,而HTTPS需要CA机构颁发的证书

Https请求过程

  1. 服务器把自己的公钥注册到CA;
  2. CA用自己的私钥将服务器的公钥数字签名并颁发数字证书;
  3. 客户端发起请求,拿到服务器的数字证书后,使用CA的公钥(CA的公钥已事先置入到浏览器或者操作系统里)校验合法性,主要包括是否在有效期内、证书的域名与请求的域名是否匹配,上一级证书是否有效(递归判断,直到判断到系统内置或浏览器配置好的根证书),如果不通过,则显示HTTPS警告信息,如果通过则继续;
  4. 客户端生成一个用于对称加密的随机Key,并用证书内的公钥Pub进行加密,发送给服务端;
  5. 服务端收到随机Key的密文,使用与公钥Pub配对的私钥Private进行解密,得到客户端真正想发送的随机Key;
  6. 服务端使用客户端发送过来的随机Key对要传输的HTTP数据进行对称加密,将密文返回客户端;
  7. 客户端使用随机Key对称解密密文,得到HTTP数据明文;
  8. 后续HTTPS请求使用之前交换好的随机Key进行对称加解密。

对称加密

密钥只有⼀个,加密解密为同⼀个密码,且加解密速度快,典型的对称加密
算法有DES、 AES等;

非对称加密

密钥成对出现(且根据公钥⽆法推知私钥,根据私钥也⽆法推知公钥),
加密解密使⽤不同密钥(公钥加密需要私钥解密,私钥加密需要公钥解密),相对对称
加密速度较慢,典型的⾮对称加密算法有RSA、 DSA等

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值