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 架构

HTTP 协议是一种基于客户端/服务器架构的请求/响应协议,其中 Web 浏览器、机器人和搜索引擎等充当 HTTP 客户端,Web 服务器充当服务器。

客户端

HTTP 客户端以请求方法、URI 和协议版本的形式向服务器发送请求,后跟通过 TCP/IP 连接的类似 MIME 的消息,其中包含请求修饰符、客户端信息和可能的正文内容。

服务器

HTTP 服务器以状态行响应,包括消息的协议版本和成功或错误代码,后跟包含服务器信息、实体元信息和可能的实体主体内容的类似 MIME 的消息。