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