정의
HTTP 403은 하이퍼텍스트 전송 프로토콜(HTTP) 상태 코드 중 하나로, "Forbidden"을 의미한다. 이 응답 코드는 클라이언트의 요청이 서버에 도달했으나, 서버가 해당 요청을 거부하고 있으며, 사용자에게 요청한 리소스에 접근할 권한이 없음을 나타낸다.
개요
HTTP 403 상태 코드는 웹 서버가 클라이언트(예: 웹 브라우저)의 요청을 인식했지만, 보안 정책, 접근 제어 설정, 또는 인증 정보 부족 등의 이유로 해당 리소스에 대한 접근을 허용하지 않을 경우 반환된다. 이 응답은 401 Unauthorized와 달리, 인증 여부와 무관하게 접근 자체가 금지된 상태를 나타낸다. 즉, 사용자가 누구인지 서버가 알 수 있더라도(또는 알 필요 없더라도), 특정 자원에 접근하는 행위가 허용되지 않는 경우 403이 반환된다.
HTTP 403은 일반적으로 다음과 같은 상황에서 발생할 수 있다:
- 사용자가 인증되었으나 권한이 없는 페이지에 접근 시도
- 특정 IP 주소 또는 국가 기반 차단 정책 설정
- 특정 파일이나 디렉터리에 대한 직접 접근이 웹 서버 설정상 금지된 경우 (예: 디렉터리 인덱스 비활성화)
- 보안 모듈(예: 웹 애플리케이션 방화벽)에 의해 요청이 차단된 경우
어원/유래
HTTP 상태 코드 체계는 인터넷 공학 태스크 포스(IETF)에서 제정한 표준인 RFC 문서에 정의되어 있다. HTTP 403 코드는 최초에는 RFC 1945(HTTP/1.0, 1996년)에서 정의되었으며, 이후 RFC 7231(HTTP/1.1, 2014년)에서 보다 명확히 정의되었다. "403 Forbidden"란 용어는 서버가 요청을 이해하지만 거부할 때 사용하는 표준 메시지로, HTTP 프로토콜의 오류 처리 체계에 따라 설계되었다.
특징
- 클라이언트의 요청이 올바르게 전달되었음에도 불구하고 서버가 응답을 거부함을 의미한다.
- 기본적으로 인증이 성공했더라도 권한이 없으면 403이 발생할 수 있다.
- HTTP 상태 코드 중 4xx 계열에 속하며, 클라이언트 측 오류를 나타낸다.
- 일반적으로 서버 관리자나 개발자가 접근 제어 규칙을 설정함으로써 의도적으로 발생시킬 수 있다.
- 로그에 기록되며, 보안 감사나 문제 진단의 중요한 정보로 활용된다.
관련 항목
- HTTP 상태 코드
- HTTP 401 Unauthorized
- 접근 제어 목록 (Access Control List, ACL)
- 웹 애플리케이션 방화벽 (WAF)
- RFC 7231
- HTTP/1.1 프로토콜 표준