- 安全测试教程
- 安全测试 - 首页
- 安全测试 - 概述
- 安全测试 - 流程
- 安全测试 - 恶意软件
- HTTP协议基础
- HTTPS协议基础
- 编码和解码
- 安全测试 - 密码学
- 安全测试 - 同源策略
- 安全测试 - Cookie
- 黑客攻击Web应用程序
- 安全测试 - 注入攻击
- 测试身份验证漏洞
- 测试跨站脚本攻击
- 不安全的直接对象引用
- 测试安全配置错误
- 测试敏感数据泄露
- 缺少函数级访问控制
- 跨站请求伪造
- 存在漏洞的组件
- 未验证的重定向和转发
- 安全测试 - Ajax安全
- 安全测试 - Web服务
- 安全测试 - 缓冲区溢出
- 安全测试 - 拒绝服务攻击
- 测试恶意文件执行
- 安全测试 - 自动化工具
- 安全测试有用资源
- 安全测试 - 快速指南
- 安全测试 - 有用资源
- 安全测试 - 讨论
安全测试 - HTTP 消息
HTTP消息
HTTP基于客户端-服务器架构模型和无状态请求/响应协议,通过在可靠的TCP/IP连接上交换消息来运行。
HTTP“客户端”是一个程序(Web浏览器或任何其他客户端),它建立与服务器的连接,以发送一个或多个HTTP请求消息。HTTP“服务器”是一个程序(通常是Web服务器,如Apache Web服务器或Internet Information Services IIS等),它接受连接以通过发送HTTP响应消息来服务HTTP请求。
HTTP使用统一资源标识符(URI)来标识给定的资源并建立连接。一旦建立连接,HTTP消息就会以类似于互联网邮件[RFC5322]和多用途互联网邮件扩展(MIME)[RFC2045]中使用的格式传递。这些消息由客户端到服务器的请求和服务器到客户端的响应组成,其格式如下:
HTTP-message = <Request> | <Response> ; HTTP/1.1 messages
HTTP请求和HTTP响应使用RFC 822的通用消息格式来传输所需的数据。此通用消息格式包含以下四个项目:
起始行
零个或多个报头字段,后跟CRLF
空行(即,在CRLF之前没有任何内容的行),表示报头字段的结束
可选的消息体
以下部分将解释HTTP消息中使用的每个实体。
消息起始行
起始行将具有以下通用语法:
start-line = Request-Line | Status-Line
在分别讨论HTTP请求和HTTP响应消息时,我们将讨论请求行和状态行。现在让我们看看请求和响应情况下起始行的示例:
GET /hello.htm HTTP/1.1 (This is Request-Line sent by the client) HTTP/1.1 200 OK (This is Status-Line sent by the server)
报头字段
HTTP报头字段提供关于请求或响应,或关于在消息体中发送的对象的必要信息。HTTP消息报头有以下四种类型:
通用报头 - 这些报头字段对请求和响应消息都具有通用适用性。
请求报头 - 这些报头字段仅适用于请求消息。
响应报头 - 这些报头字段仅适用于响应消息。
实体报头 - 这些报头字段定义关于实体体或(如果没有主体存在)的元信息。
所有上述报头都遵循相同的通用格式,每个报头字段都包含一个名称,后跟一个冒号 (:) 和字段值,如下所示:
message-header = field-name ":" [ field-value ]
以下是各种报头字段的示例:
User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3 Host: www.example.com Accept-Language: en, mi Date: Mon, 27 Jul 2009 12:28:53 GMT Server: Apache Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT ETag: "34aa387-d-1568eb00" Accept-Ranges: bytes Content-Length: 51 Vary: Accept-Encoding Content-Type: text/plain
消息体
消息体部分对于HTTP消息是可选的,但如果可用,则用于携带与请求或响应关联的实体体。如果关联了实体体,则通常Content-Type和Content-Length报头行指定关联主体的性质。
消息体是承载实际HTTP请求数据(包括表单数据和上传等)和来自服务器的HTTP响应数据(包括文件、图像等)的部分。以下是消息体的一个简单内容:
<html> <body> <h1>Hello, World!</h1> </body> </html>