SSL协议:
为网络通信提供安全及数据完整性的一种协议。
SSL协议建立在可靠的传输协议(如TCP)之上,在TCP连接后,实际数据传输之前,通讯双方通过身份认证以及加密传输实现整体的安全传输。
采用了对称加密和非对称加密的混合加密方式完成。
对称加密:加密和解密用同一种密钥(密钥交换容易被监听)
非对称加密:加密使用一对非对称的密钥(私有密钥,共有密钥)
对称密钥vs非对称密钥
对称密钥解密速度快,失去加密意义;非对称密钥不容易破解,更安全,解密速度效率低;
混合加密机制:采用非对称加密过程保护对称密钥的加密。然后采用对称密钥进行加密通信。
安全传输的过程
1.服务器通过非对称加密算法生成一对密钥(公钥和私钥),拿着公钥去权威机构生成CA证书,证书中包含自己的机构信息以及权威机构信息,以及证书有效期,以及公钥信息等。
2.在tcp连接之后,服务器首先将自己在权威机构颁发的证书发送给客户端。
3.客户端收到证书后,解析得到机构信息以及公钥信息,然后去自己的信任的权威机构对当前服务器进行身份认证,通过则通信继续,否则可以选择中断通信或者忽略检测。
4.拿着证书中的公钥加密自己要发送给服务端的数据,数据中包含自己支持的对称加密算法列表以及一个随机数。
5.服务端收到客户端的公钥加密数据后,使用自己的私钥进行加密,得到对方的对称算法列表和随机数,然后给客户端也回复一个随机数。
6.双方通过自己与对方的随机数以及算法列表计算最终得到一个对称加密算法进行加密实际的数据传输。
http和https的区别
1.http用于web浏览器和网站服务器之间传递信息,以明文方式发送内容,不提供任何方式的数据加密。
https则是具有安全性的SSL加密传输协议,更具有安全性。
2.https协议需要CA证书,一般免费的证书较少,则需要一定的费用。
3.http和https使用的是完全不同的连接方式,http端口号是80,https端口号是443.
4.http的连接很简单是无状态的,https协议是由SSL+http构造的可进行加密传输身份认证的网络协议,比http协议更安全。
https的优点:
1.使用密钥加密,安全性高。
2.认证用户和服务器,确保数据发送到正确的用户和浏览器
https的缺点:
1.https握手阶段延时较高,需要SSL加密。
2.部署成本高:需要购买证书来验证自身安全性;需要进行加解密的计算,占用CPU资源较多,服务器配置或数目高。
http状态码
1xx:指示信息–表示请求已经接收,继续处理;
2xx: 成功–表示请求已经被成功接收,理解和接收;
200 OK:客户端请求成功
3xx: 重定向–要完成请求必须进行更近一步操作
300: 可选重定向
301: 永久重定向
302:临时重定向
303: 表示请求的资源已经分配了新的URL,应使用Get方式发放定向获取资源
304:如果客户端发送一个待条件的GET请求,并且该请求以经允许,而文档内容未改变,返回304,该响应不包含实体
4xx: 客户端错误–请求资源有语法错误或者请求无法实现
400: 请求报文中有存在语法错误
401:未经许可,需要HTTP认证
403:服务器拒绝访问(访问权限有问题)
404:Not Found服务器上无法找到请求的资源
5xx:服务器错误
500: 表示服务器在执行请求时发生错误,也可能是web应用存在的bug或某些临时错误
501:表示服务器暂时处于超负载或正在进行运行停机维护,无法处理请求