HTTP和HTTPS

HTTP和HTTPS的简介

HTTP

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

HTTPS

HTTPS (超文本传输安全协议) :是通过计算机网络进行安全通信的传输协议。

由于HTTP 本身是不安全的,因为数据传输过程中没有经过加密,可能会被篡改,为了解决这个问题,于是引入了HTTPS,是在HTTP上加入了SSL/TLS协议,为数据传输提供了加密和身份验证。

 

HTTP的工作原理

  1. 客户端发起请求 : 用户通过客户端输入URL,客户端向服务器发起一个HTTP请求。
  2. 服务器处理请求 : 服务器接收到以后,根据请求的类型和请求的资源,进行相应的处理。
  3. 服务器返回响应 : 服务器将处理的结果包装成HTTP响应消息,发送回客户端。
  4. 客户渲染页面 : 客户端接收到响应后,根据响应的内容渲染页面,然后展示给用户。
  5. 关闭连接 : 完成请求响应周期后,客户端和服务器之间的连接可以被关闭。

HTTP 与 HTTPS 区别

HTTP与HTTPS虽然在名称上很相似,但是在安全性上有本质的区别 :HTTPS通过使用SSL/TLS协议,为数据的传输提供了加密性和完整的校验性,从而保护了用户的隐私和数据的安全。

主要区别如下 :

加密 :

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 : 适用于需要传输敏感信息的网站,如: 网上银行、在线购物、电子邮件等。

HTTP状态码

HTTP状态码是服务器对客户端的请求的响应

  1. 1XX (信息性状态码): 表示接收的请求正在处理。
  2. 2XX (成功状态码) : 成功,表示请求正确处理完毕。
  3. 3XX (重定向状态码) : 重定向,表示需要进一步的操作才能完成这一请求。
  4. 4XX (客户端错误状态码): 客户端错误,表示请求包含的语法错误或者是无法完成这一请求。
  5. 5XX (服务器错误状态码): 服务器错误,表示服务器在处理请求的过程中发生了错误。

HTTP请求方法

  1. GET : 可以从服务器获取指定的资源。用于请求数据而不对数据进行修改。如 : 从服务器获取网页、图片等。
  2. POST : 向服务器发送数据以创建新资源。常用于提交表单数据或上传文件。发送的数据包含在请求体中。
  3. PUT : 向服务器发送数据以更新现有资源。如果资源不存在,则创建新的资源。与 POST 不同,PUT 通常是幂等的,即多次执行相同的 PUT 请求不会产生不同的结果。
  4. DELETE : 从服务器删除指定的资源。请求中包含要删除的资源标识符。
  5. PATCH : 对资源进行部分修改。与PUT类似,但是PATCH只更改部分数据而不是整体资源。
  6. HEAD : 类似于GET,但是服务器只返回响应的头部,不会返回实际数据。用于检测资源的元数据。(如: 检查资源是否存在,查看响应的头部信息)
  7. OPTIONS : 返回服务器支持的 HTTP 方法,用于检查服务器支持哪些请求方法,通常用于跨资源共享的预检请求。
  8. TRACE : 回显服务器收到的请求,主要是用于诊断。客户端可以查看请求在服务器中的处理路径。
  9. CONNECT : 建立一个到服务器的隧道,通常用于HTTPS 连接。客户端可以通过该隧道发送加密的数据。

HTTP版本

HTTP有多个版本,目前被广泛使用的是 HTTP/1.1 和 HTTP/2 ,以及正在逐步推广的 HTTP/3。

HTTP/1.1 : 支持持久连接,允许多个请求或者是响应通过同一个TCP 进行传输,减少了建立和关闭连接的消耗。

HTTP/2 : 基于二进制分帧,支持多路复用,允许同时通过单一的HTTP/2 连接发起多重的、独立的、双向的交流。

HTTP/3 : 基于QUIC协议,主要是想要减少网络延迟,提高传输速度和安全性。

你可能感兴趣的:(http,https,网络协议)