- 安全测试教程
- 安全测试 - 首页
- 安全测试 - 概述
- 安全测试 - 流程
- 安全测试 - 恶意软件
- HTTP 协议基础
- HTTPS 协议基础
- 编码和解码
- 安全测试 - 密码学
- 安全测试 - 同源策略
- 安全测试 - Cookie
- 黑客攻击 Web 应用
- 安全测试 - 注入
- 测试身份验证漏洞
- 测试跨站点脚本攻击
- 不安全的直接对象引用
- 测试安全配置错误
- 测试敏感数据泄露
- 缺少功能级访问控制
- 跨站点请求伪造
- 存在漏洞的组件
- 未经验证的重定向和转发
- 安全测试 - Ajax 安全
- 测试安全 - Web 服务
- 安全测试 - 缓冲区溢出
- 安全测试 - 拒绝服务
- 测试恶意文件执行
- 安全测试 - 自动化工具
- 安全测试有用资源
- 安全测试 - 快速指南
- 安全测试 - 有用资源
- 安全测试 - 讨论
安全测试 - HTTP 方法
HTTP 方法
HTTP/1.1 定义了一套常用的方法,并且可以根据需要扩展这套方法。这些方法名称区分大小写,必须使用大写。
序号 | 方法及描述 |
---|---|
1 | GET 用于使用给定的 URI 从给定的服务器检索信息。使用 GET 的请求应该只检索数据,并且不应该对数据产生任何其他影响。 |
2 | HEAD 与 GET 相同,但只传输状态行和报头部分。 |
3 | POST 用于向服务器发送数据。例如,使用 HTML 表单发送客户信息、文件上传等。 |
4 | PUT 用上传的内容替换目标资源的所有当前表示形式。 |
5 | DELETE 删除 URI 指定的目标资源的所有当前表示形式。 |
6 | CONNECT 建立到由给定 URI 标识的服务器的隧道。 |
7 | OPTIONS 描述目标资源的通信选项。 |
8 | TRACE 沿着到目标资源的路径执行消息回路测试。 |
GET 方法
通过在请求的 URL 部分中指定参数来从 Web 服务器检索数据。这是用于文档检索的主要方法。以下示例使用 GET 方法获取 **hello.htm**:
GET /hello.htm HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT) Host: www.tutorialspoint.com Accept-Language: en-us Accept-Encoding: gzip, deflate Connection: Keep-Alive
针对上述 GET 请求发出以下服务器响应:
HTTP/1.1 200 OK Date: Mon, 27 Jul 2009 12:28:53 GMT Server: Apache/2.2.14 (Win32) Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT ETag: "34aa387-d-1568eb00" Vary: Authorization,Accept Accept-Ranges: bytes Content-Length: 88 Content-Type: text/html Connection: Closed <html> <body> <h1>Hello, World!</h1> </body> </html>
HEAD 方法
在功能上类似于 GET,除了服务器回复状态行和报头,但不回复实体主体。以下示例使用 HEAD 方法获取 **hello.htm** 的报头信息:
HEAD /hello.htm HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT) Host: www.tutorialspoint.com Accept-Language: en-us Accept-Encoding: gzip, deflate Connection: Keep-Alive
针对上述 GET 请求发出以下服务器响应:
HTTP/1.1 200 OK Date: Mon, 27 Jul 2009 12:28:53 GMT Server: Apache/2.2.14 (Win32) Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT ETag: "34aa387-d-1568eb00" Vary: Authorization,Accept Accept-Ranges: bytes Content-Length: 88 Content-Type: text/html Connection: Closed
您可以注意到服务器在报头之后没有发送任何数据。
POST 方法
当您想要向服务器发送一些数据时使用。例如,文件更新、表单数据等。以下简单示例使用 POST 方法将表单数据发送到服务器,该服务器由 **process.cgi** 处理,最后返回响应:
POST /cgi-bin/process.cgi HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT) Host: www.tutorialspoint.com Content-Type: text/xml; charset = utf-8 Content-Length: 88 Accept-Language: en-us Accept-Encoding: gzip, deflate Connection: Keep-Alive <?xml version = "1.0" encoding = "utf-8"?> <string xmlns = "http://clearforest.com/">string</string>
服务器端脚本 **process.cgi** 处理传递的数据并发送以下响应:
HTTP/1.1 200 OK Date: Mon, 27 Jul 2009 12:28:53 GMT Server: Apache/2.2.14 (Win32) Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT ETag: "34aa387-d-1568eb00" Vary: Authorization,Accept Accept-Ranges: bytes Content-Length: 88 Content-Type: text/html Connection: Closed <html> <body> <h1>Request Processed Successfully</h1> </body> </html>
PUT 方法
PUT 方法用于请求服务器将包含的实体主体存储在给定 URL 指定的位置。以下示例请求服务器将给定的实体主体保存在服务器根目录下的 **hello.htm** 中:
PUT /hello.htm HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT) Host: www.tutorialspoint.com Accept-Language: en-us Connection: Keep-Alive Content-type: text/html Content-Length: 182 <html> <body> <h1>Hello, World!</h1> </body> </html>
服务器将给定的实体主体存储在 **hello.htm** 文件中,并将以下响应发送回客户端:
HTTP/1.1 201 Created Date: Mon, 27 Jul 2009 12:28:53 GMT Server: Apache/2.2.14 (Win32) Content-type: text/html Content-length: 30 Connection: Closed <html> <body> <h1>The file was created.</h1> </body> </html>
DELETE 方法
DELETE 方法用于请求服务器删除给定 URL 指定位置的文件。以下示例请求服务器删除服务器根目录下的给定文件 **hello.htm**:
DELETE /hello.htm HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT) Host: www.tutorialspoint.com Accept-Language: en-us Connection: Keep-Alive
服务器删除提到的文件 **hello.htm** 并将以下响应发送回客户端:
HTTP/1.1 200 OK Date: Mon, 27 Jul 2009 12:28:53 GMT Server: Apache/2.2.14 (Win32) Content-type: text/html Content-length: 30 Connection: Closed <html> <body> <h1>URL deleted.</h1> </body> </html>
CONNECT 方法
客户端使用它通过 HTTP 建立到 Web 服务器的网络连接。以下示例请求与在主机 tutorialspoint.com 上运行的 Web 服务器建立连接:
CONNECT www.tutorialspoint.com HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
与服务器建立连接,并将以下响应发送回客户端:
HTTP/1.1 200 Connection established Date: Mon, 27 Jul 2009 12:28:53 GMT Server: Apache/2.2.14 (Win32)
OPTIONS 方法
客户端使用它来找出 Web 服务器支持哪些 HTTP 方法和其他选项。客户端可以为 OPTIONS 方法指定 URL,或者使用星号 (*) 来引用整个服务器。以下示例请求列出在 tutorialspoint.com 上运行的 Web 服务器支持的方法:
OPTIONS * HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
服务器根据服务器的当前配置发送信息,例如:
HTTP/1.1 200 OK Date: Mon, 27 Jul 2009 12:28:53 GMT Server: Apache/2.2.14 (Win32) Allow: GET,HEAD,POST,OPTIONS,TRACE Content-Type: httpd/unix-directory
TRACE 方法
用于将 HTTP 请求的内容回显给请求者,这可以在开发时用于调试目的。以下示例显示了 TRACE 方法的用法:
TRACE / HTTP/1.1 Host: www.tutorialspoint.com User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
服务器将针对上述请求发送以下消息作为响应:
HTTP/1.1 200 OK Date: Mon, 27 Jul 2009 12:28:53 GMT Server: Apache/2.2.14 (Win32) Connection: close Content-Type: message/http Content-Length: 39 TRACE / HTTP/1.1 Host: www.tutorialspoint.com User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)