---
url: https://docs.ogmabox.com/th/app/search.md
description: ค้นหาทราฟฟิกและประเด็นที่ตรวจพบในโครงการ Ogma ด้วย HTTPQL และตัวกรองเนื้อหา
---

# ค้นหา {#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` | เป็นจริงเมื่อคำขอมีประเด็นที่ตรวจพบแนบอยู่อย่างน้อยหนึ่งรายการ |
| `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}

ค้นหาคำขอ POST ที่คืนข้อผิดพลาดในช่วง 500:

```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 สามารถสลับระหว่างแบบ Raw และจัดรูปแบบ คัดลอกส่วนหัวหรือเนื้อหา และเพิ่มประเด็นที่ตรวจพบได้โดยตรงจากแผงนี้

## AI ช่วยเหลือ {#ai-assist}

เมื่อกำหนดค่าผู้ให้บริการ AI แล้ว ให้คลิก **AI** ข้างช่องคิวรีเพื่ออธิบายสิ่งที่ต้องการค้นหาด้วยภาษาธรรมชาติ Ogma จะสร้างนิพจน์ HTTPQL ตรวจสอบคิวรีก่อนเรียกใช้

* "คำขอ POST ที่คืนข้อผิดพลาดของเซิร์ฟเวอร์" > `req.method.eq:POST AND resp.code.gte:500`
* "การตอบกลับที่ใหญ่กว่า 50 KB จากซับโดเมน API" > `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)
