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 Architecture

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

客户端

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

服务器

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

广告