一、HTTP和HTTPS
HTTP协议通常承载于TCP协议之上,在HTTP和TCP之间添加一个安全协议层(SSL或TSL),这个时候,就成了我们常说的HTTPS。HTTP是超文本传输协议,信息是明文传输,而HTTPS是具有安全性的ssl加密传输协议。
1、默认HTTP的端口号为80,HTTPS的端口号为443。
2、为什么HTTPS安全?
因为网络请求需要中间有很多的服务器路由器的转发,中间的节点都可能篡改信息,而如果使用HTTPS,密钥在你和终点站才有。HTTPS之所以比HTTP安全,是因为他利用SSL/TSL协议传输。它包含证书,卸载,流量转发,负载均衡,页面适配,浏览器适配,refer传递等,保障了传输过程的安全性。
HTTPS能够加密信息,以阻止敏感信息被第三方获取,很多银行网站或电子邮箱等安全级别较高的服务都会采用HTTPS协议。
采用HTTPS协议的服务器必须要有一套数字证书(一对公钥和私钥),可以自己制作,也可以向组织申请,区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面。
二、资源访问
1、https页面访问http资源
网站的域名是https协议,那么该网站下的图片,css,js,都必须是https协议,不能是http协议。下面提供4种解决方案。
A、更改资源
把资源都放到https域名下,这样https页面访问https的资源。
B、相对路径
<link rel="stylesheet" href="//url/xxx.css" type="text/css"> <script type="text/javascript" src="//url/xxx.js"></script> .logo { background: url(//baidu.com/logo.png); }
C、iframe方式
用iframe把http的资源嵌入https页面。
D、ajax请求
2、http页面访问https资源
网站的域名是http协议,那么该网站下的资源域名可以是http,也可以是https。
三、HTTP2.0
HTTP2.0可以说是SPDY的升级版,HTTP2.0支持明文HTTP传输,而SPDY强制使用HTTPS;HTTP2.0消息头的压缩算法采用HPACK,而SPDY采用的DEFLATE。
HTTP - HTTPS - SPDY - HTTP2.0,一路进化,下面介绍HTTP2.0的新特性。
1、采用二进制格式传输数据,而非http1.1的文本格式,二进制格式在协议的解析和优化扩展上带来更多的优势和可能;
2、对消息头采用HPACK进行压缩传输,能够节省消息头占用的网络的流量,而http1.1 每次请求,都会携带大量冗余头信息,浪费了很多带宽资源;
3、多路复用,就是多个请求都是通过一个TCP连接并发完成,http1.1虽然通过pipeline也能并发请求,但是多个请求之间的响应会被阻塞的,所以pipeline至今也没有被普及应用,而http2.0做到了真正的并发请求,同时还支持优先级和流量控制。
4、服务端能够更快的把资源推送给客户端,例如服务端可以主动把JS和CSS文件推送给客户端,而不需要客户端解析HTML再发送请求,当客户端需要的时候,它已经存在。