端口:HTTP 的 URL 由 http://
起始,且默认端口为 80;而 HTTPS 的 URL 由 https://
起始,默认使用端口 443;
安全性和资源消耗:HTTP 协议直接运行在 TCP 之上,所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份。HTTPS 是运行在 SSL/TLS 之上的 HTTP 协议,SSL/TLS 又运行在 TCP 之上,所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥由服务器方的证书进行了非对称加密。所以说,HTTP 安全性没有 HTTPS 高,但是 HTTPS 比 HTTP 耗费更多服务器资源。
对称加密:密钥只有一个,加密解密为同一个密码,且加解密速度快,典型的对称加密算法有 DES、AES 等;
非对称加密:密钥成对出现(且根据公钥无法推知私钥,根据私钥也无法推知公钥),加密解密使用不同密钥(公钥加密需要私钥解密,私钥加密需要公钥解密),对比对称加密,速度较慢,典型的非对称加密算法有 RSA、DSA 等。
在 HTTP/1.0 中默认使用短连接,也就是说,客户端和服务器每进行一次 HTTP 操作,就建立一次连接,任务结束就中断连接;
而从 HTTP/1.1 起,默认使用长连接,用以保持连接特性,使用长连接的 HTTP 协议,会在响应头加入这行代码:
Connection: keep-alive
在使用长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输 HTTP 数据的 TCP 连接不会关闭,客户端再次访问这个服务器时,会继续使用这条已建立的连接,Keep-Alive 不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如 Apache、Nginx)中设定这个时间,实现长连接需要客户端和服务端都配置支持;
HTTP 协议的长连接和短连接,实质上是 TCP 协议的长连接和短连接。