HTTP协议:
HTTP(超文本传输协议),是应用层协议,并且是无状态协议,常基于TCP/IP协议传输数据。协议本身并不会保存用户的任何信息,每次请求都是独立的,独立的请求可以减小服务器的压力,支持更大的并发需求。
RTT:请求往返时间,从客户端发送请求开始到服务器端接收到信息所经历的时间就是一个RTT,
-
HTTP/1.0
缺点:非持续性连接(短连接),每次请求都需要2个RTT的开销(每次都是三次握手)。 服务器负担很重,但是浏览器可以同时多个并行的TCP连接,每个连接处理一个请求, 这样可以缩短响应时间
-
HTTP/1.1
1、持续性连接(长连接),发送请求之后一段时间里获得持续连接,之后的请求可以通 过该链接持续发送,并且不局限于同一页面,只要是对同一服务器请求即可。 2、1.1默认流水线(管道)方式:在收到响应报文之前,可以持续发送请求报文, 这样所有的请求只用一个RTT。 3、非流水线方式:是有收到前一个报文的响应报文才会发送下一个请求报文, 这样每个请求都要用一个RTT。 4、POST不支持流水线,如刷新页面就会被提示重定向。GET支持流水线方式。
HTTPS协议
HTTPS是以安全为目标的HTTP通道,即HTTP下加入SSL层,HTTPSDE安全基础是SSL。
- 使用443端口
- SSL套接在应用层HTTP和运输层之间,SSL接收到应用层数据加密后传递给TCP,接收方便可以从TCP中读取以及解密再提交给服务器。
- HTTPS采用对称加密和非对称加密混合加密方式。
1、客户端向服务器端发起SSL连接请求/1
2、服务器把公钥发送给客户端,并且服务器端保存着唯一的私钥(存在隐患,可以使用数字证书解决)
3、客户端用公钥对双方通信的对称秘钥进行加密,并发送给服务器
4、服务器利用自己唯一的私钥对客户端发来的对称秘钥进行解密
5、进行数据传输,服务器和客户端双方用公有的相同的对称秘钥对数据进行加密解密,可以保证在数据收发过程中的安全,即是第三方获得数据包,也无法对其进行加密,解密和篡改。
两者的区别:
1、HTTPS协议需要到ca申请证书,一般免费证书很少,需要交费。
2、HTTP是超文本传输协议,信息是明文传输,HTTPS则是具有安全性的ssl加密传输协议。
3、HTTP和HTTPS使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。
4、HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议, 要比http协议安全。
网友评论