你有没有注意到在你的浏览器中,URL的开头有 "HTTP "或 "HTTPS"?那么,什么是HTTP,什么是HTTPS?它们有什么不同?
为了理解它们之间的区别,我们需要对这两个术语的含义进行解读,并了解它们各自的工作原理。
什么是HTTP?
HTTP是指超文本 传输 协议,是万维网的基础。没有它,网络就不会是今天的样子。
一个HTTP网址以http:// 开始,默认有一个80号端口。
名称中的超文本部分意味着涉及到文档或文件。这些文件可以包含文本、图像、图形、视频或任何其他媒体。
此外,它们可能包含其他文档或文件的链接,用于交叉参考,在用鼠标或触摸板点击链接或在手机屏幕上触摸后,你可以很容易地访问这些链接。
名称中的传输部分意味着文件可以通过万维网从一个联网设备移动到另一个。
协议部分意味着它由一套计算机规则组成,管理设备如何能够使用互联网。它还告诉它们,当与许多其他设备远距离连接时,它们如何使用互联网作为通信媒介。
HTTP是建立在TCP/IP网络协议套件和协议栈中的其他层之上的。
TCP/IP是一套标准的规则,允许浏览器和服务器在互联网上进行通信。毕竟,万维网是关于浏览器和服务器之间的通信。
具体来说,HTTP是一个应用层协议,是用于网络客户端和网络服务器之间通信和数据传输的主要协议。
简而言之,HTTP是一套规则和标准,用于在网络上传输超文本文件和各种信息。它是浏览器和服务器通信的方式。
一个典型的HTTP请求和响应流程
当浏览器想要连接到网站时,就会用到HTTP。
它们通过发送HTTP请求和接收HTTP响应进行通信。这被称为客户端计算机-网络服务器计算模型中的请求-响应周期:

客户端,通常是一个网络浏览器,如谷歌浏览器、Mozilla Firefox或苹果Safari,提出请求。它通过在浏览器顶部的地址栏中输入一个人性化的URL(统一资源定位器),如freecodecamp.org 。
该域名freecodecamp.org ,在域名系统(DNS)的帮助下被映射到一个IP地址。
然后,网络浏览器连接到服务器,并发出HTTP请求,询问它需要接收的信息,以加载一个网页。
一个HTTP请求可能看起来像这样:
GET / HTTP/1.1
Host: www.freecodecamp.org
它由以下部分组成:
- 一个HTTP方法,通常被称为HTTP动词,如
GET。这个特定的动词是用来获取信息的。另一个常见的动词是POST,当客户在一个表格中提交数据时使用。动词指定了浏览器期望从服务器得到的行动。 - 路径,在我们的例子中是
/,即根路径。服务器存储了组成网站的所有文件,所以请求需要指定浏览器要求加载的部分。 - HTTP类型和它的版本。
- URL的域名。
然后,网络服务器接收请求,并通过寻找请求的数据来处理它。
服务器是一种不同于我们日常使用的计算机。它的唯一目的是存储数据和文件,并在请求时检索和分发它们。
服务器返回一个信息,即HTTP响应,回到浏览器。
响应的一个例子是:HTTP/1.1 200 OK
- 它首先以协议和版本开始
HTTP/1.1 - 接下来是HTTP状态代码,一个3位数的数字,在本例中是
200。它表示HTTP请求是否已经完成。以2开始的状态代码表示成功,并表示请求已成功完成。以4开始的状态码,如404,表示客户端出错(例如在URL中打错字),因此该页面没有在浏览器中显示。以5开头的状态代码意味着服务器端出错,同样,该页面不会在浏览器中显示。 - 接下来是状态文本,可供人类阅读的文本,概括了状态代码的含义。在这种情况下,它是 "OK",意味着成功检索到了所请求的文件。
一个HTTP响应还包括头信息,看起来像这样:
date: Thu, 12 Aug 2021 12:07:16 GMT
server: cloudflare
content-type: text/html; charset=utf-8
头信息包括关于发回的内容类型的重要信息,如语言、格式和响应的发送时间。
最后,对 "GET "请求的响应包括可选的HTTP正文。这包括请求的信息,如构成网站的HTML/CSS/JavaScript文件。
然后,浏览器收到响应,渲染页面,并关闭连接。
每次需要在页面上加载新的元素(如不同的风格或图像或视频)时,它将启动一个新的连接,整个过程再次重复。
HTTP的局限性
HTTP因其简单性而速度快,但它在数据交换时不提供安全性。这是因为所有的数据都是以纯文本形式传输的,根本没有任何东西是加密的。
在传输过程中,超文本数据被分解成 "数据包",任何在浏览器和服务器之间拥有合适的工具、技能和知识的人都可以轻易查看和窃取正在传输的信息。
这意味着用户名、密码和敏感信息有可能被攻击者获取,同时,注入病毒的风险也很高。
这意味着,HTTP不是一个安全或私密的媒介,导致用户感到不安全。
对于某些网站,如博客,HTTP是安全的,但你不应该通过HTTP连接提交任何信用卡或其他个人信息。
什么是HTTPS?
HTTPS是指超文本 传输 协议 安全。
HTTPS网址以https:// 开始,默认使用端口号443。
它不是一个独立于HTTP的协议,但它是它的更安全和保密的版本。它是在浏览器和服务器之间传输数据的最安全方式。
现在大多数网站都使用HTTPS而不是HTTP。因此,在提交任何敏感信息,如登录你的银行账户和进行金融交易之前,一定要确保该网站使用HTTPS。
你可以通过地址栏左侧的锁图标来判断一个网站是否安全,是否有HTTPS连接:


与HTTP在应用层工作不同,HTTPS在传输层工作。
HTTPS是如何工作的?
通过HTTPS连接发送的每个数据包都是加密和安全的,使用加密协议,如TLS或SSL,在HTTP之上。
传输层安全(TLS),以前被称为安全套接字层(SSL),是用于加密通信的协议。它是SSL的较新和较安全的版本。
TLS提供了针对攻击的安全性,其三个主要目标是认证、隐私和整体安全。
TLS通过使用非对称密钥算法,即公钥基础设施(PKI)来保证通信安全。这个系统使用两个唯一相关的密钥来加密和解密敏感信息,实现互联网上的安全通信。
这两个密钥被结合使用,通过这种方式,TLS在发送方和接收方之间建立了一个联系。它确保双方的身份得到确认,并且确实是他们所说的人。
首先,你有公钥。它是可以公开查看的,可以与每个人和任何想与网站互动的人分享。
这把钥匙用于将明文变成密码文本,对数据进行加密,并作为一把锁来加密数据。它还可以确认私钥的所有者。向浏览器分发公钥是通过证书进行的。
然后,每个公钥都有一个独特的私钥,它们作为一对工作。你用这个密钥来解密信息。用公钥加密的数据只能由相应的唯一私钥解密。
正是这个独特的私钥打开了锁,并解密了数据。私钥也证实了信息是你的。这把钥匙是私有的,被储存起来,只有它的主人才能使用。
在任何实际数据传输之前,会建立一个安全连接并交换证书。
客户端键入他们想要访问的网页的URL。网页的服务器发送包含公钥的TLS或SSL证书,以开始连接。客户端和服务器经过大量的来回操作(称为TLS/SSL握手),直到他们建立一个安全会话。
总结
在这篇文章中,我们了解了什么是HTTPS,它是如何工作的,以及它与HTTP有什么不同(而且更安全)。
简而言之,HTTPS是HTTP的安全版本,是通过网络发送超文本的基本网络协议。
在HTTPS中,有额外的安全步骤,如TSL/SSL证书和TSL/SSL握手。
它为用户和数据提供了认证,确保交易的私密性(数据的完整性是优先考虑的),而不必担心在客户-服务器通信期间出现数据泄露。
信息和交易的内容只能由发送者和预期的接收者查看。
谢谢你的阅读!