HTTP协议和HTTPS协议

最近HTTP协议,HTTPS协议,SSL协议,数字签名这些老是在眼前跳,但是很多都忘记了,重温了一把,总结一下

1.HTTP协议

HTTP协议是超文本传输协议,端口为80,属于应用层协议,由请求和响应构成,永远都是客户端发送请求,服务端回送响应。这样就限制了使用HTTP协议无法实现在客户端没有发起请求的时候,服务端把消息推送给客户端。
HTTP协议的动作过程:
  • 浏览器打开一个tcp连接
  • 浏览器发送http请求到服务器
  • 服务器发送http响应到浏览器
  • tcp连接关闭
HTTP/1.0每次请求都需要建立新的tcp连接,连接不能复用。HTTP/1.1新的请求可以在上次请求建立的tcp连接之上发送数据,连接可以复用,可以减少重复进行tcp三次握手的开销,提高效率。在同一个tcp连接中新的请求需要等上次请求收到响应之后,才能发送。
http请求由三部分组成:请求行,消息报头,请求正文
http响应由三部分组成:状态行,消息报文,响应正文
常用的请求方式:GET用于获取数据,POST一般用于将数据发送给服务器,常用于提交表单。

2.HTTPS协议
HTTPS协议是基于安全套接字的超文本传输协议,端口为443,也是应用层协议。
HTTPS协议=HTTP协议+SSL协议。
HTTP协议相比可以解决信任主机问题和数据安全问题。而这两点都是靠SSL协议完成的,下边会对SSL协议进行详解。在说SSL协议之前得普及一个已经普及了但是容易忘记的东西,加密。

3.对称加密和非对称加密

对称加密算法:加解密的秘钥是一样的,优点是算法公开计算量小,加密速度快,加密效率高。缺点是安全性不高,每对用户都需要唯一的秘钥,秘钥管理负担大,广泛使用的对称加密算法有:DES,IDEA,AES.

非对称加密算法:加解密秘钥不一样,公钥可以公开,私钥自己保留,优点是安全性高,可以用来做认证,和其他用户交流自己只用一套公钥和私钥,秘钥管理简单。缺点是加密花费时间长,速度慢,广泛使用的非对称加密算法有:RSA,DES。

Hash算法(摘要算法)常用在不可还原的密码存储,信息完整性校验,常用的hash算法有MD2,MD4,MD5,SHA


4.SSL协议

SSL协议可以实现加密和认证,过程大致如下所示:(可以实现客户端和服务端双向认证,但是这里只认证服务端

  • 客户端发送连接请求。
  • 服务端发送自己的数字证书和公钥给客户端。
  • 客户端通过数字证书验证服务端的身份,并生成一个对称加密的秘钥,并且使用服务端的公钥去加密这个对称秘钥发送给服务方。
  • 服务方用自己的私钥解密,得到那个对称秘钥,并使用该秘钥去加密明文得到密文发送给客户端。
  • 客户端使用对称秘钥解密该密文,并且加密其他数据发送给服务端。。。。。。

5.HTTP协议和HTTPS协议的区别

首先是端口号不一样一个是80一个是443,http://和https://的区别,HTTPS用到数字证书需要钱。。。,HTTP简单快速,HTTPS复杂但是安全,HTTP和HTTP+SSL的区别,一个传输明文且无法认证,一个传输密文并且可以认证。


6.附加赠送数字签名

这里说的是对签名内容有保密机制的数字签名。

发送方(一个加密签名内容的对称秘钥,接收方的公钥,自己的私钥):

  1. 使用对称秘钥对签名内容加密得到密文。
  2. 使用接收方的公钥加密对称秘钥,并将它附在1中得到的密文中。
  3. 使用hash算法得到2中密文的报文摘要,再用自己的私钥加密该摘要形成数字签名。
  4. 把2和3中得到的密文通过网络发送给接收方。
接收方(自己的私钥,发送方的公钥)

  1. 使用发送方的公钥对数字签名解密得到一个报文摘要。
  2. 使用相同的摘要算法,从接收到的报文密文中计算出一个报文摘要。
  3. 如果两个摘要一致的话说明密文没有被篡改,发送方的签名匹配。
  4. 使用自己的私钥解密出对称秘钥。
  5. 使用对称秘钥解密出签名内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值