---
url: https://docs.ogmabox.com/vi/app/match-replace.md
description: >-
  Tự động chỉnh sửa lưu lượng HTTP và WebSocket đã ghi nhận bằng quy tắc Tìm và
  thay thế của Ogma.
---

# Tìm và thay thế {#match-replace}

Tìm và thay thế tự động chỉnh sửa lưu lượng khi đi qua proxy, không tạm dừng hay yêu cầu thao tác thủ công trên từng yêu cầu.

## Cách hoạt động của quy tắc {#how-rules-work}

Mỗi quy tắc định nghĩa nội dung cần tìm và cách xử lý. Khi yêu cầu hoặc phản hồi khớp điều kiện, quy tắc áp dụng phép biến đổi ngay lập tức.

Quy tắc áp dụng theo thứ tự trong danh sách. Nếu hai quy tắc nhắm vào cùng một header, quy tắc khớp đầu tiên áp dụng trước, và các quy tắc sau nhìn thấy kết quả của thay đổi đó.

## Các trường của quy tắc {#rule-fields}

| Trường | Mô tả |
| --- | --- |
| Tên | Nhãn cho quy tắc. Dùng tên rõ nghĩa để nhận biết mục đích. |
| Hướng | Quy tắc áp dụng cho yêu cầu, phản hồi hay cả hai |
| Thao tác | Phép biến đổi cần thực hiện (xem bảng thao tác bên dưới) |
| Chế độ so khớp | Chuỗi nguyên văn, biểu thức chính quy hoặc toàn bộ nội dung, tùy thao tác |
| Giá trị tìm | Chuỗi hoặc mẫu cần tìm |
| Giá trị thay thế | Giá trị dùng để thay vào |
| Đã bật | Công tắc kích hoạt hoặc vô hiệu hóa quy tắc mà không xóa |
| Bộ lọc | Các điều kiện phương thức, máy chủ, đường dẫn và HTTPQL không bắt buộc để giới hạn nơi quy tắc áp dụng |

### Thao tác {#operations}

| Thao tác | Chức năng |
| --- | --- |
| Thêm header | Thêm header mới với tên và giá trị cố định |
| Xóa header | Xóa header theo tên |
| Thay thế header | Thay giá trị của header hiện có |
| Thay thế nội dung | Thay một phần nội dung bằng giá trị tìm |
| Đường dẫn / truy vấn / tham số truy vấn | Thay đổi đường dẫn yêu cầu hoặc giá trị truy vấn |
| Dòng yêu cầu / phản hồi | Thay đổi thành phần được chọn của dòng bắt đầu HTTP |
| Mã trạng thái | Thay đổi trạng thái phản hồi |
| Thông điệp thô | Biến đổi đồng thời dòng bắt đầu HTTP, header và nội dung |
| Payload WebSocket | Thay nội dung tin nhắn máy khách/máy chủ khớp điều kiện |
| Quy trình | Chạy quy trình Chuyển đổi đã bật trên nội dung được chọn |

## Chế độ so khớp {#match-modes}

**Chuỗi nguyên văn** khớp chuỗi chính xác. Dùng cho token cố định, tên header hoặc giá trị cụ thể.

**Biểu thức chính quy** so khớp bằng biểu thức chính quy. Dùng khi mục tiêu thay đổi - ví dụ để khớp token thay đổi theo từng phiên, hoặc bắt và dùng lại một nhóm trong giá trị thay thế.

Trong phép thay thế bằng biểu thức chính quy, dùng nhóm bắt với `$1`, `$2`, v.v. để tham chiếu các phần khớp trong giá trị thay thế.

**Toàn bộ** chuyển toàn bộ nội dung được chọn vào phép biến đổi thay vì tìm chuỗi con. Một số thao tác, như thêm/xóa header theo tên, dùng tên nguyên văn và không cung cấp tất cả chế độ.

## Biến đổi toàn bộ nội dung phản hồi {#transforming-a-complete-response-body}

1. Tạo và bật quy trình **Chuyển đổi**, rồi xác minh bằng đầu vào kiểm thử.
2. Tạo quy tắc Tìm và thay thế với hướng **Phản hồi** và thao tác **Quy trình (Nội dung)**.
3. Chọn chế độ so khớp **Toàn bộ** và chọn quy trình.
4. Thu hẹp quy tắc bằng bộ lọc HTTPQL, ví dụ:

```text
req.host.eq:"cdn.example.com" AND (req.path.cont:".js" OR resp.headers["Content-Type"].value.cont:"javascript")
```

Quy trình nhận toàn bộ nội dung; đầu ra của quy trình thay thế nội dung đó. **Quy trình (Header)** biến đổi một header theo tên, còn **Quy trình (Header thô)** biến đổi khối header. Các đầu vào này khác với nội dung phản hồi.

Bộ lọc HTTPQL được kiểm tra trong ngữ cảnh yêu cầu/phản hồi có sẵn. Quy tắc theo hướng yêu cầu không thể dựa vào phản hồi chưa đến. Tắt ghi nhật ký quy trình khi quy tắc tạo nhiều lượt chạy; bật tạm thời để chẩn đoán phép biến đổi.

## Sắp xếp lại quy tắc {#reordering-rules}

Kéo hàng quy tắc để đổi vị trí trong danh sách. Thứ tự có ý nghĩa khi các quy tắc chỉnh sửa các phần chồng lấn trong cùng yêu cầu hoặc phản hồi.

## Hỗ trợ AI {#ai-assist}

Nhấp **Điền bằng AI** trong trình chỉnh sửa quy tắc và mô tả điều bạn muốn thay đổi bằng ngôn ngữ tự nhiên. Ogma tạo các trường quy tắc dựa trên mô tả. Kiểm tra và điều chỉnh giá trị được tạo trước khi bật quy tắc.

Ví dụ các lời nhắc hiệu quả:

* "Xóa header X-Frame-Options khỏi tất cả phản hồi"
* "Thay giá trị header Authorization bằng token kiểm thử của tôi"
* "Thêm header tên X-Debug với giá trị true vào tất cả yêu cầu"

## Kiểm thử quy tắc {#testing-a-rule}

Trước khi bật quy tắc cho lưu lượng thực, hãy kiểm thử với một yêu cầu mẫu:

1. Mở trình chỉnh sửa quy tắc.
2. Dán yêu cầu HTTP thô vào bảng **Kiểm tra**.
3. Nhấp **Áp dụng quy tắc**. Bảng hiển thị kết quả và các quy tắc đã áp dụng.
4. Xác minh đầu ra đúng như mong đợi.
5. Bật quy tắc.

Bảng Kiểm tra cũng có mục tiêu **Phản hồi** với đầu vào trạng thái, header và nội dung. Kiểm tra danh sách quy tắc đã áp dụng: thao tác này kiểm thử các quy tắc có thể áp dụng, không chỉ một trường riêng lẻ trong trình chỉnh sửa.

## Tìm và thay thế và Chặn bắt {#match-replace-vs-intercept}

**Tìm và thay thế** hoạt động tự động. Khi quy tắc được bật, nó biến đổi mọi yêu cầu hoặc phản hồi khớp mà không cần bạn thao tác.

**Chặn bắt** tạm dừng lưu lượng và chờ quyết định thủ công. Dùng Chặn bắt khi thay đổi phù hợp phụ thuộc vào ngữ cảnh cần đánh giá theo từng yêu cầu. Dùng Tìm và thay thế khi cần áp dụng cùng một phép biến đổi mỗi lần mà không phải xem xét.

## Cách dùng phổ biến {#common-uses}

* Thay cookie phiên trên mọi yêu cầu để kiểm thử tài khoản khác.
* Thêm header bật chế độ gỡ lỗi hoặc quản trị.
* Xóa header bảo mật khỏi phản hồi để đánh giá hành vi phía máy khách.
* Thay máy chủ được viết cố định trong phản hồi chuyển hướng.
* Viết lại tiền tố đường dẫn yêu cầu.

## Trang liên quan {#related-pages}

* [Chặn bắt](./intercept.md)
* [Lịch sử HTTP](./http-history.md)
* [Quy trình](./workflows.md)
