IIS 7.0, 7.5, 8.0의 HTTP 상태 코드는 무엇인가요?
💡 요약 정리
- IIS는 웹 요청 처리 결과로 HTTP 상태 코드를 반환합니다.
- 상태 코드는 1xx~5xx 범위로 나뉘며 각각 정보, 성공, 리디렉션, 클라이언트 오류, 서버 오류 등을 의미합니다.
- 로그 파일에서 상태 코드를 확인할 수 있으며, 오류 발생 원인 진단에도 활용됩니다.
- 특정 오류 코드는 세분화된 원인(예: 403.14: 디렉터리 목록 거부)을 제공합니다.
1. IIS 웹 서버의 상태 코드 개요
HTTP 프로토콜을 통해 IIS(인터넷 정보 서비스) 7.0, 7.5, 8.0에서 실행되는 서버의 콘텐츠에 접근하면, 서버는 요청에 대한 응답 상태를 숫자 코드로 반환합니다. 이 응답 상태 코드는 다음과 같은 곳에 기록됩니다.
- 클라이언트 브라우저에 표시
- IIS 로그 파일에 기록
HTTP 상태 코드는 요청의 성공 여부 뿐 아니라, 실패한 경우 실패의 정확한 원인까지도 설명합니다.
2. IIS 로그 파일의 위치
기본적으로 IIS 7.0, 7.5, 8.0에서는 로그 파일이 다음 위치에 저장됩니다.
- 경로:
inetpub\logs\Logfiles하위 폴더 내에 웹사이트별로 저장 - 로그 파일명: 기본적으로 날짜 기준으로 생성
- 예시:
YYMMDD.log
3. HTTP 상태 코드 분류
다음은 IIS 7.0, 7.5, 8.0에서 사용할 수 있는 HTTP 상태 코드입니다. 모든 HTTP 사양의 전체 코드가 아니라, IIS에서 실제로 전송 가능한 코드에 한해 나열됩니다.
사용자 지정 ISAPI 필터나 HTTP 모듈을 통해 추가적인 사용자 정의 상태 코드를 설정할 수도 있습니다.
3.1 1xx - 정보용
이 코드는 임시 응답을 나타내며, 클라이언트는 정식 응답 이전에 하나 이상의 1xx 코드를 받을 수 있습니다.
- 100 - 계속
- 101 - 프로토콜 전환
3.2 2xx - 성공
서버가 요청을 정상적으로 처리한 경우 반환합니다.
- 200 - 정상: 클라이언트 요청이 성공했습니다.
- 201 - 생성됨
- 202 - 수락됨
- 203 - 신뢰할 수 없는 정보
- 204 - 콘텐츠 없음
- 205 - 콘텐츠를 다시 설정합니다.
- 206 - 일부 콘텐츠
3.3 3xx - 리디렉션
클라이언트가 요청을 완료하기 위해 추가 동작이 필요함을 나타냅니다. 예를 들어 다른 페이지를 요청하거나 프록시 서버를 이용해야 할 수 있습니다.
- 301 - 영구적으로 이동됨
- 302 - 개체가 이동됨
- 304 - 수정되지 않음
- 307 - 임시 리디렉션
3.4 4xx - 클라이언트 오류
요청에 오류가 있으며, 클라이언트가 잘못된 동작을 수행했음을 의미합니다. 예: 잘못된 인증, 존재하지 않는 페이지 요청
-
400 - 요청이 잘못되었습니다. (잘못된 구문)
- 400.1 - 대상 헤더가 잘못되었습니다.
- 400.2 - 깊이 헤더가 잘못되었습니다.
- 400.3 - If 헤더가 잘못되었습니다.
- 400.4 - Overwrite 헤더가 잘못되었습니다.
- 400.5 - Translate 헤더가 잘못되었습니다.
- 400.6 - 본문 요청이 잘못되었습니다.
- 400.7 - 콘텐츠 길이가 잘못되었습니다.
- 400.8 - 제한 시간이 잘못되었습니다.
- 400.9 - 잠금 토큰이 잘못되었습니다.
-
401 - 액세스가 거부되었습니다.
- 401.1 - 로그온에 실패했습니다.
- 401.2 - 서버 구성 때문에 로그온할 수 없습니다.
- 401.3 - ACL(접근 제어 목록) 문제
- 401.4 - 필터로 권한 부여 실패
- 401.5 - ISAPI/CGI 권한 부여 실패
-
403 - 사용 권한 없음
- 403.1 ~ 403.22, 403.502까지 다양한 원인 제공
-
404 - 찾을 수 없음
- 404.0 ~ 404.20 세부 사유 제공
-
405 - 메서드 허용 안됨
-
406 - MIME 형식 허용 안됨
-
408 - 요청 시간 초과
-
412 - 전제 조건 실패
3.5 5xx - 서버 오류
서버 내부적인 문제로 인해 요청을 처리하지 못할 때 반환됩니다.
- 500 - 내부 서버 오류
- 500.0 ~ 500.100 세부 원인 설명
- 501 - 구현되지 않음
- 502 - 게이트웨이 오류
- 502.1 - CGI 응용 프로그램 시간 초과
- 502.2, 502.3, 502.4 - ARR 관련 오류
- 503 - 서비스 불가
- 503.0 - 응용 프로그램 풀 사용불가
- 503.2 - 동시 요청 초과
- 503.3 - ASP.NET 큐 포화
4. 참고사항
HTTP 상태 코드는 오류 진단 및 보안 설정 분석에 매우 유용한 지표입니다. IIS 로그 파일을 통해 발생 원인을 유형별로 분석할 수 있으므로, 서버 응답을 추적할 때 적극적으로 참고하시기 바랍니다.
각 오류 코드별 의미를 숙지하면 문제해결 시 빠른 대응이 가능합니다.