- 安全测试教程
- 安全测试 - 首页
- 安全测试 - 概述
- 安全测试 - 流程
- 安全测试 - 恶意软件
- HTTP 协议基础
- HTTPS 协议基础
- 编码和解码
- 安全测试 - 密码学
- 安全测试 - 同源策略
- 安全测试 - Cookie
- 黑客攻击 Web 应用程序
- 安全测试 - 注入
- 测试身份验证漏洞
- 测试跨站脚本攻击
- 不安全的直接对象引用
- 测试安全配置错误
- 测试敏感数据泄露
- 缺少函数级访问控制
- 跨站请求伪造
- 存在漏洞的组件
- 未经验证的重定向和转发
- 安全测试 - Ajax 安全
- 测试安全 - Web 服务
- 安全测试 - 缓冲区溢出
- 安全测试 - 拒绝服务
- 测试恶意文件执行
- 安全测试 - 自动化工具
- 安全测试有用资源
- 安全测试 - 快速指南
- 安全测试 - 有用资源
- 安全测试 - 讨论
安全测试 - HTTP 参数
HTTP 参数
这里我们将讨论一些重要的 HTTP 协议参数及其语法,这些参数在编写 HTTP 客户端或服务器程序时构建请求和响应消息时是必需的。在后续章节中,我们将在解释 HTTP 请求和响应的消息结构时,涵盖这些参数的完整用法。
HTTP 版本
HTTP 使用<主版本>.<次版本>编号方案来指示协议的版本。HTTP 消息的版本由第一行中的 HTTP-Version 字段指示。以下是指定 HTTP 版本号的一般语法:
HTTP-Version = "HTTP" "/" 1*DIGIT "." 1*DIGIT
示例
HTTP/1.0 or HTTP/1.1
统一资源标识符 (URI)
URI 只是一个格式化的、不区分大小写的字符串,包含名称、位置等信息以识别资源。例如,网站名称、Web 服务等。HTTP 使用的 URI 的一般语法如下:
URI = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]
这里,如果端口为空或未给出,则 HTTP 假设端口为 80,并且空绝对路径等效于“/”的绝对路径。除了保留和不安全集中的字符外,其他字符等效于其“%”HEX HEX”编码。
示例
以下三个 URI 等效:
http://abc.com:80/~smith/home.html http://ABC.com/%7Esmith/home.html http://ABC.com:/%7esmith/home.html
日期/时间格式
所有 HTTP 日期/时间戳必须以格林威治标准时间 (GMT) 表示,无一例外。HTTP 应用程序允许使用以下三种日期/时间戳表示形式中的任何一种:
Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123 Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036 Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format
字符集
您可以使用字符集来指定客户端首选的字符集。可以使用逗号分隔多个字符集。如果未指定值,则默认为 US-ASCII。
示例
以下字符集有效:
US-ASCII or ISO-8859-1 or ISO-8859-7
内容编码
内容编码值表示在通过网络传递内容之前,使用编码算法对内容进行编码。内容编码主要用于允许压缩文档或以其他有用的方式进行转换,而不会丢失身份。
所有内容编码值不区分大小写。HTTP/1.1 在 Accept-Encoding 和 Content-Encoding 标头字段中使用内容编码值。
示例
以下是有效的编码方案:
Accept-encoding: gzip or Accept-encoding: compress or Accept-encoding: deflate
媒体类型
HTTP 在Content-Type和Accept标头字段中使用 Internet 媒体类型,以便提供开放且可扩展的数据类型和类型协商。所有媒体类型值均在 Internet Assigned Number Authority ((IANA) 中注册。以下一般语法指定媒体类型:
media-type = type "/" subtype *( ";" parameter )
类型、子类型和参数属性名称不区分大小写。
示例
Accept: image/gif
语言标签
HTTP 在Accept-Language和Content-Language字段中使用语言标签。语言标签由 1 个或多个部分组成:一个主要语言标签和一个可能为空的子标签序列:
language-tag = primary-tag *( "-" subtag )
标签内不允许使用空格,所有标签都不区分大小写。
示例
示例标签包括:
en, en-US, en-cockney, i-cherokee, x-pig-latin
其中任何两个字母的主要标签都是 ISO-639 语言缩写,任何两个字母的初始子标签都是 ISO-3166 国家代码。