HTTP是什么?HTTP又不是什么?

HTTP 是超文本传输协议,也就是HyperText Transfer Protocol。 是一个用在计算机世界里的协议,它使用计算机能够理解的语言确立了一种计算机之间交流通信的规范,以及相关的各种控制和错误处理方式。

问题:

  1. 你是怎么理解 HTTP 字面上的“超文本”和“传输协议”的?

    • http协议是一个双向协议
    • "超文本"是超越了普通文本的文本,图片、音频、视频等,最关键的是含有超链接
  2. 能否谈一下你对 HTTP 的认识?越多越好。

    • HTTP 是一个用在计算机世界里的协议,它确立了一种计算机之间交流通信的规范,以
      及相关的各种控制和错误处理方式。

    • HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范

    • HTTP 是构建互联网的重要基础技术,它没有实体,依赖许多其他的技术来实现,但同
      时许多技术也都依赖于它

  3. HTTP 有什么特点?有什么优点和缺点?

    • HTTP 专门用来在两点之间传输数据,不能用于广播、寻址或路由。
  4. HTTP 下层都有哪些协议?是如何工作的?

    • TCP/IP
    • 可靠消息传输
    • 四层与七层协议
    • UNIX Domain Socket

CDN

CDN,全称是“Content Delivery Network”,翻译过来就是“内容分发网络”。它应用了 HTTP 协议里的缓存和代理技术,代替源站响应客户端的请求。

CDN的好处

简单来说,它可以缓存源站的数据,让浏览器的请求不用“千里迢迢”地到达源站服务器,
直接在“半路”就可以获取响应。如果 CDN 的调度算法很优秀,更可以找到离用户最近的
节点,大幅度缩短响应时间。

TCP/IP

TCP/IP 协议是目前网络世界“事实上”的标准通信协议,TCP/IP 协议实际上是一系列网络通信协议的统称,其中最核心的两个协议是TCP和IP,其他的还有 UDP、ICMP、ARP ,这个协议栈有四层,最上层是“应用层”,最下层是“链接层”,TCP 和 IP 则在中间:TCP 属于“传输层”,IP 属于“网际层”。

IP 协议是“Internet Protocol”的缩写,主要目的是解决寻址和路由问题,以及如何在两点间传送数据包。

TCP 协议是“Transmission Control Protocol”的缩写,意思是“传输控制协议”,它位于 IP 协议之上,基于 IP 协议提供可靠的、字节流形式的通信,是 HTTP 协议得以实现的基础。**“可靠”是指保证数据不丢失,“字节流”**是指保证数据完整,所以在 TCP 协议的两端可以如同操作文件一样访问传输的数据,就像是读写在一个密闭的管道里“流动”的字节。

DNS

但想要使用 TCP/IP 协议来通信仍然要使用 IP 地址,所以需要把域名做一个转换,“映射”到它的真实 IP,这就是所谓的“域名解析”

URI/URL

URI(Uniform Resource Identifier),中文名称是 统一资源标识符,使用它就能够唯一地标记互联网上资源。URL(Uniform Resource Locator), 统一资源定位符,也就是我们俗称的“网址”

1
http://nginx.org/en/download.html

URI 主要有三个基本的部分构成:

  1. 协议名:即访问该资源应当使用的协议,在这里是“http”;
  2. 主机名:即互联网上主机的标记,可以是域名或 IP 地址,在这里是“nginx.org”;
  3. 路径:即资源在主机上的位置,使用“/”分隔多级目录,在这里
    是“/en/download.html”。

HTTPS

HTTPS全称是“HTTP over SSL/TLS”,也就是运行在 SSL/TLS 协议上的 HTTP。SSL/TLS是一个负责加密通信的安全协议,建立在 TCP/IP 之上,所以也是个可靠的传输协议,可以被用作 HTTP 的下层。