HTTP 概述
超文本传输协议 (HTTP) 是一种用于分布式协作超媒体信息系统的应用程序级协议。这是自 1990 年以来万维网(即互联网)数据通信的基础。HTTP 是一种通用的无状态协议,可用于其他目的以及使用其请求方法、错误代码和标头的扩展。
基本上,HTTP 是一种基于 TCP/IP 的通信协议,用于在万维网上传送数据(HTML 文件、图像文件、查询结果等)。默认端口为 TCP 80,但也可以使用其他端口。它为计算机相互通信提供了一种标准化的方式。 HTTP 规范指定了客户端的请求数据将如何构建并发送到服务器,以及服务器如何响应这些请求。
基本功能
三个基本特性使 HTTP 成为一个简单但功能强大的协议:
HTTP 是无连接的: HTTP 客户端,即浏览器发起 HTTP 请求,发出请求后,客户端等待响应。服务器处理请求并发送回响应,然后客户端断开连接。因此客户端和服务器仅在当前请求和响应期间相互了解。在新连接上发出更多请求,例如客户端和服务器彼此都是新连接。
HTTP 是媒体独立的:这意味着,只要客户端和服务器都知道如何处理数据内容,任何类型的数据都可以通过 HTTP 发送。客户端和服务器都需要使用适当的 MIME 类型指定内容类型。
HTTP 是无状态的: 如上所述,HTTP 是无连接的,这是 HTTP 是无状态协议的直接结果。服务器和客户端仅在当前请求期间相互了解。后来,两个人都忘记了对方。由于协议的这种性质,客户端和浏览器都无法在跨网页的不同请求之间保留信息。
HTTP/1.0 为每个请求/响应交换使用一个新连接,而 HTTP/1.1 连接可用于一个或多个请求/响应交换。
基本架构
下图显示了 Web 应用程序的一个非常基本的架构,并描述了 HTTP 所在的位置:
HTTP 协议是基于客户端/服务器架构的请求/响应协议,其中 Web 浏览器、机器人和搜索引擎等充当 HTTP 客户端,Web 服务器充当服务器。
客户
HTTP 客户端以请求方法、URI 和协议版本的形式向服务器发送请求,然后是类似 MIME 的消息,其中包含请求修饰符、客户端信息和通过 TCP/IP 连接可能的正文内容.
服务器
HTTP 服务器以状态行进行响应,包括消息的协议版本和成功或错误代码,然后是类似 MIME 的消息,其中包含服务器信息、实体元信息和可能的实体正文内容。