Jawaban cepat
Apa arti 401 Unauthorized vs 407 dengan proxy?
401 Unauthorized berasal dari situs; 407 berasal dari proxy. Jika Anda scrape lewat proxy residential CrawlRelay dan dapat 401, proxy menerima Anda dan situs meminta login atau API key-nya sendiri. Kredensial proxy tidak membantu. Perbaiki 407 di URL proxy Anda, dan tangani 401 sesuai aturan situs untuk konten terlindungnya.
401 Unauthorized vs 407 sekilas
| Kesalahan | 401 Unauthorized vs 407 |
|---|---|
| Tipe | Kode status HTTP (4xx, kesalahan klien) |
| Dikirim oleh | Situs target, bukan proxy |
| Didefinisikan dalam | RFC 9110, section 15.5.2 (compare 407: section 15.5.8) |
| Mencoba lagi? | Tidak. 401 meminta kredensial untuk situs itu sendiri |
| Periksa pertama | Cek server mana yang mengirimnya: situs (401) atau proxy (407) |
Apa arti 401 Unauthorized vs 407?
RFC 9110 menggabungkan dua kode ini. 401 membawa header WWW-Authenticate dan meminta kredensial untuk server asal. 407 membawa header Proxy-Authenticate dan meminta kredensial untuk proxy. Jawabannya juga ada di header berbeda: Authorization untuk situs dan Proxy-Authorization untuk proxy.
Sering tertukar karena keduanya menyebut 'authentication'. Tes tercepat adalah kode status: 401 berarti Anda lolos proxy.
Seperti apa a 401 dalam Python, curl, Node.js, dan browser?
Kegagalan yang sama dicetak berbeda di setiap alat. Ini adalah pesan yang perlu dicari di log Anda:
- Permintaan Python:
status_code == 401dengan headerWWW-Authenticate(situs) versusProxyErrormenyebut 407 (proxy) - curl:
HTTP/2 401setelahCONNECTberhasil (situs) versusCONNECT tunnel failed, response 407(proxy) - API: badan JSON seperti
{"message": "Unauthorized"}atau pesan token tidak valid
Apa penyebab a 401?
Kemungkinan besar pertama:
- Halaman atau API butuh login atau kunci. Situs, bukan proxy, yang meminta.
- Kredensial proxy di tempat salah, seperti header
Authorizationuntuk proxy yang ditolak situs. - Cookie sesi atau token kadaluarsa dalam alur multi langkah.
- Token terkait IP atau wilayah, sehingga exit baru membuatnya tidak valid.
Bagaimana cara mendiagnosis a 401 langkah demi langkah?
- Pastikan kode: 401 untuk situs, 407 untuk proxy.
- Jalankan tes curl di bawah. Jika muncul
HTTP/1.1 200 Connection establishedsebelum 401, proxy baik. - Periksa apakah URL yang sama perlu login di browser biasa.
- Dalam alur multi langkah, cek apakah 401 muncul saat IP exit berubah.
# 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:[email protected]: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_URLBagaimana cara memperbaiki a 401?
- Untuk masalah proxy (407), tempatkan kredensial di URL proxy atau pengaturan proxy klien, bukan di header
Authorization. - Untuk API publik yang perlu kunci, daftar di situs dan kirim kunci sesuai dokumentasi.
- Untuk sesi terkait IP, gunakan sesi sticky untuk seluruh alur.
- Untuk konten di balik login, cek syarat situs sebelum mengotomatiskan. Scrape akun milik orang lain atau data pribadi di balik login tidak sesuai Kebijakan Penggunaan Kami.
Haruskah saya mencoba lagi setelah a 401?
Jangan coba ulang 401 tanpa pikir. Itu meminta sesuatu yang tidak ada dalam permintaan Anda. Segarkan token atau sesi jika alur Anda punya, lalu coba sekali lagi. Ulang 401 berarti konten tidak publik atau akses Anda berakhir.
Bagaimana 401 Unauthorized vs 407 berlaku untuk CrawlRelay?
Proxy HTTP melaporkan masalah kredensialnya dengan 407 atau tunnel gagal, bukan 401. Jika dapat 401 pakai gateway CrawlRelay, permintaan Anda sampai ke situs, jadi masalahnya lebih cepat diketahui.
Gateway: gw.crawlrelay.com, port 7777 (HTTP, HTTPS melalui CONNECT) dan port 7778 (SOCKS5). Format username: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. Terkait: 407 Proxy Authentication Required · 403 Forbidden · Panduan sesi.
401 Unauthorized vs 407: pertanyaan yang sering ditanyakan pengembang
Kenapa saya dapat 401 kalau password proxy benar?
Karena 401 terkait situs, bukan proxy. Login proxy Anda berhasil, dan situs ingin kredensialnya sendiri, seperti API key, cookie login, atau token. Cek dokumentasi situs. Jika konten di balik login yang tidak berhak Anda akses, jangan otomatisasi.
Bisakah sesi sticky memperbaiki error 401?
Kadang ya. Beberapa situs mengikat sesi atau token ke IP pembuatnya, jadi exit baru membuat token tak valid dan situs jawab 401. Memakai satu sesi sticky untuk alur menghindari itu. Tidak membantu kalau konten perlu kredensial yang Anda tak punya.
Di mana kredensial proxy diletakkan dalam permintaan HTTP?
Di header Proxy-Authorization, yang dibuat klien dari bagian user:password@ URL proxy. Situs tidak pernah lihat header itu karena proxy menghapusnya. Kredensial situs masuk ke header Authorization atau cookie, yang proxy teruskan utuh.
Kesalahan proxy lain dalam referensi ini
Kode status HTTP
- 401 Unauthorized vs 407
- 403 Forbidden
- 407 Proxy Authentication Required
- 429 Too Many Requests
- 502 Bad Gateway
- 503 Service Unavailable
- 504 Gateway Timeout
Kesalahan browser dan klien
Error koneksi dan TLS
Proxy residensial dengan dokumentasi yang membahas kasus kegagalan
Proxy residensial CrawlRelay dari US$0,50/GB, lalu lintas yang tidak pernah kedaluwarsa.