精选问答:Http 和 Https

什么是 HTTP

HTTP 是明文传输,HTTPS 是加密的。

HTTP 协议是什么?

HTTP 协议是超文本传输协议的缩写,英文是 Hyper Text Transfer Protocol。它是从 WEB 服务器传输超文本标记语言 (HTML) 到本地浏览器的传送协议,设计 HTTP 协议最初的目的是为了提供一种发布和接收HTML页面的方法,目前 HTTP 协议有多个版本,但现在广泛使用的是 HTTP/1.1 版本。

HTTP 原理

HTTP是一个基于TCP/IP通信协议来传递数据的协议,传输的数据类型为 HTML 文件、图片、视频、多媒体和查询结果等等。

HTTP协议一般用于 B/S 架构(意为:浏览器/服务器架构)。浏览器作为 HTTP 客户端(Client)通过 URL(网址,学名统一资源定位符)向 HTTP 服务端(server)即 WEB 服务器发送所有请求。

因此,http 的访问就是普通明文传输,数据在传输过程中,是不加密的。默认使用的服务器端口为80端口。

什么是 HTTPS

HTTPS 协议(HyperText Transfer Protocol over Secure Socket Layer)一般理解为 HTTP+SSL/TLS,是通过权威机构颁发的 SSL 证书来验证服务器的身份,并为浏览器和服务器之间的通信进行加密。因为是加密传输,因此数据在传输过程中更为安全。

SSL 是什么?

SSL(Secure Socket Layer,安全套接字层):1994年为 Netscape(网景公司)所研发,SSL 协议位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。

TLS(Transport Layer Security,传输层安全):其前身是 SSL,它最初的几个版本(SSL 1.0、SSL 2.0、SSL 3.0)由网景公司开发,1999年从 3.1 开始被 IETF 标准化并改名,发展至今已经有 TLS 1.0、TLS 1.1、TLS 1.2 三个版本。SSL3.0 和 TLS1.0 由于存在安全漏洞,已经很少被使用到。且由于 TLS 1.3 改动比较大,故目前还在草案阶段,因此目前使用最广泛的是 TLS 1.1 和 TLS 1.2。

更加安全

因为 Https 是加密传输,所以数据在传输过程中更为安全。默认使用的服务器端口为443。因为在 http 协议基础上增加了安全证书即 SSL 证书,通过传输加密和身份识别保证了传输过程的安全性,在地址栏会显示一个安全的小绿锁,让访问者更加信任该网站,同时视觉上也更舒服。

Https 必须是网站管理员部署了ssl 证书才能开启的,而 SSL 有免费的也有付费的。SSL 证书一般有 3 份,其中下面 1-3 是基于 Apache 服务器的 SSL 证书,.pem 为 Nginx 服务器的 SSL 证书。

  • .key 文件:密钥文件,SSL证书的私钥就包含在其中;
  • .csr 文件:这个文件里面包含着证书的公钥和其他一些公司信息,通过请求签名之后就可以直接生出证书;
  • .crt 文件:该文件中也包含了证书的公钥、签名信息以及根据不同类型证书携带不同的认证信息,如IP等(该文件在有些机构、系统中也可能表现为.cert后缀);
  • .pem 文件:用于 NGINX 服务器的 SSL 证书。该文件相对比较少见,里面包含着证书的私钥以及部分证书信息。

因为 Http 是普通的超文本传输协议,所以若一个网站没有使用 ssl,地址栏左边就会明显提示《不安全》

所以说没有开启 https 的网站都是不重视网站建设,网站所有者实力不行,安全意识太差的体现。

HTTPS 的小缺点

  1. 因为 HTTPS 协议多次握手,导致了页面的加载时间延长近50%。
  2. HTTPS 连接缓存不如 HTTP 协议的高效,会增加数据开销和功耗。
  3. 申请 SSL 证书需要花钱,功能越强大(例如:通配符证书)的证书费用越高。
  4. SSL 涉及到的安全算法会消耗 CPU 资源,对服务器资源消耗比较大。
默认图片
Marugu Fuyeor
欢迎来到复网 - 教程与解决方案 - Marugu Fuyeor
文章: 95

留下评论