---
url: https://docs.ogmabox.com/zh-Hant/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)
