【计算机基础篇】HTTP和HTTPS的区别

283 阅读4分钟

首先来看看HTTP和HTTPS分别是什么?

image.png

HTTP

HTTP的特点

1、灵活可拓展

报文里面没有做严格的语法语义限制,开发者可以根据自己的需求拓展。

2、可靠传输

因为HTTP是基于TCP的,TCP是可靠传输协议,所以HTTP也是可靠传输。

3、“请求-应答”模式

HTTP的传输数据是“请求-应答”模式。

4、无状态

HTTP是无状态的。

HTTP如何传输大文件

1、数据压缩

使用Accept-Encoding字段可以协商数据压缩。

2、分块传输

当我们需要分块传输的时候,只需要在请求头加上Transfer-Encoding: chunked。

3、范围请求

也可以使用范围请求Accept-Ranges: bytes。

HTTP连接管理

HTTP有短连接长连接两种,如果需要长连接,在请求头上加上Connection: keep-alive,就可以保持长连接。

HTTP性能优化

1、并发连接

为了缓解队头阻塞这些问题,HTTP支持并发连接,可以同时对一个域名发起多个长连接。

2、域名分片

HTTP的Cookie机制

1、Cookie的工作过程

服务器发送响应头字段Set-Cookie携带cookie给浏览器,然后浏览器储存cookie,请求服务器时将cookie放在请求头字段。

2、Cookie的属性

(1)设置Cookie的生存周期(有效期) 浏览器会有限采用Max-Age来计算失效时间。Max-Age就是相对时间,浏览器用收到报文的时间点加上Max-Age就会得到失效的绝对是件。

(2)设置Cookie的作用域 Domain:Cookie所属的域名

Path:Cookie所属的路径

3、Cookie的安全性

HttpOnly:该Cookie只能通过浏览器HTTP协议传输,禁止其他访问。

SameSite:防范“跨站请求伪造”(XSRF)攻击。

Secure:表示仅能用HTTPS协议加密传输。

HTTPS

HTTPS的特点

HTTPS最为突出的特点就是它是基于SSL/TLS的。

1、使用了对称加密和非对称加密:

(1)对称加密:加密和解密都使用同一个密钥,常用的TLS对称加密算法:AEC和CHACHA20

(2)非对称加密:也叫公钥加密算法,即是用公钥加密,私钥解密。常用的非对称算法:RSA,ECC,DH,DSA

2、需要数字签名和证书:

(1)数字签名:即是跟非对称加密类似,只不过这里是使用私钥加密,公钥来解密。

(2)数字证书:比较权威的机构是CA(证书认证机构),数字证书也标志通讯各方身份的一个数字认证。

3、基于TLS

(1)首先是TLS1.2,使用了TLS握手机制

(2)TLS1.3,它跟TLS1.2相比,最大化了兼容性,也强化了安全性,提升了性能。

HTTPS的优化

1、硬件优化

(1)选择更快的CPU

(2)选择SSL加速卡

(3)选择SSL加速服务器

2、软件优化

(1)软件升级

(2)协议优化

3、证书优化

(1)证书传输

(2)证书验证

4、会话复用

5、预共享密钥

HTTPS和HTTP的主要区别

1、https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。

2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

HTTP2(更安全的HTTP,更快的HTTPS)

可以从图中看懂,HTTP其实也是基于TLS的,只不过多了个头部压缩HPACK算法。我们来看一下HTTP2的算法:

1、兼容HTTP1

2、头部压缩

TLS连接成功之后,会用HPACK算法来压缩头部数据

3、二进制帧

头部压缩之后,HTTP/2就要把报文拆成二进制的帧来发送

4、虚拟的流

5、强化安全

6、多路复用

HTTP3

HTTP3.0又称为HTTP Over QUIC,其弃用TCP协议,改为使用基于UDP协议的QUIC协议来实现。

1、QUIC协议

QUIC协议其实就是就是基于UDP的协议。

2、解决了队头阻塞

因为将TCP抽掉,换成了UDP,而UDP是无序的,包之间没有依赖关系,所以从根本上解决了“队头阻塞”问题。