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 有何区别?如何灵活使用?
阅读全文
1 0
- https与http
- https与http切换
- HTTPS与HTTP区别
- Http与https区别
- HTTP与HTTPS区别
- HTTP与HTTPS区别
- http与https区别
- HTTP与HTTPS
- HTTP与HTTPS
- http与https请求
- HTTP与HTTPS SSL
- HTTP与HTTPS
- HTTP与HTTPS详解
- http与https
- http与https
- iOS9 http与https
- http与HTTPS
- HTTP与HTTPS比较
- c++如何防止一个类被其他类继承
- Python——自定义函数
- Python——随机函数(random)
- D
- 【有源汇上下界最大流】ZOJ3229[Shoot the Bullet]题解
- HTTP与HTTPS
- 机器学习算法(六)K-Means聚类、层次聚类、密度聚类、谱聚类
- Django使用自己的用户系统
- 欢迎使用CSDN-markdown编辑器
- MySQL变量的使用
- mac下安装hbase
- Java基础知识5
- 会话管理
- 内核里面writel(readl)是如何实现的