401 Unauthorized는 요청에 대상 리소스에 대한 유효한 인증 정보가 없다는 뜻입니다. 이름과 달리 이 코드는 권한 부여(authorization)가 아니라 인증(authentication), 즉 “누구인가?”에 관한 것입니다. 서버는 Basic realm="Staging"이나 Bearer처럼 클라이언트에 인증 방법을 알려 주는 챌린지를 하나 이상 담은 WWW-Authenticate 헤더를 보내야 합니다.
요청에 이미 인증 정보가 있었다면, 401은 그 정보가 거부되었다는 뜻입니다. 비밀번호가 틀렸거나 토큰이 만료된 경우입니다. 브라우저는 Basic과 Digest 챌린지에 대해 로그인 대화 상자를 표시합니다. API는 토큰이 없거나 유효하지 않을 때 401을 반환하며, 클라이언트는 새 토큰을 받아 다시 시도할 수 있습니다.
사용자가 누구인지는 알지만 허용되지 않은 경우에는 403 Forbidden을, 원본 서버가 아니라 프록시가 인증을 요구하는 경우에는 407을 사용하세요.
응답 예시
HTTP/1.1 401 Unauthorized
Date: Fri, 06 Nov 2026 10:15:32 GMT
WWW-Authenticate: Basic realm="Staging", charset="UTF-8"
Content-Type: text/plain; charset=utf-8
Content-Length: 23
Authentication required SEO 및 리디렉션 검사
인증이 필요한 페이지는 색인될 수 없습니다. 크롤러는 로그인하지 않으며, 401을 반환하는 URL은 다른 4xx 오류와 같이 취급됩니다. 스테이징 사이트, 관리자 영역, 비공개 콘텐츠라면 바로 이것이 원하는 결과이며, HTTP 인증은 robots.txt보다 훨씬 확실하게 스테이징 사이트를 검색결과에서 제외합니다. 운영 사이트에 스테이징용 비밀번호가 실수로 남아 있지 않은지 확인하고, 공개 페이지에서 크롤러에 401로 응답하는 일은 절대 없도록 하세요.
TrueURL로 보호된 URL을 검사하려면 사용자 지정 요청 헤더에 Authorization 헤더를 추가하면 됩니다. 이때는 테스트용 인증 정보를 사용하세요.
주요 원인과 사용 사례
- HTTP Basic 인증이 스테이징 사이트나 관리자 사이트를 보호합니다.
- API 토큰이 없거나 만료되었거나 폐기되었습니다.
- 세션이 만료되어 API가 로그인 페이지로 리디렉션하는 대신 401로 응답합니다.
- 리디렉션 과정에서 인증 정보가 사라졌습니다. 많은 클라이언트는 리디렉션이 다른 호스트로 이어지면
Authorization헤더를 삭제합니다.