---
url: https://docs.ogmabox.com/es/app/match-replace.md
description: >-
  Modifica automáticamente el tráfico HTTP y WebSocket capturado con las reglas
  de Buscar y reemplazar de Ogma.
---

# Buscar y reemplazar {#match-replace}

Buscar y reemplazar modifica automáticamente el tráfico a su paso por el proxy, sin pausarlo ni requerir una acción manual en cada solicitud.

## Cómo funcionan las reglas {#how-rules-work}

Cada regla define qué buscar y qué hacer con ello. Cuando una solicitud o respuesta coincide con las condiciones, la regla aplica su transformación inmediatamente.

Las reglas se aplican en el orden en que aparecen en la lista. Si dos reglas apuntan a la misma cabecera, la primera regla coincidente se aplica primero y las reglas posteriores ven el resultado de ese cambio.

## Campos de una regla {#rule-fields}

| Campo | Descripción |
| --- | --- |
| Nombre | Etiqueta de la regla. Utiliza un nombre descriptivo para identificar su propósito. |
| Dirección | Si la regla se aplica a solicitudes, respuestas o ambas |
| Operación | Qué transformación realizar (consulta la tabla de operaciones siguiente) |
| Modo de coincidencia | Literal, expresión regular o contenido completo, según la operación |
| Valor de búsqueda | La cadena o el patrón que se debe encontrar |
| Valor de reemplazo | El valor que se debe introducir como sustitución |
| Habilitada | Interruptor para activar o desactivar la regla sin eliminarla |
| Filtros | Condiciones opcionales de método, host, ruta y HTTPQL que limitan dónde se aplica la regla |

### Operaciones {#operations}

| Operación | Qué hace |
| --- | --- |
| Añadir cabecera | Añade una cabecera nueva con un nombre y un valor fijos |
| Eliminar cabecera | Elimina una cabecera por su nombre |
| Reemplazar cabecera | Sustituye el valor de una cabecera existente |
| Reemplazar cuerpo | Sustituye una parte del cuerpo utilizando el valor de búsqueda |
| Ruta / consulta / parámetro de consulta | Cambia la ruta de la solicitud o los valores de la consulta |
| Línea de solicitud / respuesta | Cambia el componente seleccionado de la línea inicial HTTP |
| Código de estado | Cambia el estado de una respuesta |
| Mensaje sin procesar | Transforma conjuntamente la línea inicial HTTP, las cabeceras y el cuerpo |
| Payload WebSocket | Sustituye el contenido coincidente de mensajes del cliente/servidor |
| Flujo de trabajo | Ejecuta un flujo de trabajo de Convertir habilitado sobre el contenido seleccionado |

## Modos de coincidencia {#match-modes}

**Literal** coincide con la cadena exacta. Utilízalo para tokens fijos, nombres de cabeceras o valores específicos.

**Expresión regular** busca coincidencias mediante una expresión regular. Utilízalo cuando el objetivo varíe: por ejemplo, para buscar un token que cambia en cada sesión o para capturar y reutilizar un grupo en el reemplazo.

En los reemplazos con expresiones regulares, utiliza grupos de captura con `$1`, `$2`, etc. para referenciar las partes coincidentes en el valor de reemplazo.

**Completo** pasa todo el contenido seleccionado a la transformación en lugar de buscar una subcadena. Algunas operaciones, como añadir o eliminar una cabecera con nombre, utilizan en su lugar un nombre literal y no ofrecen todos los modos.

## Transformar un cuerpo de respuesta completo {#transforming-a-complete-response-body}

1. Crea y habilita un flujo de trabajo de **Convertir** y valídalo con una entrada de prueba.
2. Crea una regla de Buscar y reemplazar con dirección **Respuesta** y operación **Flujo de trabajo (cuerpo)**.
3. Elige el modo de coincidencia **Completo** y selecciona el flujo de trabajo.
4. Restringe la regla con un filtro HTTPQL, por ejemplo:

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

El flujo de trabajo recibe el cuerpo entero; su salida sustituye ese cuerpo. **Flujo de trabajo (encabezado)** transforma una cabecera con nombre, mientras que **Flujo de trabajo (encabezados sin procesar)** transforma el bloque de cabeceras. Son entradas diferentes del cuerpo de respuesta.

Los filtros HTTPQL se comprueban en el contexto de solicitud/respuesta disponible. Una regla con dirección de solicitud no puede depender de una respuesta que aún no ha llegado. Desactiva el registro del flujo de trabajo cuando la regla genere muchas ejecuciones; actívalo temporalmente para diagnosticar una transformación.

## Cambiar el orden de las reglas {#reordering-rules}

Arrastra una fila de regla para cambiar su posición en la lista. El orden importa cuando las reglas modifican partes superpuestas de la misma solicitud o respuesta.

## Asistencia de IA {#ai-assist}

Haz clic en **Asistencia de IA** en el editor de reglas y describe en lenguaje natural lo que quieres cambiar. Ogma genera los campos de la regla a partir de tu descripción. Revisa y ajusta los valores generados antes de habilitarla.

Ejemplos de instrucciones que funcionan bien:

* "Elimina la cabecera X-Frame-Options de todas las respuestas"
* "Sustituye el valor de la cabecera Authorization por mi token de prueba"
* "Añade una cabecera llamada X-Debug con el valor true a todas las solicitudes"

## Probar una regla {#testing-a-rule}

Antes de habilitar una regla para tráfico real, pruébala con una solicitud de ejemplo:

1. Abre el editor de reglas.
2. Pega una solicitud HTTP sin procesar en el panel **Probar**.
3. Haz clic en **Aplicar reglas**. El panel muestra el resultado y qué reglas se aplicaron.
4. Verifica que la salida coincida con lo que esperas.
5. Habilita la regla.

El panel Prueba también tiene un destino **Respuesta** con entradas de estado, cabeceras y cuerpo. Comprueba la lista de reglas aplicadas: esto prueba las reglas aplicables, no solo un campo aislado del editor.

## Buscar y reemplazar frente a Intercepción {#match-replace-vs-intercept}

**Buscar y reemplazar** es automático. Una vez habilitada una regla, transforma cada solicitud o respuesta coincidente sin ninguna acción por tu parte.

**Intercepción** pausa el tráfico y espera una decisión manual. Utiliza Intercepción cuando el cambio adecuado dependa de un contexto que necesites evaluar en cada solicitud. Utiliza Buscar y reemplazar cuando la misma transformación deba aplicarse siempre sin revisión.

## Usos habituales {#common-uses}

* Sustituir una cookie de sesión en todas las solicitudes para probar otra cuenta.
* Añadir una cabecera que active un modo de depuración o administración.
* Eliminar cabeceras de seguridad de las respuestas para evaluar el comportamiento del cliente.
* Sustituir un host codificado de forma fija en respuestas de redirección.
* Reescribir un prefijo de ruta de solicitud.

## Páginas relacionadas {#related-pages}

* [Intercepción](./intercept.md)
* [Historial HTTP](./http-history.md)
* [Flujos de trabajo](./workflows.md)
