http是超文本传输协议,信息是明文传输,https 则等于HTTP+加密+认证+完整性保护,其中,加密采用SSL(Secure Socket Layer),认证是指https需要到ca申请证书。
http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。
http的连接很简单,是无状态的。
HTTP属于应用层协议,具体的网络架构图如下:
OSI 模型 | ||||
数据单元 | 层 | 功能 | ||
主机层 | 7. 应用层 | 网络进程到应用程序。针对特定应用规定各层协议、时序、表示等,进行封装 。在端系统中用软件来实现,如HTTP等 | ||
6. 表示层 | 数据表示形式,加密和解密,把机器相关的数据转换成独立于机器的数据。规定数据的格式化表示 ,数据格式的转换等 | |||
5. 会话层 | 主机间通讯,管理应用程序之间的会话。规定通信时序 ;数据交换的定界、同步,创建检查点等 | |||
4. 传输层 | 在网络的各个节点之间可靠地分发数据包。所有传输遗留问题;复用;流量;可靠 | |||
媒介层 | 3. 网络层 | 在网络的各个节点之间进行地址分配、路由和(不一定可靠的)分发报文。路由( IP寻址);拥塞控制。 | ||
2. 数据链路层 | 一个可靠的点对点数据直链。检错与纠错(CRC码);多路访问;寻址 | |||
1. 物理层 | 一个(不一定可靠的)点对点数据直链。定义机械特性;电气特性;功能特性;过程特性 |
对SSL加密方式的理解:
SSL采用一种叫做公开密钥加密(Public-key cryptography)的加密方式。加密和解密同用一个密钥的方式称为共享密钥加密, 也被叫做对称密钥加密,公开密钥加密使用两把密钥. 一把是私有密钥, 另一把是公开密钥。在使用公开密钥加密的过程如下:发送密文的一方使用对方的公开密钥进行加密处理,对方收到被加密的信息后,在使用自己的私有密钥进行解密。利用这种方式, 不需要私有密钥, 也不用担心密钥被攻击者窃听而盗走。由于要验证公开密钥是否被篡改,引入了证书的概念:
基本流程为:
- 1.服务器把自己的公开密钥登录至数字证书认证机构
- 2.数字证书认证机构用自己的私有密钥向服务器的公开密钥署数字签名并颁发公钥证书
- 3.客户端拿到服务器的公钥证书后, 使用数字证书认证机构的公开密钥, 向数字证书认证机构验证公钥证书上的数字签名, 以确认服务器的公开密钥的真实性
- 4.使用服务器的公开密钥对报文加密后发送
- 5.服务器用私有密钥对报文解密
http://www.jianshu.com/p/37654eb66b58
http://www.cnblogs.com/bluestorm/p/5763533.html
http://www.cnblogs.com/maybe2030/p/4781555.html