> For the complete documentation index, see [llms.txt](https://developers.oxylabs.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.oxylabs.io/products/es/proxies/residential-proxies/protocols.md).

# Protocolos

Explora los protocolos compatibles de Residential Proxies y aprende a configurar conexiones HTTP, HTTPS, HTTPS/3 y SOCKS5.

compatibilidad con Oxylabs Residential Proxies `HTTP`, `HTTPS`, `HTTP/3`, y `SOCKS5` protocolos de conexión. Puede elegir el protocolo que mejor se adapte a su stack de scraping, biblioteca HTTP o software de terceros.

<table><thead><tr><th width="93">Protocolo</th><th width="247">Puerta de enlace</th><th width="114">Transporte</th><th>Descripción</th></tr></thead><tbody><tr><td><a href="#http-protocol"><strong>HTTP</strong></a></td><td><code>pr.oxylabs.io:7777</code></td><td>TCP</td><td>Método de conexión predeterminado compatible con todas las bibliotecas y herramientas.</td></tr><tr><td><a href="#https-protocol"><strong>HTTPS</strong></a></td><td><code>https://pr.oxylabs.io:7777</code></td><td>TCP / SSL</td><td>Conexión totalmente cifrada a la puerta de enlace del proxy.</td></tr><tr><td><a href="#http-3-protocol"><strong>HTTP/3</strong></a></td><td><code>socks.pr.oxylabs.io:7777</code></td><td>UDP / QUIC</td><td>Requiere un proxy SOCKS5 con compatibilidad con UDP.</td></tr><tr><td><a href="#socks5-protocol"><strong>SOCKS5</strong></a></td><td><code>socks5h://pr.oxylabs.io:7777</code></td><td>TCP / UDP</td><td>Proxy de bajo nivel. Requiere indicadores de nombre de usuario para geo-targeting.</td></tr></tbody></table>

## HTTP

El protocolo estándar `HTTP` es el método de conexión principal para Oxylabs Residential Proxies, compatible de forma nativa con todas las bibliotecas cliente HTTP, frameworks de web scraping y herramientas de terceros.

#### Ejemplos de código

{% tabs %}
{% tab title="cURL" %}

```bash
curl -x pr.oxylabs.io:7777 -U "customer-USERNAME:PASSWORD" https://ip.oxylabs.io/location
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

proxies = {
    'http': 'http://customer-USERNAME:PASSWORD@pr.oxylabs.io:7777',
    'https': 'http://customer-USERNAME:PASSWORD@pr.oxylabs.io:7777',
}

response = requests.get('https://ip.oxylabs.io/location', proxies=proxies)
print(response.text)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
$username = 'USERNAME';
$password = 'PASSWORD';
$proxy = 'pr.oxylabs.io:7777';

$query = curl_init('https://ip.oxylabs.io/location');
curl_setopt($query, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($query, CURLOPT_PROXY, "http://$proxy");
curl_setopt($query, CURLOPT_PROXYUSERPWD, "customer-$username:$password");
$output = curl_exec($query);
curl_close($query);
echo $output;
?>
```

{% endtab %}
{% endtabs %}

## HTTPS

Conexión mediante `HTTPS` proporciona una conexión SSL cifrada de extremo a extremo al nodo de entrada del proxy. Para habilitar el proxy HTTPS, agregue `https://` a su punto de entrada del proxy (p. ej., `https://pr.oxylabs.io:7777`). Lo mismo aplica al usar `HTTPS` con [nodos de entrada específicos por país](/products/es/proxies/residential-proxies/location-settings.md#country-specific-entry-nodes).

{% hint style="info" %}
Verifique que su `HTTP` biblioteca cliente específica o herramienta de terceros admita `HTTPS` protocolo antes de usarlo, ya que las herramientas heredadas pueden usar de forma predeterminada conexiones de proxy no cifradas `HTTP` .
{% endhint %}

#### Ejemplos de código

{% tabs %}
{% tab title="cURL" %}

```bash
curl -x https://pr.oxylabs.io:7777 -U "customer-USERNAME:PASSWORD" https://ip.oxylabs.io/location
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

proxies = {
    'http': 'https://customer-USERNAME:PASSWORD@pr.oxylabs.io:7777',
    'https': 'https://customer-USERNAME:PASSWORD@pr.oxylabs.io:7777',
}

response = requests.get('https://ip.oxylabs.io/location', proxies=proxies)
print(response.text)
```

{% endtab %}

{% tab title="Node.js (axios)" %}

```javascript
const axios = require('axios');

axios.get('https://ip.oxylabs.io/location', {
  proxy: {
    protocol: 'https',
    host: 'pr.oxylabs.io',
    port: 7777,
    auth: {
      username: 'customer-USERNAME',
      password: 'PASSWORD'
    }
  }
})
.then(response => console.log(response.data))
.catch(error => console.error(error));
```

{% endtab %}
{% endtabs %}

## **HTTP/3 (MASQUE)**

{% hint style="warning" %}
**Nota:** `Google` es un destino restringido para usar con `UDP` conexión.
{% endhint %}

Oxylabs Residential Proxies admiten túnel nativo `UDP` y `HTTP/3` mediante MASQUE ([RFC 9298 CONNECT-UDP](https://www.rfc-editor.org/rfc/rfc9298.html)).

Los Proxies tradicionales fuerzan el tráfico a través de `TCP` conexiones (a través de `HTTP CONNECT` o `SOCKS5`), lo que provoca `HTTP/3` que las solicitudes se degraden a `HTTP/1.1` o `HTTP/2`. MASQUE mantiene una `QUIC` conexión de extremo a extremo a través de nuestros nodos de salida residenciales, permitiendo que su cliente transmita tráfico nativo `UDP` directamente a destinos objetivo modernos.

El servicio MASQUE se ejecuta sobre `QUIC` en un `UDP` puerto:

```
masque.oxylabs.io:50000
```

{% hint style="info" %}
**Nota:** Asegúrese de que su firewall permita tráfico saliente `UDP` en el puerto `50000`.
{% endhint %}

### Casos de uso <a href="#use-cases" id="use-cases"></a>

* **Web scraping nativo con HTTP/3:** Extraiga sitios web de destino modernos sin activar señales de degradación del protocolo.
* **Resolución DNS sobre UDP:** Ejecute consultas DNS directas (`53/udp`) a través de IP residenciales.
* **Protocolos UDP en tiempo real:** Dirija tráfico WebRTC, SIP o de juegos que requiera una conexión UDP real.

{% hint style="info" %}
**Nota:** Si su aplicación de scraping solo necesita conexiones estándar `HTTP` o `HTTPS` (`TCP`) conexiones, use nuestro endpoint principal de backconnect (`pr.oxylabs.io:7777`). MASQUE introduce `QUIC` sobrecarga de configuración de conexión que solo es necesaria cuando necesita `UDP` o nativo `HTTP/3` transporte.
{% endhint %}

### Configuración de MASQUE <a href="#masque-setup" id="masque-setup"></a>

**Para la configuración completa, los detalles de configuración y autenticación, consulte la guía técnica de configuración a continuación.**

<details>

<summary><strong>Configuración y ajustes de MASQUE</strong></summary>

<table data-header-hidden><thead><tr><th width="164"></th><th width="218"></th><th></th></tr></thead><tbody><tr><td><strong>Proxy Endpoint</strong></td><td><code>masque.oxylabs.io:50000</code></td><td>Nodo de entrada QUIC dedicado</td></tr><tr><td><strong>Transporte</strong></td><td><code>HTTP/3</code> sobre <code>QUIC</code></td><td>Usa el puerto UDP <code>50000</code></td></tr><tr><td><strong>ALPN</strong></td><td><code>h3</code></td><td>cadena de negociación de protocolo de capa de aplicación</td></tr><tr><td><strong>Compatibilidad con datagramas</strong></td><td><code>EnableDatagrams: true</code></td><td>Debe habilitarse en la configuración QUIC de su cliente</td></tr><tr><td><strong>Tamaño máximo del datagrama</strong></td><td><code>1500</code> bytes</td><td>Los datagramas que superan 1500 bytes se descartan por el proxy</td></tr><tr><td><strong>Verificación TLS</strong></td><td>CA pública estándar</td><td>No se requieren certificados CA personalizados ni anulaciones</td></tr></tbody></table>

### Configuración del endpoint y formatos de URI <a href="#endpoint-configuration-and-uri-formats" id="endpoint-configuration-and-uri-formats"></a>

Para establecer un túnel, su cliente envía una `CONNECT` solicitud con `:protocol = connect-udp` al listener del proxy:

* **Estándar RFC 9298 (Recomendado):** `https://masque.oxylabs.io:50000/.well-known/masque/udp/{target_host}/{target_port}/`
* **Formato de consulta heredado:** `https://masque.oxylabs.io:50000/masque?h={target_host}&p={target_port}`

**Nombres de host e IP:** El proxy resuelve los nombres de host por usted a través del nodo de salida residencial. Puede pasar nombres de dominio (`example.com`) o direcciones IP (`1.2.3.4`). Las direcciones IPv6 deben codificarse con porcentajes (p. ej., `2001%3Adb8%3A%3A1`).

### Autenticación <a href="#authentication" id="authentication"></a>

La autenticación se gestiona mediante **autenticación básica HTTP** usando el `Proxy-Authorization` encabezado enviado en la `CONNECT-UDP` solicitud:

```bash
Proxy-Authorization: Basic Base64(customer-USERNAME[-key-value]:PASSWORD)
```

Usa sus credenciales de proxy estándar de Oxylabs. [Ajustes de ubicación](/products/es/proxies/residential-proxies/location-settings.md) y [parámetros de sesión](/products/es/proxies/residential-proxies/session-control.md) funcionan de forma idéntica a las configuraciones estándar de `HTTP/HTTPS` Proxies. Por ejemplo:

```bash
Proxy-Authorization: Basic customer-myuser-cc-us-sessid-abc123:PASSWORD
```

### QUIC anidado y tamaño de paquete <a href="#nested-quic-and-packet-size" id="nested-quic-and-packet-size"></a>

Cuando se usa HTTP/3 a través de MASQUE, una segunda pila QUIC se ejecuta sobre el túnel del proxy (*QUIC anidado)*. La conexión externa (*cliente a proxy*) encapsula los paquetes de la conexión interna (*cliente a destino*), añadiendo *\~*&#x34;0 bytes de sobrecarga de encapsulado de protocolo.

{% hint style="danger" %}
Debe configurar manualmente los tamaños de paquete y desactivar Path MTU Discovery (PMTUD) en ambas pilas QUIC del cliente. Si se omite, el paquete inicial del handshake interno superará los límites del datagrama externo y el proxy lo descartará silenciosamente, lo que hará que la conexión quede bloqueada indefinidamente.
{% endhint %}

Para configurar correctamente su conexión, ajuste lo siguiente:

1. **Desactive PMTUD:** Desactive Path MTU Discovery en las conexiones QUIC externa e interna para aplicar límites de paquete fijos.
2. **QUIC externo (cliente a proxy):** Establezca el tamaño inicial/máximo de paquete en `1392` bytes.
3. **QUIC interno (cliente a destino):** Establezca el tamaño inicial/máximo de paquete en `1352` bytes.

{% hint style="info" %}
La diferencia de \~40 bytes admite encabezados QUIC externos, etiquetas de cifrado AEAD, encabezados de trama DATAGRAM, encapsulado HTTP-datagram según RFC 9297 e IDs de contexto CONNECT-UDP según RFC 9298.
{% endhint %}

### Códigos de estado de respuesta <a href="#response-status-codes" id="response-status-codes"></a>

<table><thead><tr><th width="80">Código</th><th width="260">Estado</th><th>Descripción</th></tr></thead><tbody><tr><td><code>200</code></td><td><code>OK</code></td><td>Túnel establecido. Los datagramas UDP ya pueden fluir en la secuencia de solicitudes.</td></tr><tr><td><code>400</code></td><td><code>Solicitud incorrecta</code></td><td>URI de destino con formato incorrecto o parámetros de solicitud no válidos.</td></tr><tr><td><code>407</code></td><td><code>Se requiere autenticación del proxy</code></td><td>Falló la autenticación o se alcanzó el límite de tráfico de la cuenta.</td></tr></tbody></table>

</details>

## SOCKS5

compatibilidad con Oxylabs Residential Proxies `SOCKS5` conexiones sobre `TCP` y `UDP`.&#x20;

{% hint style="info" %}
La conexión SOCKS5 admite tanto `socks5h://` y `socks5://`:&#x20;

* `socks5h` envía el nombre de host
* `socks5` envía la IP resuelta
  {% endhint %}

Para una `SOCKS5` conexión estándar, use `socks5h://` con su cadena de conexión:

```
socks5h://pr.oxylabs.io:7777
```

{% hint style="warning" %}

* `SOCKS5` Google Chrome no admite la autenticación de proxy. Use Mozilla Firefox o clientes HTTP en su lugar.
* Algunos sitios web de destino pueden identificar el tráfico de proxy usando `SOCKS5`. Si encuentra errores de conexión, cambie a `HTTP` o `HTTPS`.
* `SOCKS5` Las conexiones no admiten puntos de entrada específicos por país (p. ej., `de-pr.oxylabs.io`) y la localización debe usarse mediante [parámetros de ubicación](/products/es/proxies/residential-proxies/location-settings.md).
* `Google` es un destino restringido para usar con `UDP` conexión.
  {% endhint %}

#### Ejemplos de código

{% tabs %}
{% tab title="cURL" %}

```bash
curl -x socks5h://pr.oxylabs.io:7777 -U "customer-USERNAME-cc-FR:PASSWORD" https://ip.oxylabs.io/location
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

proxies = {
    'http': 'socks5h://customer-USERNAME-cc-FR:PASSWORD@pr.oxylabs.io:7777',
    'https': 'socks5h://customer-USERNAME-cc-FR:PASSWORD@pr.oxylabs.io:7777'
}

response = requests.get('https://ip.oxylabs.io/location', proxies=proxies)
print(response.text)
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
$username = 'USERNAME';
$password = 'PASSWORD';
$country = 'FR';
$proxy = 'pr.oxylabs.io:7777';

$query = curl_init('https://ip.oxylabs.io/location');
curl_setopt($query, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($query, CURLOPT_PROXY, "socks5h://$proxy");
curl_setopt($query, CURLOPT_PROXYUSERPWD, "customer-$username-cc-$country:$password");
$output = curl_exec($query);
curl_close($query);
echo $output;
?>
```

{% endtab %}
{% endtabs %}

## Puertos de destino del proxy permitidos

La configuración predeterminada de los puertos de proxy incluye `80` y `443`, diseñada para admitir `HTTP` y `HTTPS` protocolos estándar. `HTTP/3 (MASQUE)` funciona en el puerto UDP `50000`.&#x20;

| Protocolo         | Transporte | Puerto  |
| ----------------- | ---------- | ------- |
| `HTTP`            | TCP        | `80`    |
| `HTTPS`           | TCP        | `443`   |
| `HTTP/3 (MASQUE)` | UDP        | `50000` |

Para acceder a otros puertos, es necesario pasar una verificación de cumplimiento; póngase en contacto con nuestro [**soporte**](mailto:support@oxylabs.io).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://developers.oxylabs.io/products/es/proxies/residential-proxies/protocols.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
