http1.0,http1.1的区别
长连接
HTTP 1.0需要使用keep-alive参数来告知服务器端要建立一个长连接,而HTTP1.1默认支持长连接。 HTTP 是基于TCP/IP协议的,创建一个TCP连接是需要经过三次握手的,有一定的开销,如果每次通讯都要重新建立连接的话,对性能有影响。因此最好能维持一个长连接,可以用个长连接来发多个请求。
HTTP 1.1支持只发送header信息(不带任何body信息),如果服务器认为客户端有权限请求服务器,则返回100,否则返回401。客户端如果接受到100,才开始把请求body发送到服务器。另外HTTP1.1还支持传送内容的一部分,这是断点续传的基础。
HOST域
现在可以web server例如tomat,设置虚拟站点是非常常见的,也即是说,web server上的多个虚拟站点可以共享同一个ip和端口。
HTTP1.0是没有host域的,HTTP1.1才支持这个参数。
http1.1,http2.0的区别
多路复用
HTTP2.0使用了多路复用的技术,做到同一个连接并发处理多个请求,而且并发请求的数量比HTTP1.1大了好几个数量级(http1.1可以通过建立多个tcp连接来实现并发,但是维护连接会消耗资源)。
数据压缩
HTTP2.0通过HPACK算法对header的数据进行压缩,加速传输。
http,https的区别
- https协议需要到ca申请证书。
- http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
- http和https使用的是完全不同的连接方式,前者是80,后者是443。
- http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
https传输过程
- 客户端发起HTTPS请求
- 服务端发送证书给客户端(公钥)
- 客户端解析并验证证书(公钥,颁发机构,过期时间等等)
- 客户端发送经过加密的私钥(将自己用于加密的字符串通过公钥加密后发送给服务端)
- 服务端解密经过加密的私钥(服务端通过证书的私钥解析出客户端传递过来的字符串)
- 服务端加密信息(服务端使用客户端的私钥(客户端自己的字符串)加密所有发送给客户端的数据)
- 客户端使用私钥解析服务端发送来的数据(所有发送数据均用此密钥加密后传输)
对称加密: 加密和解密都是使用同一个密钥
非对称加密:非对称加密使用公钥加密,而解密则需要使用私钥
可逆加密:可以解密的
不可逆加密:也叫单向加密,不能解密的算法如md5