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