# 401 Unauthorized vs 407 Proxy Authentication Required

> 401 Unauthorized viene del sitio web, 407 del proxy. Cómo diferenciarlos en Python, curl y Node, y cómo reparar cada uno.

- URL: https://crawlrelay.com/es/docs/errors/401-unauthorized/
- Última actualización: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

Código de estado HTTP (4xx, error del cliente): el mensaje exacto en cada herramienta, las causas probables en orden y la solución que funciona.

**Respuesta rápida — ¿Qué significa 401 Unauthorized vs 407 con un proxy?**

**Un 401 Unauthorized viene del sitio web; un 407 viene del proxy.** Si haces scraping a través de proxies residenciales CrawlRelay y obtienes un 401, el proxy te aceptó y el sitio web está pidiendo su propio login o clave API. Las credenciales del proxy no ayudan ahí. Corrige el 407 en la URL del proxy y maneja el 401 según las reglas del sitio para su contenido protegido.

## 401 Unauthorized vs 407 en pocas palabras

| Atributo | Valor |
| --- | --- |
| Error | 401 Unauthorized vs 407 |
| Tipo | Código de estado HTTP (4xx, error del cliente) |
| Enviado por | El sitio web objetivo, nunca el proxy |
| Definido en | RFC 9110, section 15.5.2 (compare 407: section 15.5.8) |
| ¿Reintentar? | No. Un 401 solicita credenciales para el sitio web en sí |
| Primera comprobación | Revisa qué servidor lo envió: el sitio web (401) o el proxy (407) |

## ¿Qué significa 401 Unauthorized vs 407?

El RFC 9110 empareja ambos códigos. Un 401 lleva un encabezado `WWW-Authenticate` y pide credenciales para el servidor origen. Un 407 lleva un encabezado `Proxy-Authenticate` y pide credenciales para el proxy. Las respuestas van en distintos encabezados también: `Authorization` para el sitio y `Proxy-Authorization` para el proxy.

Confundirlos es común porque ambos mencionan 'autenticación'. La prueba más rápida es el código de estado: 401 significa que pasaste el proxy.

## ¿Cómo se ve a 401 en Python, curl, Node.js y navegadores?

El mismo fallo se muestra de forma diferente en cada herramienta. Estos son los mensajes que debes buscar en tus registros:

- **Python requests:** `status_code == 401` con un encabezado `WWW-Authenticate` (sitio web) contra un `ProxyError` que menciona 407 (proxy)
- **curl:** `HTTP/2 401` luego de un `CONNECT` exitoso (sitio web) contra un `CONNECT tunnel failed, response 407` (proxy)
- **APIs:** un cuerpo JSON como `{"message": "Unauthorized"}` o un mensaje de token inválido

## ¿Qué causa a 401?

Lo más probable al principio:

- **La página o API necesita login o clave.** El sitio, no el proxy, está solicitando.
- **Credenciales del proxy en lugar incorrecto,** como un encabezado `Authorization` destinado al proxy que el sitio rechaza.
- **Cookie de sesión o token expirado** en un flujo de varios pasos.
- **Token ligado a una IP o región,** así que una nueva salida lo invalida.

## ¿Cómo diagnostico a 401 paso a paso?

1. Confirma el código: 401 es el sitio, 407 es el proxy.
2. Ejecuta la prueba curl abajo. Si ves `HTTP/1.1 200 Connection established` antes del 401, el proxy está bien.
3. Verifica si la misma URL necesita login en un navegador normal.
4. En un flujo de varios pasos, revisa si el 401 comienza cuando cambia la IP de salida.

*Prueba la URL que falla con curl (puerto HTTP, modo detallado)*

```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
```

## ¿Cómo soluciono a 401?

- **Para problemas de proxy (407)**, coloca las credenciales en la URL del proxy o en la configuración del proxy del cliente, nunca en un encabezado `Authorization`.
- **Para una API pública que necesita clave**, regístrate en el sitio y envía su clave según lo documentado.
- **Para sesiones ligadas a una IP**, usa sesión sticky para todo el flujo.
- **Para contenido protegido por login**, revisa los términos del sitio antes de automatizar. Hacer scraping de cuentas que no posees o datos personales tras logins queda fuera de nuestra Política de Uso Aceptable.

## ¿Debo reintentar después de a 401?

No reintentes un 401 a ciegas. Pide algo que tu solicitud no tiene. Refresca el token o sesión si tu flujo tiene uno, y luego intenta una vez. Repetidos 401 indican que el contenido no es público o tu acceso terminó.

## ¿Cómo se aplica 401 Unauthorized vs 407 a CrawlRelay?

Un proxy HTTP reporta sus problemas de credenciales con 407 o un túnel fallido, no con 401. Si ves un 401 usando el gateway CrawlRelay, tu solicitud llegó al sitio web, lo que reduce rápidamente el problema.

Gateway: `gw.crawlrelay.com`, puerto 7777 (HTTP, HTTPS a través de CONNECT) y puerto 7778 (SOCKS5). Formato de usuario: `USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}`. Relacionado: [407 Proxy Authentication Required](https://crawlrelay.com/es/docs/errors/407-proxy-authentication-required/) · [403 Forbidden](https://crawlrelay.com/es/docs/errors/403-forbidden/) · [Guía de sesiones](https://crawlrelay.com/es/docs/sessions/).

## 401 Unauthorized vs 407: preguntas que hacen los desarrolladores

### ¿Por qué recibo un 401 si mi contraseña de proxy es correcta?

Porque el 401 es sobre el sitio web, no el proxy. Tu login de proxy funcionó, y el sitio quiere sus propias credenciales, como clave API, cookie de login o token. Revisa la documentación del sitio. Si el contenido está tras un login que no te corresponde, no lo automatices.

### ¿Puede una sesión sticky solucionar errores 401?

A veces. Algunos sitios atan una sesión o token a la IP que lo creó, así que una salida nueva invalida el token y el sitio responde 401. Mantener una sesión sticky para todo el flujo evitará eso. No sirve si el contenido necesita credenciales que no tienes.

### ¿Dónde van las credenciales del proxy en una solicitud HTTP?

En el encabezado `Proxy-Authorization`, que tu cliente construye desde la parte `user:password@` de la URL del proxy. El sitio nunca ve ese encabezado porque el proxy lo elimina. Las credenciales del sitio van en el encabezado `Authorization` o una cookie, que el proxy deja pasar sin tocar.

## Otros errores de proxy en esta referencia

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

**Proxies residenciales con documentación que cubre los casos de fallo** CrawlRelay proxies residenciales de 0,50 US$/GB, tráfico que nunca expira. [Ver precios](https://crawlrelay.com/es/pricing/) · [Inicio rápido](https://crawlrelay.com/es/docs/)

---

CrawlRelay: CrawlRelay es un servicio de proxies residenciales rotativos y proxies móviles 4G/5G para desarrolladores, ideal para scrapers y pipelines de datos de IA: tráfico prepago sin vencimiento desde 0,50 US$/GB, pagado con criptomonedas, sin subir documentos de identidad. Sin KYC — sin ID, sin selfie, sin documentos. Paga con criptomonedas.
