HTTP - 教程

  • 简述

    超文本传输协议 (HTTP) 是一种用于分布式协作超媒体信息系统的应用程序级协议。这是自 1990 年以来万维网(即互联网)数据通信的基础。HTTP 是一种通用的无状态协议,可用于其他目的以及使用其请求方法、错误代码和标头的扩展。
    本教程基于 RFC-2616 规范,该规范定义了称为 HTTP/1.1 的协议。HTTP/1.1 是原始 HTTP (HTTP/1.0) 的修订版。HTTP/1.0 和 HTTP/1.1 之间的主要区别在于 HTTP/1.0 为每个请求/响应交换使用一个新连接,而 HTTP/1.1 连接可用于一个或多个请求/响应交换。
    本教程是为计算机科学专业的毕业生和 Web 开发人员准备的,旨在帮助他们了解与超文本传输​​协议 (HTTP) 相关的基本到高级概念。
    在继续本教程之前,最好对 Web 概念、Web 浏览器、Web 服务器、基于客户端和服务器架构的软件有基本的了解。
    基本上,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 和协议版本的形式向服务器发送请求,然后是类似 MIME 的消息,其中包含请求修饰符、客户端信息和通过 TCP/IP 连接可能的正文内容。

    服务器

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