本节课的重点内容有:HTTP 协议的基本定义、HTTP 协议主要特征、HTTP 协议发展历程、HTTP 协议的报文结构。HTTP 是一种用作获取诸如 HTML 文档这类资源的协议。它是 Web 上进行任何数据交换的基础,同时,也是一种客户端—服务器(client-server)协议,也就是说,请求是由接受方——通常是浏览器——发起的。一个完整网页文档是由获取到的不同文档组件——像是文本、布局描述、图片、视频、脚本等——重新构建出来的。HTTP 是一个客户端—服务器协议:请求由一个实体,即用户代理(user agent),或是一个可以代表它的代理方(proxy)发出。大多数情况下,这个用户代理都是一个网页浏览器,不过它也可能是任何东西,比如一个爬取网页来充实、维护搜索引擎索引的机器爬虫。 每个请求都会被发送到一个服务端,它会处理这个请求并提供一个称作响应的回复。在客户端与服务端之间,还有许许多多的被称为代理的实体,履行不同的作用,例如充当网关或缓存。 客户端与服务器间的链条 实际上,在浏览器和处理其请求的服务器之间,还有路由器、调制解调器等等许多计算机。归功于 Web 的分层设计,这些机器都隐藏在网络层和传输层内。而 HTTP 位于这些机器之上的应用层。虽然下面的层级在诊断网络问题时很重要,但在描述 HTTP 的设计时,它们大多是不相干的。 客户端:用户代理 用户代理是任何能够代表用户行为的工具。这类工具以浏览器为主,不过,它也可能是工程师和 Web 开发人员调试应用所使用的那些程序。 浏览器总是首先发起请求的那个实体,永远不会是服务端(不过,后来已经加入了一些机制,能够模拟出由服务端发起的消息)。 为了展现一个网页,浏览器需要发送最初的请求来获取描述这个页面的 HTML 文档。一个 Web 页面是一个超文本文档。这意味着有一部分展示的内容会是链接——可以被激活(通常是点击鼠标)来获取一个新的网页——用户可以通过这些链接指示用户代理并进行网络浏览。浏览器会将收到的指示转换成 HTTP 请求,并进一步解析 HTTP 响应,向用户提供清楚的回复。本节课的知识让我对HTTP有了更深的了解。