1. http 是 Hyper Text Transfer Protocol 的缩写,表示超文本传输协议
    2. http 主要是为 Web 浏览器与 Web 服务器之间的通信而设计的
    3. http 主要是用于从万维网万维网(WWW World Wide Web)服务器传输超文本到本地浏览器的传送协议
    4. http 是一种用于分布式、协作式和超媒体信息系统的应用层协议,是因特网上应用最为广泛的一种网络传输协议,所有的 WWW 文件都必须遵守这个标准。
      1. 分布式(Distributed)分布式描述了信息和资源在网络中的分散性。也就是说,资源(如网页、图片、视频等)不一定存在于单一的服务器或位置,而是可能分散在全球的各个服务器上。当你通过浏览器访问一个网页时,你可能从一个服务器获取 HTML,从第二个服务器获取图片,从第三个服务器获取视频,等等。HTTP 允许这样的分布式资源获取。
      2. 协作式(Collaborative)这意味着多个用户或系统可以同时访问和修改网络上的资源,并通过 HTTP 协议进行协作。例如,云文档编辑工具允许多个用户同时编辑同一份文档,HTTP 为这样的实时协作提供了一个通信基础。
      3. 超媒体信息系统(Hypermedia Information System)”超媒体”是超文本和多媒体的结合,它指的是链接和资源的网络,允许用户从一个资源跳转到另一个资源。
      4. 应用层协议(Application Layer Protocol)HTTP 提供了一种机制,使得文档(例如 HTML)中的链接能够指向并获取其他资源,如通过 标签在 HTML 中所做的那样。资源之间的互相链接构成了万维网 WWW(World Wide Web),用户可以轻松地从一个页面导航到另一个页面。
    5. 应用层协议(Application Layer Protocol)
      1. 在网络模型中,应用层位于最顶层,直接为应用程序(如 Web 浏览器)提供服务。
      2. HTTP 就是一个应用层协议,它定义了浏览器和服务器之间如何交换信息。
    6. http 协议基于 TCP/IP 协议
    7. https 协议是一种通过计算机网络进行安全通信的传输协议
    8. https 经由 http 进行通信,但利用 SSL/TLS 来加密数据包
    9. https 开发的主要目的,是提供对网站服务器的身份认证,保护交换资料的隐私与完整性

    image.png

    1. http 的 URL 是由 **http://** 打头
    2. http 默认端口号为 80
    3. https 的 URL 是由 **https://** 打头
    4. https 的默认使用端口为 443
    5. 客户端:Client Side
    6. 服务端:Server Side
    7. HTTP 协议:HTTP Protocol
    8. http 是基于客户端/服务端(C/S)的架构模型

    http 基础概念 - 图2

    1. 浏览器是常见的 http 客户端
    2. 在 http 中,客户端主动发起请求、服务端被动响应客户端的请求
    3. 浏览器可以作为 http 客户端通过 url 向 http 服务端即 WEB 服务器发送请求
    4. Web 服务器根据接收到的请求后,向客户端发送响应信息
    5. http 是“短连接”协议
    6. http 无法保证永久的连接状态
    7. 在早期的 HTTP/1.0 规范中,对于客户端发起的每一次请求,服务端在处理完毕后会断开连接,并不会持续保持连接的状态
    8. 在 HTTP/1.1 中,引入了 “keep-alive” 机制,允许多个请求和响应在一个连接中传输,以提高性能,这使得连接可以在多个请求/响应对之间保持打开状态
    9. “keep-alive” 机制无法永久保持客户端和服务端的连接状态,当一方明确要求关闭或者超时,连接就会断开,下次客户端再发起请求时,还得重新建立连接
    10. http 是“无状态”协议
    11. http 对于事务处理没有记忆能力,缺少状态意味着如果后续处理需要前面的信息,则它必须重传
    12. “短连接”、“无状态”机制的一些优势:
      1. 资源节省:持续的连接会占用大量服务器资源,特别是在大流量的情境下。每个连接都会消耗服务器的 CPU、内存和其他资源。短连接确保服务器只在需要的时候使用资源,并在完成请求后迅速释放,从而服务更多的用户。
      2. 简化服务器设计:无状态的设计减少了服务器需要考虑的复杂性,使得 HTTP 服务器的开发和维护变得相对简单。
      3. 更好的可扩展性:由于连接是短暂的,服务器可以更容易地管理大量并发的请求,这使得 HTTP 服务更容易扩展以处理大量的流量。
      4. 容错性:如果一个连接出现问题或长时间没有响应,它将被断开而不是持续占用资源。这有助于服务器更好地处理异常或错误条件。
      5. 减少网络拥塞:持续的连接可能会导致网络拥塞,特别是在高流量的情况下。短连接减少了在网络上持续存在的连接数量,从而减少了网络拥塞的可能性。
      6. 更适合无状态的交互:许多网络交互是无状态的,即用户发出请求,服务器响应,交互结束。对于这种简单的交互模式,短连接是最有效的。
    13. “短连接”、“无状态”机制的一些弊端:
      1. 比长连接耗时更长:在需要频繁请求的场景下,每次请求都需要建立新的连接,这会增加延迟(HTTP/1.1 引入的 “keep-alive” 机制可以缓解该问题)
      2. 可能需要传输额外的状态数据:由于 http 是无状态的,这会导致每次连接传送的数据量增大,而增多的那部分数据主要就是状态数据。这也是为什么诸如 cookies 和 sessions 在 web 开发中非常重要,它们为无状态的 HTTP 添加了状态管理。
    14. HTTPS 的信任基于预先安装在操作系统中的证书颁发机构(CA)
    15. 与一个网站之间的 HTTPS 连线仅在这些情况下可被信任
      1. 浏览器正确地实现了 HTTPS 且操作系统中安装了正确且受信任的证书颁发机构
      2. 证书颁发机构仅信任合法的网站
      3. 被访问的网站提供了一个有效的证书,也就是说它是一个由操作系统信任的证书颁发机构签发的(大部分浏览器会对无效的证书发出警告)
      4. 该证书正确地验证了被访问的网站(例如,访问 https://www.runoob.com 时收到了签发给 www.runoob.com 而不是其它域名的证书)
      5. 此协议的加密层(SSL/TLS)能够有效地提供认证和高强度的加密
    16. HTTP 使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接