> 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/pt-br/proxies/residential-proxies/protocols.md).

# Protocolos

Explore os protocolos compatíveis de Residential Proxy e aprenda a configurar conexões HTTP, HTTPS, HTTPS/3 e SOCKS5.

suporte a Oxylabs Residential Proxies `HTTP`, `HTTPS`, `HTTP/3`, e `SOCKS5` protocolos de conexão. Você pode escolher o protocolo que melhor se adapta à sua pilha de scraping, biblioteca HTTP ou software de terceiros.

<table><thead><tr><th width="93">Protocolo</th><th width="247">Gateway</th><th width="114">Transporte</th><th>Descrição</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 conexão padrão suportado por todas as bibliotecas e ferramentas.</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>Conexão totalmente criptografada com o gateway do 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>Requer um proxy SOCKS5 com suporte a 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 baixo nível. Requer flags de username para segmentação geográfica.</td></tr></tbody></table>

## HTTP

O padrão `HTTP` protocolo é o principal método de conexão para Oxylabs Residential Proxies, com suporte nativo em todas as bibliotecas de cliente HTTP, frameworks de web scraping e ferramentas de terceiros.

#### Exemplos 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

Conectando via `HTTPS` fornece uma conexão SSL criptografada de ponta a ponta com o nó de entrada do proxy. Para habilitar o proxying HTTPS, adicione `https://` ao seu ponto de entrada do proxy (por exemplo, `https://pr.oxylabs.io:7777`). O mesmo se aplica ao usar `HTTPS` com [nós de entrada específicos por país](/products/pt-br/proxies/residential-proxies/location-settings.md#country-specific-entry-nodes).

{% hint style="info" %}
Verifique se o seu `HTTP` biblioteca cliente ou ferramenta de terceiros suporta `HTTPS` protocolo antes de usar, pois ferramentas legadas podem usar por padrão conexões de proxy não criptografadas `HTTP` conexões de proxy.
{% endhint %}

#### Exemplos 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" %}
**Observação:** `Google` é um destino restrito para uso com `UDP` conexão.
{% endhint %}

Oxylabs Residential Proxies oferecem suporte nativo a `UDP` e `HTTP/3` tunelamento via MASQUE ([RFC 9298 CONNECT-UDP](https://www.rfc-editor.org/rfc/rfc9298.html)).

Proxies tradicionais forçam o tráfego através de `TCP` conexões (via `HTTP CONNECT` ou `SOCKS5`), fazendo com que `HTTP/3` as requisições sejam rebaixadas para `HTTP/1.1` ou `HTTP/2`. MASQUE mantém uma conexão de ponta a ponta `QUIC` através dos nossos nós de saída residenciais, permitindo que seu cliente transmita tráfego nativo `UDP` diretamente para destinos-alvo modernos.

O serviço MASQUE roda sobre `QUIC` em uma `UDP` porta dedicada:

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

{% hint style="info" %}
**Observação:** Garanta que seu firewall permita tráfego de saída `UDP` na porta `50000`.
{% endhint %}

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

* **Web scraping nativo em HTTP/3:** Raspe sites-alvo modernos sem acionar sinais de downgrade de protocolo.
* **Resolução de DNS via UDP:** Execute consultas DNS diretas (`53/udp`) via IPs residenciais.
* **Protocolos UDP em tempo real:** Roteie tráfego WebRTC, SIP ou de jogos que exija uma conexão UDP real.

{% hint style="info" %}
**Observação:** Se sua aplicação de scraping só precisa de `HTTP` ou `HTTPS` (`TCP`) conexões, use nosso endpoint principal de backconnect (`pr.oxylabs.io:7777`). MASQUE introduz `QUIC` sobrecarga de configuração de conexão que só é necessária quando você precisa de `UDP` ou nativo `HTTP/3` transporte.
{% endhint %}

### Configuração do MASQUE <a href="#masque-setup" id="masque-setup"></a>

**Para a configuração completa, detalhes de configuração e autenticação, veja o guia técnico de configuração abaixo.**

<details>

<summary><strong>Setup e configuração do 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>Nó de entrada QUIC dedicado</td></tr><tr><td><strong>Transporte</strong></td><td><code>HTTP/3</code> sobre <code>QUIC</code></td><td>Usa a porta UDP <code>50000</code></td></tr><tr><td><strong>ALPN</strong></td><td><code>h3</code></td><td>string de negociação de protocolo na camada de aplicação</td></tr><tr><td><strong>Suporte a datagramas</strong></td><td><code>EnableDatagrams: true</code></td><td>Deve ser habilitado na configuração QUIC do seu cliente</td></tr><tr><td><strong>Tamanho máximo do datagrama</strong></td><td><code>1500</code> bytes</td><td>Datagramas com mais de 1500 bytes são descartados pelo proxy</td></tr><tr><td><strong>Verificação de TLS</strong></td><td>CA pública padrão</td><td>Nenhum certificado CA personalizado ou substituição é necessário</td></tr></tbody></table>

### Configuração do endpoint e formatos de URI <a href="#endpoint-configuration-and-uri-formats" id="endpoint-configuration-and-uri-formats"></a>

Para estabelecer um túnel, seu cliente envia um `CONNECT` requisição com `:protocol = connect-udp` para o listener do proxy:

* **Padrão RFC 9298 (recomendado):** `https://masque.oxylabs.io:50000/.well-known/masque/udp/{target_host}/{target_port}/`
* **Formato de consulta legado:** `https://masque.oxylabs.io:50000/masque?h={target_host}&p={target_port}`

**Hostnames e IPs:** O proxy resolve nomes de host em seu nome por meio do nó de saída residencial. Você pode passar nomes de domínio (`example.com`) ou endereços IP (`1.2.3.4`). Endereços IPv6 devem ser codificados em percent-encoding (por exemplo, `2001%3Adb8%3A%3A1`).

### Autenticação <a href="#authentication" id="authentication"></a>

A autenticação é tratada via standard **autenticação HTTP Basic** usando o `Proxy-Authorization` cabeçalho enviado na `CONNECT-UDP` requisição:

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

Você usa suas credenciais padrão de proxy da Oxylabs. [Configurações de localização](/products/pt-br/proxies/residential-proxies/location-settings.md) e [parâmetros de sessão](/products/pt-br/proxies/residential-proxies/session-control.md) funcionam de forma idêntica a `HTTP/HTTPS` proxies. Por exemplo:

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

### QUIC aninhado e tamanho do pacote <a href="#nested-quic-and-packet-size" id="nested-quic-and-packet-size"></a>

Ao usar HTTP/3 via MASQUE, uma segunda pilha QUIC roda sobre o túnel do proxy (*QUIC aninhado)*. A conexão externa (*cliente-para-proxy*) encapsula pacotes da conexão interna (*cliente-para-destino*), adicionando *\~*&#x34;0 bytes de sobrecarga de enquadramento do protocolo.

{% hint style="danger" %}
Você deve configurar manualmente os tamanhos dos pacotes e desativar o Path MTU Discovery (PMTUD) em ambas as pilhas QUIC do cliente. Se isso for ignorado, o pacote inicial do handshake interno excederá os limites do datagrama externo e será descartado silenciosamente pelo proxy, fazendo a conexão travar indefinidamente.
{% endhint %}

Para configurar sua conexão corretamente, ajuste o seguinte:

1. **Desative o PMTUD:** Desative o Path MTU Discovery em ambas as conexões QUIC externa e interna para impor limites fixos de pacotes.
2. **QUIC externo (cliente para proxy):** Defina o tamanho inicial/máximo do pacote para `1392` bytes.
3. **QUIC interno (cliente para destino):** Defina o tamanho inicial/máximo do pacote para `1352` bytes.

{% hint style="info" %}
A diferença de \~40 bytes comporta os cabeçalhos QUIC externos, tags de criptografia AEAD, cabeçalhos de frame DATAGRAM, enquadramento de HTTP-datagram sob a RFC 9297 e IDs de contexto CONNECT-UDP sob a RFC 9298.
{% endhint %}

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

<table><thead><tr><th width="80">Código</th><th width="260">Status</th><th>Descrição</th></tr></thead><tbody><tr><td><code>200</code></td><td><code>OK</code></td><td>Túnel estabelecido. Os datagramas UDP agora podem fluir no fluxo da requisição.</td></tr><tr><td><code>400</code></td><td><code>Requisição inválida</code></td><td>URI de destino malformada ou parâmetros de requisição inválidos.</td></tr><tr><td><code>407</code></td><td><code>Autenticação de proxy necessária</code></td><td>Falha na autenticação ou limite de tráfego da conta atingido.</td></tr></tbody></table>

</details>

## SOCKS5

suporte a Oxylabs Residential Proxies `SOCKS5` conexões via `TCP` e `UDP`.&#x20;

{% hint style="info" %}
A conexão SOCKS5 suporta ambos `socks5h://` e `socks5://`:&#x20;

* `socks5h` passa o hostname
* `socks5` passa o IP resolvido
  {% endhint %}

Para uma conexão `SOCKS5` padrão, use `socks5h://` com sua string de conexão:

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

{% hint style="warning" %}

* `SOCKS5` A autenticação de proxy não é suportada pelo Google Chrome. Use o Mozilla Firefox ou clientes HTTP em vez disso.
* Alguns sites-alvo podem identificar tráfego de proxy usando `SOCKS5`. Se você encontrar erros de conexão, mude para `HTTP` ou `HTTPS`.
* `SOCKS5` as conexões não suportam pontos de entrada específicos por país (por ex. `de-pr.oxylabs.io`) e a localização deve ser usada por meio de [parâmetros de localização baseados em username](/products/pt-br/proxies/residential-proxies/location-settings.md).
* `Google` é um destino restrito para uso com `UDP` conexão.
  {% endhint %}

#### Exemplos 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 %}

## Portas de destino de proxy permitidas

A configuração padrão das portas de proxy inclui `80` e `443`, projetada para acomodar `HTTP` e `HTTPS` protocolos. `HTTP/3 (MASQUE)` opera na porta UDP `50000`.&#x20;

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

Para acessar outras portas, é necessário passar por verificação de conformidade, entre em contato com nosso [**suporte**](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/pt-br/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.
