Skip to content

HTTP|HTTPS 简介

HTTP(超文本传输协议,Hypertext Transfer Protocol)是一种用于从网络传输超文本到本地浏览器的传输协议。它定义了客户端与服务器之间请求和响应的格式。HTTP 工作在 TCP/IP 模型之上,通常使用端口 80

HTTPS(超文本传输安全协议,Hypertext Transfer Protocol Secure)是 HTTP 的安全版本,它在 HTTP 下增加了 SSL/TLS 协议,提供了数据加密、完整性校验和身份验证。HTTPS 通常使用端口 443

HTTP 工作原理

HTTP 协议工作于客户端-服务端架构上。

HTTP 工作过程通常如下:

  1. 客户端发起请求:用户通过客户端(如浏览器)输入 URL,客户端向服务器发起一个 HTTP 请求。
  2. 服务器处理请求:服务器接收到请求后,根据请求的类型(如GET、POST等)和请求的资源,进行相应的处理。
  3. 服务器返回响应:服务器将处理结果包装成HTTP响应消息,发送回客户端。
  4. 客户端渲染页面:客户端接收到响应后,根据响应内容(如HTML、图片等)渲染页面,展示给用户。

Web 服务器有:Nginx 服务器,Apache 服务器,IIS 服务器(Internet Information Services)等。

注意事项

  • HTTP 的无连接特性

    当我们说HTTP是“无连接”的,我们实际上是指:

    1. 每次请求独立:每个HTTP请求都是独立的,不依赖于之前的请求或之后的请求。每个请求都会触发一个新的TCP连接(在HTTP/1.0中通常是这样,但在HTTP/1.1和更高版本中,可以通过持久连接来复用同一个TCP连接发送多个请求和响应)。
    2. 连接短暂:在HTTP/1.0中,服务器在发送完响应后就会关闭TCP连接。这意味着每个请求都需要一个新的连接建立过程,这增加了延迟。然而,在HTTP/1.1及更高版本中,引入了持久连接来减少这种延迟。

    因此,当我们说HTTP是“无连接”的时,我们实际上是在描述HTTP/1.0的行为或强调HTTP请求之间的独立性。然而,在现代Web应用中,我们更可能使用的是HTTP/1.1HTTP/2,这些版本都支持持久连接和多路复用,从而提高了性能和效率。

  • HTTP 的媒体独立特性

    媒体独立特性是指HTTP协议能够传输任何类型的数据,只要客户端和服务器知道如何处理这些数据内容。

    具体来说,HTTP的媒体独立特性体现在以下几个方面:

    1. 数据类型多样HTTP协议不限制传输的数据类型。无论是文本、图像、音频、视频还是其他任何类型的数据,只要客户端和服务器能够识别并处理这些数据,都可以通过HTTP进行传输。
    2. Content-Type标记: 为了确保客户端和服务器能够正确识别和处理传输的数据,HTTP协议使用Content-Type头部字段来标记数据的媒体类型(MIME类型)。例如,text/html表示HTML文档,image/jpeg表示JPEG图像,等等。这使得客户端能够根据Content-Type来解析和处理接收到的数据。
    3. 客户端和服务器处理: 客户端和服务器需要知道如何处理特定类型的数据。这通常涉及到数据的解码、解析和呈现等步骤。例如,当客户端接收到一个Content-Typeimage/jpeg的响应时,它会知道这是一个JPEG图像,并相应地将其解码并显示在屏幕上。
    4. 灵活性HTTP的媒体独立特性使得它能够适应不同的应用场景和需求。无论是Web浏览、文件下载、流媒体播放还是其他任何类型的网络通信,HTTP都能够提供灵活的支持。
  • HTTP的无状态特性

    无状态特性是指HTTP协议本身不保留任何关于客户端和服务器之间交互的数据状态信息。每次HTTP请求都是独立的,服务器不会记住前一个请求的任何细节,也不会将这些信息用于后续请求的处理。

    具体来说,HTTP的无状态特性体现在以下几个方面:

    1. 请求独立性: 每个HTTP请求都是独立的,服务器在处理一个请求时不会考虑之前或之后的请求。这意味着,如果客户端发送了两个相同的请求,服务器会分别处理它们,而不会意识到它们是相同的。
    2. 不保存状态HTTP服务器不会保存关于客户端的任何信息(除非使用额外的机制,如CookiesSession等)。每个请求都被视为一个新的、独立的交互,服务器不会记住前一个请求的任何状态或数据。
    3. 简化协议: 无状态特性简化了HTTP协议的设计和实现。服务器不需要维护复杂的状态信息,也不需要处理状态信息的变化和同步问题。这降低了服务器的负担,提高了协议的可扩展性和可维护性。
    4. 客户端责任: 由于HTTP是无状态的,客户端需要负责在请求中提供所有必要的信息。例如,如果客户端需要在多个请求之间保持某种状态(如用户登录状态),它需要使用额外的机制(如CookiesSession)来在请求之间传递这些信息。
    5. 可缓存性: 无状态特性也意味着HTTP响应可以被缓存,并且可以在不同的请求之间重复使用。因为每个请求都是独立的,所以缓存的响应可以用于满足后续的相同请求,而无需再次从服务器获取

HTTPS 的作用

HTTPS,是在HTTP的基础上加入SSL/TLS协议层来进行数据加密,从而保障网络数据传输安全的一种协议。HTTPS的作用主要体现在以下几个方面:

数据加密传输

HTTPS通过加密算法对网站与用户之间传输的数据进行加密处理,使数据变成密文,只有合法的接收方才能解密和读取数据。这样一来,即使用户在不安全的网络环境中访问网站,如公共无线网络,黑客也难以窃取用户输入的用户名、密码、信用卡号等敏感信息,有效保护了用户的隐私和数据安全。

防止信息篡改

在数据传输过程中,HTTPS可以防止数据被恶意篡改。通过数字签名等技术,接收方能够验证数据的完整性和真实性,确保接收到的数据与发送方发送的数据完全一致,避免了中间人攻击等恶意行为对数据的篡改和破坏。

验证网站的真实性

HTTPS使用数字证书来验证网站的身份。数字证书由权威的证书颁发机构颁发,包含了网站的域名、公钥等信息以及证书颁发机构对网站身份的签名认证。用户在访问网站时,浏览器会自动验证网站的数字证书,如果证书有效且与网站域名匹配,用户就可以确认所访问的网站是真实可靠的,而不是被伪装的钓鱼网站,从而增强了用户对网站的信任度。

搜索引擎优化

搜索引擎如谷歌、百度等,都将HTTPS作为一个重要的排名因素。这是因为搜索引擎希望为用户提供安全可靠的搜索结果,而HTTPS网站在数据传输和安全性方面更有保障。因此,使用HTTPS的网站在搜索结果中的排名可能会更靠前,从而获得更多的流量和曝光机会,有助于提高网站的知名度和影响力。

HTTP 与 HTTPS 的区别

  • 加密
    • HTTP:数据传输过程中不加密,容易被截获和篡改。
    • HTTPS:使用SSL/TLS协议对传输的数据进行加密,保护数据传输过程中的安全性。
  • 端口
    • HTTP:默认使用端口80。
    • HTTPS:默认使用端口443。
  • 安全性
    • HTTP:不提供数据加密,安全性较低。
    • HTTPS:提供数据加密和完整性校验,安全性较高。
  • 证书
    • HTTP:不需要证书。
    • HTTPS:需要SSL证书来启用加密,并验证服务器的身份。
  • 性能
    • HTTP:由于不加密数据,性能略高于HTTPS。
    • HTTPS:由于需要进行加密和解密,可能会有一定的性能开销。
  • 搜索引擎优化(SEO)
    • HTTP:搜索引擎可能会对没有使用HTTPS的网站进行降权。
    • HTTPS:搜索引擎倾向于优先索引和展示使用HTTPS的网站。
  • 浏览器显示
    • HTTP:在大多数现代浏览器中,HTTP网站通常显示为"不安全"。
    • HTTPS:浏览器会显示一个锁形图标,表示网站是安全的。
  • 成本
    • HTTP:通常免费。
    • HTTPS:需要购买SSL证书,可能会有一定的成本。
  • 应用场景
    • HTTP:适用于不需要传输敏感信息的网站,如新闻网站、博客等。
    • HTTPS:适用于需要传输敏感信息的网站,如网上银行、在线购物、电子邮件等。