# 401 Unauthorized vs 407 Proxy Authentication Required

> 401 Unauthorized vem do site, 407 do proxy. Como diferenciá-los em Python, curl e Node, e como corrigir cada um.

- URL: https://crawlrelay.com/pt/docs/errors/401-unauthorized/
- Última atualização: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

Código de status HTTP (4xx, erro do cliente): a mensagem exata em cada ferramenta, as causas prováveis em ordem, e o conserto que funciona.

**Resposta rápida — O que 401 Unauthorized vs 407 significa com um proxy?**

**Um 401 Unauthorized vem do site; um 407 vem do proxy.** Se você faz scraping via proxies residenciais CrawlRelay e recebe 401, o proxy aceitou você e o site está pedindo seu próprio login ou chave API. Credenciais do proxy não ajudam aí. Corrija 407 na URL do proxy e trate 401 conforme as regras do site para conteúdo protegido.

## 401 Unauthorized vs 407 de relance

| Atributo | Valor |
| --- | --- |
| Erro | 401 Unauthorized vs 407 |
| Tipo | Código de status HTTP (4xx, erro do cliente) |
| Enviado por | O site alvo, nunca o proxy |
| Definido em | RFC 9110, section 15.5.2 (compare 407: section 15.5.8) |
| Tentar novamente? | Não. Um 401 pede credenciais para o próprio site |
| Primeira verificação | Verifique qual servidor enviou: o site (401) ou o proxy (407) |

## O que 401 Unauthorized vs 407 significa?

RFC 9110 junta esses dois códigos. Um 401 traz um cabeçalho `WWW-Authenticate` e pede credenciais para o servidor de origem. Um 407 traz um cabeçalho `Proxy-Authenticate` e pede credenciais para o proxy. As respostas também vão em cabeçalhos diferentes: `Authorization` para o site e `Proxy-Authorization` para o proxy.

Confundir é comum porque ambos falam em 'autenticação'. O teste mais rápido é o código de status: 401 significa que você passou pelo proxy.

## Como a 401 aparece em Python, curl, Node.js e navegadores?

A mesma falha aparece de forma diferente em cada ferramenta. Estas são as mensagens para buscar nos seus logs:

- **Python requests:** `status_code == 401` com um cabeçalho `WWW-Authenticate` (site) versus `ProxyError` mencionando 407 (proxy)
- **curl:** `HTTP/2 401` depois de um `CONNECT` bem-sucedido (site) versus `CONNECT tunnel failed, response 407` (proxy)
- **APIs:** um corpo JSON como `{"message": "Unauthorized"}` ou mensagem de token inválido

## O que causa a 401?

Mais provável inicialmente:

- **A página ou API precisam de login ou chave.** O site, não o proxy, está pedindo.
- **Credenciais de proxy no lugar errado,** como um cabeçalho `Authorization` destinado ao proxy, rejeitado pelo site.
- **Cookie de sessão ou token expirado** em um fluxo multi-etapa.
- **Token ligado a IP ou região,** onde nova saída invalida o token.

## Como diagnosticar a 401 passo a passo?

1. Confirme o código: 401 é o site, 407 é o proxy.
2. Faça o teste com curl abaixo. Se aparecer `HTTP/1.1 200 Connection established` antes do 401, o proxy está ok.
3. Verifique se a mesma URL precisa de login no navegador normal.
4. Em fluxo multi-etapa, veja se o 401 começa quando o IP de saída muda.

*Teste a URL com erro usando curl (porta HTTP, modo verbose)*

```bash
# Use the URL that fails; with https://api.ipify.org instead, you test the gateway alone.
# "HTTP/1.1 200 Connection established" first, then the site's own status: the site answered.
curl -v -x http://USERNAME:PASSWORD@gw.crawlrelay.com:7777 https://TARGET_URL

# Same test through the SOCKS5 port, with DNS resolved at the exit
curl -v --socks5-hostname gw.crawlrelay.com:7778 --proxy-user USERNAME:PASSWORD https://TARGET_URL
```

## Como corrigir a 401?

- **Para problemas de proxy (407),** coloque credenciais na URL do proxy ou configurações do cliente, nunca no cabeçalho `Authorization`.
- **Para API pública que precisa de chave,** registre-se no site e envie a chave conforme documentação.
- **Para sessões ligadas a IP,** use sessão sticky para todo o fluxo.
- **Para conteúdo protegido por login,** confira os termos do site antes de automatizar. Scraping de contas alheias ou dados pessoais atrás de login está fora da Política de Uso Aceitável.

## Devo tentar novamente após a 401?

Não repita 401 cegamente. Ele pede algo que sua requisição não tem. Atualize o token ou sessão se houver, e tente uma vez. Repetidos 401 indicam que o conteúdo não é público ou seu acesso terminou.

## Como 401 Unauthorized vs 407 se aplica ao CrawlRelay?

Um proxy HTTP reporta seus próprios problemas de credencial com 407 ou túnel falhado, não com 401. Se você vê 401 via gateway CrawlRelay, sua requisição chegou no site, o que reduz rápido a origem do problema.

Gateway: `gw.crawlrelay.com`, porta 7777 (HTTP, HTTPS via CONNECT) e porta 7778 (SOCKS5). Formato do usuário: `USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}`. Relacionado: [407 Proxy Authentication Required](https://crawlrelay.com/pt/docs/errors/407-proxy-authentication-required/) · [403 Forbidden](https://crawlrelay.com/pt/docs/errors/403-forbidden/) · [Sessions guide](https://crawlrelay.com/pt/docs/sessions/).

## 401 Unauthorized vs 407: perguntas que desenvolvedores fazem

### Por que recebo 401 se a senha do proxy está correta?

Porque 401 é relativo ao site, não ao proxy. Seu login no proxy funcionou, e o site quer suas próprias credenciais, como chave API, cookie de login ou token. Veja a documentação do site. Se o conteúdo está atrás de login que você não tem direito, não automatize.

### Sessão sticky pode resolver erros 401?

Às vezes. Alguns sites associam sessão ou token ao IP que a gerou, então uma nova saída invalida o token e o site responde 401. Usar uma sessão sticky na sequência evita isso. Não ajuda quando o conteúdo pede credenciais que você não tem.

### Onde vão as credenciais de proxy em uma requisição HTTP?

No cabeçalho `Proxy-Authorization`, que seu cliente monta a partir da parte `user:password@` da URL do proxy. O site nunca vê esse cabeçalho, pois o proxy o remove. Credenciais do site vão no cabeçalho `Authorization` ou em cookie, que o proxy passa direto.

## Outros erros de proxy nesta referência

- [401 Unauthorized vs 407](https://crawlrelay.com/pt/docs/errors/401-unauthorized/)
- [403 Forbidden](https://crawlrelay.com/pt/docs/errors/403-forbidden/)
- [407 Proxy Authentication Required](https://crawlrelay.com/pt/docs/errors/407-proxy-authentication-required/)
- [429 Too Many Requests](https://crawlrelay.com/pt/docs/errors/429-too-many-requests/)
- [502 Bad Gateway](https://crawlrelay.com/pt/docs/errors/502-bad-gateway/)
- [503 Service Unavailable](https://crawlrelay.com/pt/docs/errors/503-service-unavailable/)
- [504 Gateway Timeout](https://crawlrelay.com/pt/docs/errors/504-gateway-timeout/)
- [Cannot connect to proxy (ProxyError)](https://crawlrelay.com/pt/docs/errors/cannot-connect-to-proxy/)
- [Connection reset by peer (ECONNRESET)](https://crawlrelay.com/pt/docs/errors/connection-reset/)
- [ERR_PROXY_CONNECTION_FAILED](https://crawlrelay.com/pt/docs/errors/err-proxy-connection-failed/)
- [ERR_TUNNEL_CONNECTION_FAILED](https://crawlrelay.com/pt/docs/errors/err-tunnel-connection-failed/)
- [Read timed out (ReadTimeout)](https://crawlrelay.com/pt/docs/errors/read-timeout/)
- [SOCKS5 proxy errors](https://crawlrelay.com/pt/docs/errors/socks5-proxy-errors/)
- [SSL: CERTIFICATE_VERIFY_FAILED](https://crawlrelay.com/pt/docs/errors/ssl-certificate-verify-failed/)
- [SSL: WRONG_VERSION_NUMBER](https://crawlrelay.com/pt/docs/errors/ssl-wrong-version-number/)

**Proxies residenciais com documentação que cobre os casos de falha** CrawlRelay proxies residenciais a partir de US$ 0,50/GB, tráfego que nunca expira. [Veja os preços](https://crawlrelay.com/pt/pricing/) · [Início rápido](https://crawlrelay.com/pt/docs/)

---

CrawlRelay: CrawlRelay é um serviço proxy residencial rotativo e proxies móveis 4G/5G para desenvolvedores, para scrapers e pipelines de dados de IA: tráfego pay-as-you-go que não expira a partir de US$ 0,50/GB, pago com cripto, sem upload de documento. Sem KYC — sem ID, sem selfie, sem documentos. Pague com cripto.
