HTTP相关——http1.0 1.1 1.2、https、加密算法

HTTP请求过程

  1. 建立TCP连接
  2. 发送HTTP请求
    http的请求报文由三个部分组成:请求行、请求头、请求正文
    请求行:主要区分请求报文和响应报文
    请求报文的格式是:方法+URL+版本,响应报文的格式:版本+状态码+版本
    请求头:包含了一些浏览器的信息,以及环境的信息
    请求正文:请求的时候可能需要带上一些数据。
  3. 服务器响应HTTP请求
  4. 关闭TCP连接

HTTP1.0 与 HTTP1.1 区别

HTTP1.0

根据上面请求过程,1.0的实现就是每次的HTTP的请求都要进行TCP连接。
在这里插入图片描述
每次都需要等待2个时间。

HTTP1.1

http1.1 为了减少每次都要建立TCP连接的问题,引入了TCP保持连接。在这段保持连接的时间内,http不需要再去建立TCP连接,每次可以节约1个时间。
http1.1 的保持连接的方式有两种:

  1. 非流水线式的,客户在收到一个响应后才会去发下一个请求。
  2. 流水线式的,客户不会等待响应,会持续发送一连串的请求。

HTTP2.0

有4个新特征:

  1. 不像以往一样使用文本传输,采用二进制的方式
  2. 压缩了请求头,以往只有主体会使用GZIP的方式压缩
  3. 多路复用(详细:https://segmentfault.com/a/1190000011172823#articleHeader2)
  4. 服务器主动推送

详细介绍:
https://blog.csdn.net/hyugahinat/article/details/50833341
https://www.cnblogs.com/frankyou/p/6145485.html

get 和 post 的区别

GET产生一个TCP数据包;POST产生两个TCP数据包。
1. get请求方式只会发送一次,http header 和data,服务器返回200
2. post方式会发送两次,第一次发送http header,服务器返回 100(继续发送数据),第二次发送 data

详细介绍(https://www.cnblogs.com/logsharing/p/8448446.html)

HTTPS

在这里插入图片描述

  1. 使用HTTPS协议访问,端口一般是443
  2. 服务端接收到请求
  3. 返回证书(公钥)
  4. 客户端得到证书,浏览器会进行验证,如果不可信会提示证书不可信,可信则会取出证书中的公钥
  5. 客户端生成一个随机数,并用公钥加密,返回给服务端。
  6. 服务端得到公钥加密后的随机数,用私钥进行解密。得到随机数
  7. 使用随机数进行对称加密传输数据

加密算法

对称加密

key为对称加密的密钥
Y=E(X) ,对明文X加密
D(Y)=D(E(X))=X , 对密文Y进行解密
在这里插入图片描述

非对称加密

在这里插入图片描述
A持有(A的私钥和B的公钥)
B持有(B的私钥和A的公钥)
A会对明文X使用A私钥进行解密,B公钥进行加密。B接收到的时候会对密文进行B私钥解密,再进行A公钥加密,得到明文。

报文鉴别

散列函数

对报文进行鉴别首先需要有鉴别相关的东西,以MD5为例,MD就是message digeste (报文摘要),使用散列函数可以算出报文X唯一的鉴别码。
在这里插入图片描述
接收者接收到鉴别码和拼接的报文。会对报文再次使用散列函数进行运算得到报文摘要,并与发送过来的加密后的报文进行解密,然后再进行比较。就可以知道报文是否被篡改过。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值