DNS RobotDNS Propagation Checker
BerandaDNSWHOISIPSSL
DNS RobotDNS Propagation Checker

Alat pemeriksaan DNS generasi terbaru

Kebijakan PrivasiKetentuan LayananTentang KamiBlogKontak

Alat DNS

Pencarian DNSDomain ke IPPencarian NSPencarian MXPencarian CNAMELihat semua

Alat Email

Pemeriksa Rekaman SPFPemeriksa DMARCPemeriksa DKIMAlat Tes SMTPAnalisis Header EmailLihat semua

Alat Website

Pencarian WHOISKetersediaan DomainPencari SubdomainPendeteksi CMSAnalisis TautanLihat semua

Alat Jaringan

Alat PingTraceroutePemeriksa PortPemeriksaan Header HTTPPemeriksaan Sertifikat SSLLihat semua

Alat IP

Pencarian IPIP Saya ApaPemeriksaan Daftar Hitam IPIP ke HostnamePencarian ASNLihat semua

Alat Utilitas

Pemindai QR CodePembuat QR CodePenerjemah Kode MorseKonverter Teks ke BinerPembuat Teks KecilLihat semua
© 2026 DNS Robot. Dikembangkan oleh: ❤ Shaik Brothers
Semua sistem beroperasi normal
Made with
Home/Blog/Error HTTP 401 Unauthorized: Arti dan Cara Mengatasinya

Error HTTP 401 Unauthorized: Arti dan Cara Mengatasinya

Shaik Vahid1 Mar 202610 min read
Panduan mengatasi error HTTP 401 Unauthorized — penyebab kegagalan autentikasi dan solusi langkah demi langkah
Panduan mengatasi error HTTP 401 Unauthorized — penyebab kegagalan autentikasi dan solusi langkah demi langkah

Key Takeaway

Error 401 Unauthorized berarti server memerlukan autentikasi tetapi permintaan Anda tidak menyertakan kredensial yang valid. Sebagai pengunjung, periksa detail login Anda, hapus cache browser, dan coba login kembali. Sebagai developer, verifikasi API key atau token Anda, periksa format header Authorization, dan pastikan kredensial belum kedaluwarsa.

Apa Itu Error 401 Unauthorized?

Error 401 Unauthorized adalah kode status HTTP yang berarti server memerlukan autentikasi untuk resource yang diminta, tetapi permintaan tidak menyertakan kredensial atau kredensial yang diberikan tidak valid.

Spesifikasi HTTP (RFC 9110, Section 15.5.2) mendefinisikannya sebagai: permintaan tidak memiliki kredensial autentikasi yang valid untuk resource target. Server yang menghasilkan respons 401 harus menyertakan header WWW-Authenticate yang menunjukkan skema autentikasi yang harus digunakan.

Secara sederhana: server bertanya "siapa Anda?" sebelum mengizinkan akses. Anda tidak memberikan identifikasi apa pun, atau identifikasi yang Anda berikan salah.

Note

Meskipun namanya demikian, 401 berkaitan dengan autentikasi (membuktikan identitas Anda), bukan otorisasi (memiliki izin). Spesifikasi HTTP mengakui bahwa nama "Unauthorized" menyesatkan — 403 Forbidden adalah kegagalan otorisasi yang sebenarnya.

Tampilan Error 401

Error 401 tampil berbeda tergantung pada server, browser, dan aplikasi. Berikut pesan-pesan paling umum yang akan Anda temui.

  • 401 Unauthorized — pesan respons HTTP standar

  • HTTP Error 401 – Unauthorized — umum di aplikasi IIS dan ASP.NET

  • 401 Authorization Required — halaman error default Nginx

  • Error 401 — bentuk singkat di bilah alamat browser

  • Access Denied: Invalid credentials — halaman error kustom aplikasi

  • Authentication Required — popup browser untuk autentikasi Basic/Digest

  • Invalid API Key — umum dalam respons REST API

  • Token Expired — token JWT atau OAuth perlu diperbarui

Ketika server mengirim 401, sebagian besar browser akan menampilkan popup login yang meminta username dan password. Jika server menggunakan autentikasi berbasis token (seperti API), Anda akan melihat error tersebut di body respons JSON.

401 vs 403: Apa Perbedaannya?

Kode status 401 dan 403 sering tertukar, bahkan oleh developer berpengalaman. Perbedaannya sederhana: 401 berarti "Saya tidak tahu siapa Anda" sementara 403 berarti "Saya tahu siapa Anda, tetapi Anda tidak diizinkan."

Aspek401 Unauthorized403 Forbidden
Makna intiAutentikasi gagal atau tidak adaOtorisasi ditolak
Pertanyaan server"Siapa Anda?""Anda tidak memiliki izin"
KredensialTidak diberikan atau tidak validValid tetapi tidak cukup
Apakah mencoba lagi bisa membantu?Ya — berikan kredensial yang benarTidak — Anda tidak memiliki izin
Header WWW-AuthenticateWajib ada dalam responsTidak disertakan
Contoh skenarioMengakses panel admin tanpa loginLogin sebagai viewer, mencoba menghapus postingan

Aturan praktisnya: jika memberikan username dan password (atau API key) yang benar dapat memperbaikinya, server harus mengembalikan 401. Jika pengguna sudah terautentikasi tetapi tidak memiliki akses ke resource tersebut, server harus mengembalikan 403 Forbidden.

Penyebab Umum Error 401

Memahami mengapa error 401 terjadi tergantung pada apakah Anda pengguna biasa, developer yang memanggil API, atau administrator server. Berikut penyebab paling sering.

  • Username atau password salah — penyebab paling dasar, terutama setelah reset password

  • Token autentikasi kedaluwarsa — token JWT, token akses OAuth, dan cookie sesi semuanya memiliki waktu kedaluwarsa

  • Header Authorization tidak ada — permintaan tidak menyertakan kredensial sama sekali

  • API key tidak valid — key telah dicabut, dirotasi, atau disalin dengan salah

  • Skema auth salah — server mengharapkan Bearer token tetapi menerima Basic auth, atau sebaliknya

  • Perbedaan waktu (clock skew) — validasi JWT gagal ketika jam server dan klien tidak sinkron lebih dari beberapa menit

  • CORS preflight menghapus header — browser menghapus header Authorization dari permintaan preflight OPTIONS

  • Cache browser usang — browser mengirim cookie sesi yang sudah kedaluwarsa dari cache alih-alih meminta yang baru

  • Kesalahan konfigurasi reverse proxy — Nginx atau Apache menghapus header Authorization sebelum meneruskan ke backend

  • Kredensial dibatasi atau dicabut — terlalu banyak percobaan gagal memicu penguncian akun

Cara Mengatasi 401 sebagai Pengunjung

Jika Anda menemui error 401 di situs web yang ingin Anda akses, masalahnya hampir selalu berkaitan dengan kredensial login Anda. Ikuti langkah-langkah berikut secara berurutan.

1. Periksa Kredensial Login Anda

Penyebab paling umum error 401 adalah kredensial yang salah. Jika situs menampilkan popup atau formulir login, periksa kembali username dan password Anda.

Kesalahan umum: Caps Lock aktif, Anda menggunakan password lama (terutama setelah reset baru-baru ini), atau Anda login ke akun yang salah. Jika Anda memiliki password manager, biarkan fitur auto-fill mengisi kredensial untuk menghindari kesalahan ketik.

Tip

Jika Anda baru saja mengubah password, logout sepenuhnya dari semua sesi, lalu login kembali. Beberapa situs tetap mempertahankan sesi lama meskipun password sudah diganti.

2. Hapus Cache dan Cookie Browser

Browser Anda mungkin mengirim cookie sesi yang sudah kedaluwarsa atau token autentikasi dari cache. Menghapusnya akan memaksa browser meminta kredensial baru dari server.

text
Chrome:  Settings → Privacy → Clear browsing data → Cookies + Cached images
Firefox: Settings → Privacy → Clear Data → Cookies + Cache
Safari:  Settings → Privacy → Manage Website Data → Remove All
Edge:    Settings → Privacy → Clear browsing data → Cookies + Cache

Setelah menghapus, tutup browser sepenuhnya (bukan hanya tab), buka kembali, dan navigasikan ke halaman tersebut. Anda akan melihat prompt login yang baru.

3. Coba Mode Incognito atau Privat

Buka URL di jendela incognito (Chrome) atau privat (Firefox/Safari). Ini melewati semua cookie yang di-cache, ekstensi, dan kredensial tersimpan.

Jika halaman berfungsi di mode incognito tetapi tidak di browser biasa, masalahnya adalah cookie yang di-cache atau ekstensi browser yang mengganggu autentikasi. Nonaktifkan ekstensi satu per satu untuk menemukan penyebabnya.

4. Verifikasi URL

Pastikan Anda mengunjungi URL yang benar. Beberapa server mengembalikan 401 untuk path yang memerlukan autentikasi, meskipun path itu sendiri salah. Anda mungkin mencoba mengakses area terbatas yang tidak seharusnya Anda kunjungi.

Periksa apakah ada versi publik dari halaman tersebut di URL yang berbeda. Misalnya, example.com/admin/ mungkin mengembalikan 401 sementara example.com/ dapat diakses secara publik.

Warning

Jika tidak ada satupun perbaikan ini yang berhasil, pemilik situs mungkin telah mengubah metode autentikasi atau mencabut akses Anda. Hubungi administrator situs untuk memastikan akun Anda masih aktif.

Cara Mengatasi 401 sebagai Developer

Bagi developer yang bekerja dengan API, error 401 biasanya berkaitan dengan header Authorization, format token, atau siklus hidup kredensial. Berikut perbaikan yang paling umum.

5. Verifikasi Header Authorization

Kesalahan developer yang paling umum adalah header Authorization yang salah format. Header WWW-Authenticate dalam respons server memberitahu Anda skema mana yang diharapkan.

Pastikan header Anda sesuai dengan format yang diperlukan. Skema yang paling umum adalah Bearer (untuk token) dan Basic (untuk username:password yang di-encode dalam Base64).

bash
# Bearer token authentication (most APIs)
curl -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." https://api.example.com/data

# Basic authentication (username:password in Base64)
curl -u "username:password" https://api.example.com/data
# Equivalent to:
curl -H "Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=" https://api.example.com/data

# Common mistakes that cause 401:
# Missing "Bearer " prefix:  Authorization: eyJhbGci...  ← WRONG
# Extra space:               Authorization: Bearer  eyJ... ← WRONG
# Wrong scheme:              Authorization: Basic eyJhbGci... ← WRONG

Selalu periksa header WWW-Authenticate dalam respons 401. Header ini memberitahu Anda persis apa yang diharapkan server. Gunakan HTTP Headers tool DNS Robot untuk memeriksa respons lengkap.

6. Periksa Validitas API Key

API key dapat berhenti berfungsi secara diam-diam karena beberapa alasan: key telah dirotasi, akun terkait telah diturunkan, key telah mencapai batas rate limit, atau key dibatasi untuk endpoint yang berbeda dari yang Anda panggil.

Verifikasi bahwa key Anda masih aktif di dashboard provider. Banyak API (Google, AWS, Stripe) memungkinkan Anda menguji key langsung dari konsol mereka.

bash
# Test if your API key is valid
curl -I -H "Authorization: Bearer YOUR_API_KEY" https://api.example.com/me
# 200 = key is valid
# 401 = key is invalid or expired
# 403 = key is valid but lacks permission for this endpoint

# Check common API key issues:
# 1. Trailing whitespace in .env file:  API_KEY="abc123 " ← trailing space
# 2. Wrong environment:                 using test key on production
# 3. Missing prefix:                    some APIs need "sk_live_" prefix

7. Tangani Kedaluwarsa dan Refresh Token

Token JWT dan token akses OAuth memiliki masa berlaku terbatas — biasanya 15 menit hingga 24 jam. Ketika kedaluwarsa, setiap panggilan API mengembalikan 401 sampai Anda mendapatkan token baru.

Perbaikannya tergantung pada alur autentikasi Anda. OAuth 2.0 menggunakan refresh token untuk mendapatkan token akses baru tanpa autentikasi ulang. Sistem berbasis JWT biasanya memerlukan login baru.

bash
# Decode a JWT token to check its expiry (works on macOS and Linux)
echo "eyJhbGciOiJIUzI1NiIs..." | cut -d'.' -f2 | base64 -d 2>/dev/null | python3 -m json.tool
# Look for "exp" field — it's a Unix timestamp
# Compare with current time: date +%s

# OAuth 2.0 refresh token flow
curl -X POST https://auth.example.com/token \
  -d "grant_type=refresh_token" \
  -d "refresh_token=YOUR_REFRESH_TOKEN" \
  -d "client_id=YOUR_CLIENT_ID"

Note

Perbedaan waktu (clock skew) antara server Anda dan server auth dapat menyebabkan token tampak kedaluwarsa. Jika Anda mendapat error 401 pada token yang seharusnya masih valid, periksa bahwa jam server Anda akurat: date -u harus sesuai dengan time.is dalam selisih beberapa detik.

8. Perbaiki Masalah CORS Preflight

Ketika browser mengirim permintaan cross-origin dengan header Authorization, browser terlebih dahulu mengirim permintaan preflight OPTIONS. Browser secara otomatis menghapus header Authorization dari preflight ini. Jika server Anda memerlukan auth pada permintaan OPTIONS, server mengembalikan 401 sebelum permintaan sebenarnya terkirim.

Perbaikannya: konfigurasikan server Anda untuk mengizinkan permintaan OPTIONS tanpa autentikasi pada endpoint yang mengaktifkan CORS.

nginx
# Nginx — allow OPTIONS requests without auth
location /api/ {
    if ($request_method = OPTIONS) {
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS";
        add_header Access-Control-Allow-Headers "Authorization, Content-Type";
        add_header Access-Control-Max-Age 86400;
        return 204;
    }

    # Normal auth for other methods
    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;
}

Cara Mengatasi 401 sebagai Pemilik Situs

Jika pengunjung atau pengguna Anda melaporkan error 401, masalahnya ada pada konfigurasi autentikasi server Anda. Lakukan pemeriksaan berikut.

9. Tinjau Konfigurasi Autentikasi Server

Pastikan autentikasi hanya diaktifkan pada rute yang memerlukannya. Kesalahan umum adalah memproteksi seluruh direktori atau situs ketika hanya path tertentu yang harus memerlukan login.

Pada Nginx, periksa direktif auth_basic Anda. Pada Apache, periksa direktif AuthType dan Require. Pada Node.js/Express, periksa urutan middleware Anda — middleware autentikasi yang ditempatkan sebelum route handler akan memblokir semuanya.

nginx
# Nginx — WRONG: protects everything, including public pages
server {
    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;
    # All pages now require login — including your homepage!
}

# Nginx — CORRECT: only protect admin routes
server {
    location / {
        # Public — no auth required
    }
    location /admin/ {
        auth_basic "Admin Area";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }
}

10. Periksa Aturan Autentikasi .htaccess

Pada server Apache, file .htaccess dapat mengaktifkan autentikasi Basic atau Digest untuk direktori tertentu. Jika file .htaccess ada di direktori publik dengan direktif AuthType, setiap pengunjung akan mendapat prompt login 401.

Periksa file .htaccess di direktori yang terpengaruh dan semua direktori induk — Apache menerapkan aturan dari setiap .htaccess di sepanjang path.

bash
# Find all .htaccess files with auth rules
find /var/www/html -name '.htaccess' -exec grep -l 'AuthType\|AuthUserFile\|Require valid-user' {} \;

# Example .htaccess that causes 401 for everyone:
# AuthType Basic
# AuthName "Restricted Area"
# AuthUserFile /etc/apache2/.htpasswd
# Require valid-user

# Fix: remove auth lines from public directories,
# or move them to the specific /admin/.htaccess only

11. Perbaiki Penghapusan Header oleh Reverse Proxy

Jika aplikasi Anda berada di belakang Nginx, Apache, atau load balancer, proxy mungkin menghapus header Authorization sebelum meneruskan permintaan ke backend Anda. Ini adalah salah satu penyebab 401 yang paling membuat frustrasi karena klien mengirim kredensial yang benar tetapi server tidak pernah menerimanya.

Periksa konfigurasi proxy Anda untuk memastikan header Authorization diteruskan.

nginx
# Nginx reverse proxy — pass Authorization header to backend
location /api/ {
    proxy_pass http://localhost:3000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Authorization $http_authorization;  # ← Critical!
    proxy_pass_header Authorization;                      # ← Also add this
}

# Apache reverse proxy
<Location /api/>
    ProxyPass http://localhost:3000/api/
    ProxyPassReverse http://localhost:3000/api/
    RequestHeader set Authorization "expr=%{HTTP:Authorization}"  # Pass auth header
</Location>

Warning

Beberapa CDN (seperti Cloudflare) juga dapat menghapus atau mengubah header Authorization. Periksa dokumentasi CDN Anda untuk pengaturan penerusan header.

Debugging Error 401 dengan HTTP Headers

Cara tercepat untuk mendiagnosis error 401 adalah memeriksa header respons. Header WWW-Authenticate dalam respons server memberitahu Anda metode autentikasi apa yang diperlukan.

Gunakan HTTP Headers tool DNS Robot atau curl dari terminal untuk melihat respons lengkap.

bash
# Check the WWW-Authenticate header in the 401 response
curl -I https://api.example.com/protected-endpoint

# Typical 401 response headers:
# HTTP/1.1 401 Unauthorized
# WWW-Authenticate: Bearer realm="api", error="invalid_token"
# WWW-Authenticate: Basic realm="Admin Area"
# Content-Type: application/json

# The WWW-Authenticate header tells you:
# - The auth scheme (Bearer, Basic, Digest)
# - The realm (which area is protected)
# - The error reason (invalid_token, expired, etc.)

Perhatikan baik-baik header WWW-Authenticate. Jika tertulis Bearer, Anda memerlukan token. Jika tertulis Basic, Anda memerlukan username dan password. Jika menyertakan error=invalid_token, token Anda ada tetapi formatnya salah atau sudah kedaluwarsa. Satu header ini biasanya memberitahu Anda persis apa yang salah.

Apakah Error 401 Mempengaruhi SEO?

Error 401 pada halaman publik akan merugikan SEO Anda. Ketika Googlebot menemui 401, ia tidak dapat meng-crawl halaman tersebut dan akhirnya akan menghapusnya dari indeks.

Namun, error 401 pada halaman yang memang memerlukan autentikasi (panel admin, dashboard pengguna, endpoint API) adalah hal yang normal. Google mengharapkan halaman-halaman ini dilindungi dan tidak akan menghukum situs Anda karenanya.

Masalah muncul ketika error 401 muncul pada halaman yang seharusnya dapat diakses publik. Ini biasanya terjadi ketika middleware autentikasi salah dikonfigurasi atau ketika CDN/reverse proxy secara tidak tepat memerlukan kredensial pada rute publik.

Warning

Periksa Google Search Console di bagian Pages → Not indexed → Blocked due to unauthorized request (401) untuk melihat apakah Googlebot diblokir dari halaman publik Anda.

Cara Mencegah Error 401

Pencegahan menghemat waktu debugging di kemudian hari. Ikuti praktik-praktik berikut untuk meminimalkan error 401 pada aplikasi dan situs web Anda.

  • Implementasikan auto-refresh token — gunakan refresh token untuk mendapatkan token akses baru secara otomatis sebelum kedaluwarsa

  • Atur scope auth yang tepat — hanya lindungi rute yang benar-benar memerlukan autentikasi, biarkan halaman publik tetap terbuka

  • Gunakan pesan error yang jelas — kembalikan body error JSON yang informatif bersama 401, bukan hanya kode status

  • Pantau kegagalan auth — atur alert untuk lonjakan respons 401, yang mungkin mengindikasikan masalah kredensial atau serangan

  • Sinkronkan jam server — gunakan NTP untuk menjaga semua server dalam selisih beberapa detik dari UTC, mencegah penolakan JWT akibat perbedaan waktu

  • Uji dengan [HTTP Headers tool](/http-headers) — verifikasi secara rutin bahwa halaman publik mengembalikan 200 dan halaman yang dilindungi mengembalikan 401 sesuai harapan

  • Dokumentasikan skema auth Anda — jelaskan format header Authorization yang diharapkan dalam dokumentasi API Anda

  • Tangani CORS preflight — selalu izinkan permintaan OPTIONS tanpa autentikasi pada endpoint API

Periksa header respons HTTP Anda

Gunakan HTTP Headers tool gratis dari DNS Robot untuk memeriksa status respons, header, dan informasi WWW-Authenticate dari URL mana pun secara instan.

Try HTTP Headers

Frequently Asked Questions

Error 401 Unauthorized berarti server memerlukan autentikasi tetapi permintaan Anda tidak menyertakan kredensial yang valid. Anda tidak memberikan username/password atau API key, atau yang Anda berikan salah atau sudah kedaluwarsa.

Related Tools

HTTP Headers CheckSSL Certificate CheckDNS LookupPort Checker

Related Articles

403 Forbidden Error: Arti, Penyebab, dan Cara MengatasinyaHTTP Error 500 Internal Server Error: Penyebab & Cara MemperbaikinyaHTTP Error 503 Service Unavailable: Penyebab & Cara Memperbaikinya504 Gateway Timeout: Arti, Penyebab & Cara MengatasinyaERR_SSL_PROTOCOL_ERROR: Cara Memperbaikinya (Chrome, Edge, Semua Browser)

Table of Contents

  • Apa Itu Error 401 Unauthorized?
  • Tampilan Error 401
  • 401 vs 403: Apa Perbedaannya?
  • Penyebab Umum Error 401
  • Cara Mengatasi 401 sebagai Pengunjung
  • 1. Periksa Kredensial Login Anda
  • 2. Hapus Cache dan Cookie Browser
  • 3. Coba Mode Incognito atau Privat
  • 4. Verifikasi URL
  • Cara Mengatasi 401 sebagai Developer
  • 5. Verifikasi Header Authorization
  • 6. Periksa Validitas API Key
  • 7. Tangani Kedaluwarsa dan Refresh Token
  • 8. Perbaiki Masalah CORS Preflight
  • Cara Mengatasi 401 sebagai Pemilik Situs
  • 9. Tinjau Konfigurasi Autentikasi Server
  • 10. Periksa Aturan Autentikasi .htaccess
  • 11. Perbaiki Penghapusan Header oleh Reverse Proxy
  • Debugging Error 401 dengan HTTP Headers
  • Apakah Error 401 Mempengaruhi SEO?
  • Cara Mencegah Error 401
  • FAQ