安全测试 - HTTP 协议基础



了解协议对于深入掌握安全测试非常重要。当我们在 Web 服务器和客户端之间拦截数据包时,您将能够理解协议的重要性。

HTTP 协议

超文本传输协议 (HTTP) 是一种用于分布式、协作式超媒体信息系统的应用层协议。自 1990 年以来,它一直是万维网数据通信的基础。HTTP 是一种通用且无状态的协议,也可以用于其他目的,例如扩展其请求方法、错误代码和标头。

基本上,HTTP 是一种基于 TCP/IP 的通信协议,用于通过 Web 传输数据,例如 HTML 文件、图像文件、查询结果等。它提供了一种标准化的方式让计算机相互通信。HTTP 规范指定了客户端如何将请求的数据发送到服务器,以及服务器如何响应这些请求。

基本特性

以下三个基本特性使 HTTP 成为一个简单而强大的协议:

  • HTTP 是无连接的 - HTTP 客户端(即浏览器)发起 HTTP 请求。发出请求后,客户端断开与服务器的连接并等待响应。服务器处理请求并重新建立与客户端的连接以发送响应。

  • HTTP 是媒体独立的 - 只要客户端和服务器都知道如何处理数据内容,HTTP 就可以发送任何类型的数据。这要求客户端和服务器使用相应的 MIME 类型指定内容类型。

  • HTTP 是无状态的 - HTTP 是无连接的,这是 HTTP 是无状态协议的直接结果。服务器和客户端仅在当前请求期间彼此了解。之后,它们都忘记了对方。由于协议的这种特性,客户端或浏览器都不能在 Web 页面之间不同请求之间保留信息。

HTTP/1.0 每次请求/响应交换使用一个新连接,而 HTTP/1.1 连接可用于一次或多次请求/响应交换。

架构

下图显示了一个 Web 应用程序的非常基本的架构,并描绘了 HTTP 所在的位置:

HTTP Architecture

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

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

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

HTTP – 缺点

  • HTTP 不是一个完全安全的协议。

  • HTTP 使用端口 80 作为默认通信端口。

  • HTTP 在应用层运行。它需要为数据传输创建多个连接,从而增加了管理开销。

  • 使用 HTTP 不需要加密/数字证书。

Http 协议详细信息

为了深入了解 HTTP 协议,请点击以下每个链接。

广告