读书笔记:《HTTP权威指南》—— 01:HTTP概述

237 阅读5分钟

名词解释

  • HTTP
    全称Hypertext Transfer Protocol,超文本传输协议,是在万维网上进行通信时所使用的协议方案。
  • MIME
    全称Multipurpose Internet Mail Extension,多用途因特网邮件扩展,原本是为了解决在不同的电子邮件系统之间搬移报文时存在的问题,后因其在电子邮件系统中工作的very good,被HTTP采纳,用来描述并标记多媒体内容。常见的MIME类型有数百个。
    • HTML 格式的文本文档由 text/html 类型来标记。
    • 普通的 ASCII 文本文档由 text/plain 类型来标记。
    • JPEG 版本的图片为 image/jpeg 类型。
    • GIF 格式的图片为 image/gif 类型。
    • Apple 的 QuickTime 电影为 video/quicktime 类型。
    • 微软的 PowerPoint 演示文件为 application/vnd.ms-powerpoint 类型。
  • URI?URL?傻傻分不清楚
    • URI:全称Uniform Resource Identifier,统一资源标识符,作用类似于淘宝填写的收货地址一样,使得快递能够唯一的将快递正确送达到收货人手上,URI就是在世界范围内唯一标识并定位信息资源。URI有两种形式,分别称为URL和URN
    • URL:全称Uniform Resource Locator,统一资源定位符,是URI最常见的表现形式,URL 描述了一台特定服务器上某资源的特定位置。它们可以明确说明如何从一个精确、固定的位置获取资源。
    • URN:全称Uniform Resource Name,统一资源名,URN 是作为特定内容的唯一名称使用的,与目前的资源所在地无关。使用这些与位置无URN,就可以将资源四处搬移。通过URN,还可以用同一个名字通过多种网络访问协议来访问资源。
    • 总结:URN和URL都是URI的表现形式,URN的理念更为先进,但受制于解析资源位置架构的缺乏,所以URN目前仍然处于试验阶段,并为大范围使用。因此,大部分情况下,URI和URL的效果是等同的。
  • 事务
    《HTTP权威指南》是这么描述事物的:一个HTTP事务由一条(从客户端发往服务器的)请求命令和一个(从服务器发回客户端的)响应结果组成。说人话就是事物指的就是一次http链接(报文发送与接受)的整个过程。
  • 方法
    HTTP 支持几种不同的请求命令,这些命令被称为 HTTP 方法(HTTP method)。每 条 HTTP 请求报文都包含一个方法。这个方法会告诉服务器要执行什么动作(获取 一个 Web 页面、运行一个网关程序、删除一个文件等)。
    HTTP方法 描述
    GET 从服务器向客户端发送命名资源
    PUT 将来自客户端的数据存储到一个命名的服务器资源中去
    DELETE 从服务器中删除命名资源
    POST 将客户端数据发送到一个服务器网关应用程序
    HEAD 仅发送命名资源响应中的 HTTP 首部
  • 状态码 每条 HTTP 响应报文返回时都会携带一个状态码。状态码是一个三位数字的代码, 告知客户端请求是否成功,或者是否需要采取其他动作。伴随着每个数字状态码,HTTP 还会发送一条解释性的“原因短语”文本。这段文本是写给人看的,所以这段文本并不是固定不变的。不同的HTTP软件处理状态码都只认数字码。

HTTP版本变迁

http/0.9
HTTP 的 1991 原型版本称为 HTTP/0.9。这个协议有很多严重的设计缺陷,只应 该用于与老客户端的交互。HTTP/0.9 只支持 GET 方法,不支持多媒体内容的 MIME 类型、各种 HTTP 首部,或者版本号。HTTP/0.9 定义的初衷是为了获取 简单的 HTML 对象,它很快就被 HTTP/1.0 取代了。

http/1.0
1.0 是第一个得到广泛使用的 HTTP 版本。HTTP/1.0 添加了版本号、各种 HTTP 首部、一些额外的方法,以及对多媒体对象的处理。HTTP/1.0 使得包含生动图 片的 Web 页面和交互式表格成为可能,而这些页面和表格促使万维网为人们广 泛地接受。这个规范从未得到良好地说明。在这个 HTTP 协议的商业演进和学术 研究都在快速进行的时代,它集合了一系列的最佳实践。

http/1.0+ 在 20 世纪 90 年代中叶,很多流行的 Web 客户端和服务器都在飞快地向 HTTP 中添加各种特性,以满足快速扩张且在商业上十分成功的万维网的需要。其中很 多特性,包括持久的 keep-alive 连接、虚拟主机支持,以及代理连接支持都被加 入到 HTTP 之中,并成为非官方的事实标准。这种非正式的 HTTP 扩展版本通常 称为 HTTP/1.0+。

http/1.1 HTTP/1.1 重点关注的是校正 HTTP 设计中的结构性缺陷,明确语义,引入重要 的性能优化措施,并删除一些不好的特性。HTTP/1.1 还包含了对 20 世纪 90 年 代末正在发展中的更复杂的 Web 应用程序和部署方式的支持。HTTP/1.1 是当前 使用的 HTTP 版本。

http-NG(又名htt/2.0) HTTP-NG 是 HTTP/1.1 后继结构的原型建议,它重点关注的是性能的大幅优化, 以及更强大的服务逻辑远程执行框架。HTTP-NG 的研究工作终止于 1998 年,编 写本书时,还没有任何要用此建议取代 HTTP/1.1 的推广计划。