HTTP与HTTPS

来源:互联网 发布:淘宝一星店能刷几单? 编辑:程序博客网 时间:2024/06/02 04:11

HTTP与HTTPS


HTTP(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。

主要特点:

  • 支持客户/服务器模式。
  • 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
  • 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
  • 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
  • 无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

HTTPS(安全超文本传输协议)是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版。就是发送/接收时对信息进行了加密/解密处理。

主要特点:

  • https协议需要到ca申请证书。
  • 信任主机的问题.
  • 服务端和客户端之间的所有通讯,都是加密的.
  • 耗时

HTTPS数据交互过程

  • 客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。

  • Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。

  • 客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。

  • 客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。

    • Web服务器利用自己的私钥解密出会话密钥。

    • Web服务器利用会话密钥加密与客户端之间的通信。


其原理就是SRA加解密的过程:

先生成一对RSA 密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册。为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。这就使加密的计算量很大。为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式,即信息采用改进的DES或IDEA对话密钥加密,然后使用RSA密钥加密对话密钥和信息摘要。对方收到信息后,用不同的密钥解密并可核对信息摘要。


在客户机发送https请求时 web服务器会返回证书(公钥)。然后客户机产生随机对称密钥,然后通过证书公钥加密对称密钥返回给服务器。由于证书公钥只有对应密钥才能解开从而获取到对称的密钥。再通过这个对称密钥加密数据进行HTTP数据交互。大程度保证每次的请求安全。


由于这样在传统的HTTP上增加SSL验证,所以每次请求都相对较慢。


另外 这篇做补充:

http 和 https 有何区别?如何灵活使用?