7.2.3 HTTP 中间人攻击
HTTP 主要用于 Web 程序通信,是一个属于应用层的面向对象的协议,于 1990 年提出。目前广泛使用的是其 1.1 版本, 2.0 版本已在 2013 年 8 月开始测试。 HTTP 支持客户端/服务器模式,采用简单快速的请求/响应方式,常用的请求有 GET、 HEAD、 POST 等方式。由于 HTTP 协议简单,使得 HTTP 服务器的程序规模小,因而通信速度很快。此外 HTTP 协议还有以下特点:
( 1)灵活。 HTTP 允许传输任意类型的数据对象,如图片、多媒体、二进制数据流等,由 Content-Type 标记数据类型。
( 2)无连接。无连接的含义是指限制每次连接只处理一个请求,服务器处理完客户端的请求,并得到客户端的响应后,即断开连接。
( 3)无状态。 HTTP 协议是无状态协议。所谓无状态是指协议对于事务处理没有记忆能力,虽然在发生错误时会带来重传的损耗,但能够简化逻辑,因而适用于大规模并行传输。HTTP 协议的实现由客户端发送的 Request 包和服务器返回的 Response 包构成, 其中Request 包由以下部分组成:
( 1)请求行,由请求方法字段、 URL 字段和 HTTP 协议版本字段三个字段组成,它们用空格分隔,如 GET /index.html HTTP/1.1。
( 2)请求头部,由(关键字:<空格>值)对组成,每行一对,关