---
url: https://docs.ogmabox.com/zh/app/search.md
description: 使用 HTTPQL 和内容筛选条件搜索 Ogma 项目流量及安全发现。
---

# 搜索 {#search}

搜索查询当前项目中捕获的 HTTP 流量，包括超出当前已加载 HTTP 历史记录行范围的记录。

## 打开搜索 {#opening-search}

点击左侧导航中的**搜索**。输入结构化条件和/或 HTTPQL 表达式，然后点击**搜索**或按 Enter。输入只会更改条件，不会执行新的搜索。使用分页查看其他结果。

## HTTPQL 语法 {#httpql-syntax}

HTTPQL 是用于 HTTP 流量的结构化查询语言。它通过带类型的运算符匹配请求和响应字段。

### 字段 {#fields}

| 字段 | 匹配内容 |
|-------|---------|
| `req.host` | 请求主机名。 |
| `req.path` | 请求路径。 |
| `req.method` | HTTP 方法（GET、POST 等）。 |
| `req.body` | 请求体内容。 |
| `resp.code` | 响应状态码（整数）。 |
| `resp.len` | 响应体长度，单位为字节（整数）。 |
| `resp.body` | 响应体内容。 |
| `resp.header["Name"].value` | 指定响应头的值。 |
| `req.header["Name"].value` | 指定请求头的值。 |
| `req.has_finding` | 请求至少附有一个安全发现时为 true。 |
| `req.tag` | 应用于请求的标签字符串。 |

### 运算符 {#operators}

| 运算符 | 适用类型 | 含义 |
|----------|-----------|---------|
| `eq` | 字符串、整数 | 精确匹配。 |
| `ne` | 字符串、整数 | 不等于。 |
| `cont` | 字符串 | 包含子字符串。 |
| `ncont` | 字符串 | 不包含子字符串。 |
| `regex` | 字符串 | 匹配正则表达式。 |
| `gt` | 整数 | 大于。 |
| `gte` | 整数 | 大于或等于。 |
| `lt` | 整数 | 小于。 |
| `lte` | 整数 | 小于或等于。 |
| `exists` | 头部 | 头部存在。 |

### 组合表达式 {#combining-expressions}

使用 `AND` 和 `OR` 组合条件。括号控制优先级。使用 `ne` 或 `ncont` 等否定运算符排除匹配项。

```text
(req.method.eq:POST OR req.method.eq:PUT) AND resp.code.gte:500
```

## 查询示例 {#example-queries}

查找返回 500 范围错误的 POST 请求：

```text
req.method.eq:POST AND resp.code.gte:500
```

查找带有 Authorization 请求头的请求：

```text
req.header["Authorization"].value.exists
```

查找来自特定主机的大型响应：

```text
req.host.eq:api.example.com AND resp.len.gt:100000
```

查找标记为需要跟进的请求：

```text
req.tag.eq:followup
```

查找所有附有安全发现的请求：

```text
req.has_finding.eq:true
```

查找响应体包含已知错误字符串的请求：

```text
resp.body.cont:"stack trace"
```

## 已保存的搜索 {#saved-searches}

使用 HTTPQL 输入旁的**固定**，保留常用查询以便快速复用。选择固定查询即可应用；不再需要时移除其标签。查询历史也有助于复用近期表达式。

搜索标签页允许你在本次访问期间比较独立查询。它们不是持久保存的搜索。需要可导出和导入的具名结构化预设时，使用[筛选器页面](./filters.md)。

## 检查结果 {#inspecting-results}

点击结果表中的任意行，在检查面板中打开请求和响应。该检查器与 HTTP 历史记录中的视图相同：可以切换原始和格式化视图、复制头部或消息体，并直接从此面板添加安全发现。

## AI 辅助 {#ai-assist}

配置 AI 服务商后，点击查询输入旁的 **AI**，用自然语言描述想要查找的内容。Ogma 会生成 HTTPQL 表达式。运行前请检查查询。

* “返回服务器错误的 POST 请求” > `req.method.eq:POST AND resp.code.gte:500`
* “来自 API 子域、大小超过 50 KB 的响应” > `req.host.cont:api AND resp.len.gt:51200`
* “附有安全发现的请求” > `req.has_finding.eq:true`

## 相关页面 {#related-pages}

* [HTTPQL 与 StreamQL](../reference/httpql.md)
* [HTTP 历史记录](./http-history.md)
* [筛选器](./filters.md)
