2011. 4. 14. 17:09

HTTP 상태코드

가끔 필요한일이 있어서,
어딘가에서 줒어왔는데 출처가 잘 기억이 안남..ㅠㅠ

퍼온분께는 죄송...ㅠㅠ


HTTP 상태 코드

 

트랜잭션이 성공한 경우

200

 request가 성공적으로 완료되었음

201

 request가 POST method이었으며 성공적으로 완료되었음

202

 request가 서버에 전달되었으나 처리 결과를 알 수 없음. 배치 처리를 요한 경우

203

 GET request가 실행되었으며 부분적인 정보를 리턴하였음

204

 request가 실행되었으나 클라이언트에게 보낼 데이터가 없음

 

트랜잭션의 redirection

300

 요구된 request가 여러 위치에 존재하는 자원을 필요로 하므로 response는 위에 대한 정보를 보낸다. 클라이언트는 가장 적당한 위치를 선택하여야 함

301

 request에 의한 요구된 데이터는 영구적으로 새로운 URL로 옮기어 졌음

302

 request가 요구한 데이터를 발견하였으나 실제 다른 URL에 존재함

304

 If-Modified-Since 필드를 포함한 GET method를 받았으나 문서는 수정되지 않았음

 

오류 메시지

400

 request의 문법이 잘못되었음

401

 request가 서버에게 Authorization: 필드를 사용하였으나 값을 지정하지 않았음.  서버는 WWW-Authenticate response header를 통해 가능한 인증 스킴을  보낸다.

402

 request가 요구한 일은 비용이 요구되지만 request header의 Chargeto 필드에 아무값도 보내지 않았음. 현재는 구현되지 않았음

403

 request는 금지된 자원을 요구하였음

404

 서버는 요구된 URL을 찾을 수 없음

405

 클라이언트는 자원을 액세스하기에 부적합한 method를 이용하였음.

406

 요구된 자원을 발견하였으나 자원을 타입이 request header의 accept: 필드와 일치하지 않아서 전송할 수 없음

410

 요구된 자원은 더 이상 활용가능하지 않음

500

 서버에 내부적으로 오류가 발생하여 더 이상을 진행할 수 없음

501

 요청된 request는 합법적이나 서버는 요구된 method를 지원하지 않음

502

 클라이언트는 다른 서버(보조서버)로부터 자원 액세스를 요구하는 서버에 자원을 요구하였으나 보조 서버가 유효한 응답을 전달해오지 않았음

503

 서버가 바쁘기 때문에 서비스를 할 수 없음

504

 502의 오류와 유사하나 보조 서버의 응답이 너무 오래 지체되어 트랜잭션이 실패하였음

 

 

 

HTTP/1.1 상태 코드 정의


 

작성자 : 정원호 (lion21@nownuri.net)
편집자 : 정원호 (lion21@nownuri.net)
최초 게시일 : 2003년 3월 9일


HTTP/1.1 상태 코드 정의는 RFC 2616에 규정되어 있는데 간단히 정리하면 다음과 같다.

 

1xx는 Informational(정보제공), 2xx는 Successful(성공), 3xx는 Rediection(추가작업), 4xx는 Client Error(클라이언트측 오류), 5xx는 ServerError(서버측 오류)를 의미한다.

 

1xx, 2xx, 3xx 코드는 서버와 User Agent간의 상태를 표시한 것이기 때문에 일반 사용자가 그 내용을 볼 수 없다. 하지만 4xx, 5xx 코드는 일반 사용자도 흔히 볼 수 있는 내용이다.

 

어떤 이유로든 웹 페이지가 브라우저 상에 정상적으로 뜨지 않는다면 이는 3xx, 4xx 오류에 해당한다. 때문에 오류의 원인을 이해하고 이를 복구하기 위해서는 오류코드가 의미하는 바를 잘 대충이라도 알아야 한다.

 

401.x, 403.xx, 404.1, 5xx.xx 코드는 Internet Explorer 전용 에러메시지인데, RFC에 정의되어 있는지 여부는 확인할 수 없었다.

Code Description 의 미
100 Continue

Client는 Request를 Server는 Response를

계속적으로해야한다는 것

101 Switching Protocols Client의 요청에 따라 연결 프로토콜을 전환
200 OK 에러 없이 전송 성공
201 Created POST 명령 실행 및 성공
202 Accepted 서버가 클라이언트 명령을 받음
203 Non-Authoritative Information 서버가 클라이언트 요구 중 일부만 전송
204 No Content 클라언트 요구을 처리했으나 전송할 데이터가 없음
205 Reset Content 클라이언트 폼 전송후 폼 내용 삭제
206 Partial Content
300 Multiple Choices
301 Moved Permanently
302 Moved Temporarily 요구한 데이터를 변경된 임시 URL에서 찾았음
303 See Other 요구한 데이터가 변경된 URL에 있음을 명시
304 Not Modified 요구한 데이터를 변경하지 않았기 때문에 문제가 있음
305 Use Proxy
307 Temporary Redirect
400 Bad Request 클라이언트의 잘못된 요청으로 처리할 수 없음
401 Unauthorized 클라이언트의 인증 실패
401.1 - 권한 없음 : 로그온 실패
401.2 - 권한 없음 : 서버 구성으로 인한 로그온 실패
401.3 - 권한 없음 : 리소스의 ACL에 의해 액세스가 거부
401.4 - 권한 없음 : 필터에 의해 권한 부여가 거부
401.5 - 권한 없음 : ISAPI 또는 CGI 응용 프로그램으로 권한 부여가 실패
403 Forbidden 접근이 거부된 문서를 요청함
403.1 - 액세스 금지 : 액세스 실행 금지
403.2 - 액세스 금지 : 읽기 액세스 금지
403.3 - 액세스 금지 : 쓰기 액세스 금지
403.4 - 액세스 금지 : SSL 필요
403.5 - 액세스 금지 : SSL 128 필요
403.6 - 액세스 금지 : IP 주소 거부
403.7 - 액세스 금지 : 클라이언트 인증서 필요
403.8 - 액세스 금지 : 사이트 액세스 거부
403.9 - 액세스 금지 : 연결된 사용자가 너무 많음
403.10 - 액세스 금지 : 잘못된 구성
403.11 - 액세스 금지 : 암호 변경
403.12 - 액세스 금지 : 매퍼가 액세스를 거부
403.13 - 액세스 금지 : 클라이언트 인증서 해지
403.15 - 액세스 금지 : 클라이언트 액세스 라이센스 초과
403.16 - 액세스 금지 : 클라이언트 인증서가 유효하지 않거나 신뢰할 수 없음
403.17 - 액세스 금지 : 클라이언트 인증서가 만료되었거나 아직 유효하지 않음
404 Not Found 문서를 찾을 수 없음
404.1 - 웹 사이트를 찾을 수 없음
405 Method Not Allowed 리소스를 허용안함
406 Not Acceptable 허용할 수 없음
407 Proxy Authentication Required 프록시 인증 필요
408 Request Timeout 요청시간이 지남
409 Conflict 리소스간 충돌로 인하여 서버가 응답할 수 없음
410 Gone 요청된 리소스를 영구적으로 사용할 수 없음
411 Length Required Content-Length를 정의하지 않고 리소스를 요청하였음
412 Precondition Failed 전제조건 실패
413 Request Entity Too Large Request Entity가 서버가 처리할 수 있는 것보다 큼
414 Request-URI Too Long URI가 너무 김
415 Unsupported Media Type 지원되지 않은 미디어 형식
416 Requested Range Not Satisfiable
417 Expectation Failed
500 Internal Server Error 내부 서버 오류(잘못된 스크립트 실행시)
500-11 : 서버 종료 중
500-12 : 응용 프로그램 다시 시작
500-13 : 서버 사용량이 많음
500-14 : 잘못된 응용 프로그램
500-15 : global.asa에 대한 요청이 허용되지 않음
501 Not Implemented 클라이언트에서 서버가 수행할 수 없는 행동을 요구함
502 Bad Gateway 서버의 과부하 상태
503 Service Unavailable 외부 서비스가 죽었거나 현재 멈춤 상태
504 Gateway Timeout
505 HTTP Version Not Supported

 

 

 

HTTP 에러 코드표 
 
100: Continue
101: Switching Protocols
200: OK, 에러없이 전송 성공
202: Accepted, 서버가 클라이언트의 명령을 받음.
203: Non-authoritavive Information, 서버가 클라이언트 요구중 일부만 정송
204: Non Content, 클라이언트 요구를 처리했으나 전송할 데이터가 없음.
205: Reset Content
206: Partial Content
300: Multiple Choisces, 최근에 옮겨진 데이터를 요청
301: Moved Permanently, 요구한 데이터를 변경된 임시 URL에서 찾았음.
302: Moved Permanently, 요구한 데이터가 변경된 URL에 있음을 명시.
303: See Other, 요구한 데이터를 변경하지 않았기 때문에 문제가 있음.
304: Not modified
305: Use Proxy
400: Bad Request, 요청실패문법상 오류가 있어, 서버가 요청사항을 이해하지 못함, 클라이언트는 수정없이 요청사항을 반복하지 않을 것이다.
401.1: Unauthorized, 권한 없음 (접속실패)이 에러는 서버에 로그온 하려는 요청사항이 서버에 들어있는 권한과 비교했을 때 맞지 않을 경우 발생한다. 이 경우, 여러분이 요청한 자원에 접근할 수 있는 권한을 부여받기 위해 서버 운영자에게 요청해야 할 것이다.
401.2: Unauthorized, 권한 없음(서버설정으로 인한 접속 실패)이 에러는 서버에 로그온 하려는 요청사항이 서버에 들어있는 권한과 비교했을 때 맞지않을 경우 발생한다. 이것은 일반적을 으로 적절한 www-authenticate head field를 전송하지 않아서 발생한다.
401.3: Unauthorized, 권한 없음(자원에 대한 ACL에 기인한 권한 없음)이 에러는 클라이언트가 특정 자원에 접근할 수 없을 때 발생한다. 이 자원은 페이지가 될 수도 있고 , 클라이언트의 주소 입력란에 명기된 파일일 수도 있다. 아니면 클라이언트가 행당 주소로 들어갈 때 이용되는 또 다른 파일일 수도 있다. 여러분이 접근할 전체 주소를 다시 확인해 보고 웹 서버 운영자에게 여러분이 자원에 접근할 권한이 있는지를 확인해 본다.
401.4: Unauthorized, 권한 없음(필터에 의한 권한 부여 실패)이 에러는 웹 서버가 서버에 접속하는 사용자들을 확인하기 위해 설치한 필터 프로그램이 있음을 의미한다. 서버에 접속한는 데 이용되는 인증 과정이 이런 필터 프로그램에 의해 거부되었다.
401.5: Unauthorized, 권한 없음(ISA PI/CGI 애플리케이션에 의한 권한부여 실패)이 에러는 여러분이 이용하려는 웹 서버의 어드레스에 ISA PI나 CGI프로그램이 설치되어 있어 사용자의 권한을 검증하고 있음을 의미한다. 서버에 접속하는 데 이용되는 인증 과정이 이 프로그램에 의해 거부되었다.
402: Payment Required, 예약됨.
403.1: Forbidden, 금지(수행접근 금지)이 오류는 CGI나 ISAPI,혹은 수행시키지 못하도록 되어있는 디렉토리 내의 실행 파일을 수행시키려고 했을 때 발생한다.
403.2: Forbidden,  금지(읽기 접근 금지)이 에러는 브라우저가 접근한 디렉토리에 가용한 디폴트 페이지가 없을 경우에 발생한다. 아니면 Eecute나 Script로 분한이 부여된 디렉토리에 들어있는 HTML페이지를 보려했을 때 발생한다.
403.4: Forbidden,  금지(SSL 필요함)이 에러는 여러분이 접근하려는 페이지가 SSL로 보안유지 되고 있는 것일 때 발생한다. 이것을 보기 위해서 여러분은 주소를 입력하기 전에 먼저 SSL을 이용할 수 있어야 한다.
403.5: Forbidden,  금지 (SSL 128필요함)이 에러는 접근하려는 페이지가 SSL로 보안유지 되고 있는 것일 때 발생한다. 이 자원을 보기 위해서는 여러분의 브라우저가 SSL의 행당 레벌을 지원해야 한다. 여러분의 브라우저가 128비트의 SSL을 지원하는 지를 확인해 본다.
403.6: Forbidden,  금지(IP 주소 거부됨)이 에러는 서버가 사이트에 접근이 허용되지 않은 IP주소를 갖고 있는데, 사용자가 이 주소로 접근하려 했을 때 발생한다.
403.7: Forbidden,  금지(클라이언트 확인 필요)이 에러는 여러분이 접근하려는 자원이 서버가 인식하기 위해 여러분의 브라우저에게 클라이언트 SSL을 요청하는 경우 발생한다. 이것은 여러분이 자원을 이용할 수 있는 상용자임을 입증하는데 사용된다.
403.8: Forbidden,  금지 (사이트 접근 거부됨)이 에러는 웹 서버가 요청사항을 수행하고 있지 않거나, 해당 사이트에 접근하는 것이 허락되지 않았을 경우 발생한다.
403.9: Forbidden, 접근 금지(연결된 사용자수 과다)이 에러는 웹서버 BUSY 상태에 있어서 여러분의 요청을 수행할수 없을 경우에 발생한다. 잠시 후에 다시 접근해 보도록 한다.
403.10: Forbidden,  접근금지(설정이 확실 하지 않음)이 순간 웹 서버의 설정쪽에 문제가 있다. 
403.11: Forbidden,  접근금지(패스워드 변경됨)이 에러는 사용자 확인단계에서 잘못된 패스워드를 입력했을 경우 발생한다. 페이지를 갱신한 후 다시 시도해 본다.
403.12: Forbidden,  접근금지(Mapper 접근 금지됨)여러분의 클이언트 인증용 맵이 해당 웹 사이트에 접근하는 것이 거부되었다. 사이트 운영자에게 클라이언트 인증 허가를 요청한다. 또한 여러분은 여러분의 클라이언트 인증을 바꿀 수도 있다.
404: Not Found, 문서를 찾을 수 없음.웹 서버가 요청한 파일이나 스크립트를 찾지 못했다. URL을 다시 잘 보고 주소가 올바로 입력되었는지 확인해본다.- 해결방법: a.도구 ▶ 인터넷옵션 ▶ 일반 ▶ 쿠키삭제, 파일삭제, 목록지우기                  b.도구 ▶ 인터넷옵션 ▶ 고급 ▶ [URL을 항상 UTF-8FH로 보냄] 체크 해제. 
405: Method not allowed, 메쏘드 허용안됨Request 라인에 명시된 메쏘드를 수행하기 위해 해당 자원의 이용이 허용되지 않았다. 여러분이 요청한 자원에 적절한 MIME 타입을 갖고 있는지 확인해 본다.
406: Not Acceptable, 받아들일 수 없음요청 사항에 필요한 자원은 요청 사항으로 전달된 Acceptheader에 따라 "Not Acceptable"인 내용을 가진 Response 개체만을 만들 수 있다.
407: Proxy Authentication Required, 대리(Proxy) 인증이 필요함해당 요청이 수행되도록 proxy 서버에게 인증을 받아야 한다. proxy서버로 로그온 한 후에 다기 시도해 본다.
408: Request timeout, 요청시간이 지남
409: Conflict
410: Gone, 영구적으로 사용할 수 없음.
411: Length Required
412: Precondition Failed, 선결조건 실패Request-header field에 하나 이상에 선결조건에 대한 값이 서버에서 테스트 결과 FALSE로 나왔을 경우에 발생한다. 현재 자원의 메타-정보가 하나 이상의 자원에 적용되는 것을 막기 위한 클라이언트 선결조건이 의도되어졌다.
413: Request entity too large
414: Request-URI too long, 요청한 URI가 너무 길다요청한 URI가 너무 길어서 서버가 요청 사항의 이행을 거부했다. 이렇게 희귀한 상황은 아래와 같은 경우에만 발생한다. 클라이언트가 긴 탐색용 정보를 가지고 POST 요청을 GET으로 부적절하게 전환했다. 클라이언트가 Redirection문제를 접하게 되었다. 서버가, 몇몇 서버가 사용하고 있는 요청한 URI 를 읽고 처리하는 고정된 길이의 메로리 버퍼를 이용해 보안체계에 들어가려는 , 클라이언트에 의한 공격을 받고 있다.
415: Unsupported media type
500: Internal Server Error, 서버 내부 오류웹 서버가 요청사항을 수행할 수 없다. 다시 한 번 요청해 본다.
501: Not Implemented, 적용안됨웹 서버가 요청사항을 수행하는 데 필요한 기능을 지원하지 않는다. 에러가 발생한 URL을 확인한 후에, 문제가 지속될 경우에는 웹 서버 운영자에게 연락한다.
502: Bad gateway, 게이트웨이 상태 나쁨/서버의 과부하 상태Gateway나 proxy로 활동하고 있는 서버가 요구 사항을 접수한 upstream 서버로부터 불명확한 답변을 접수 했을 때 발생한다. 만약 문제가 지속된다면 웹 서버 운영자와 상의해 본다.
503: Service Unavailable, 외부 서비스가 죽었거나 현재 멈춘 상태 또는 이용할 수 없는 서비스서버는 현재 일시적인 과부하 또는 관리(유지,보수) 때문에 요청을 처리할 수 없다.이것은 약간의 지연후 덜게될 일시적인 상태를 말한다.Retry-After 헤더에 지연의 길이가 표시하게 될지도 모른다.만약 Retry-After를 받지 못했다면 클라이언트는 500 응답을 위해 하고자 했는것처럼 응답을 처리해야 한다. 상태코드의 존재는 서버가 과부하가 걸릴때 그것을 사용해야한다는 것을 말하는 것이 아니다. 몇몇 서버는 접속을 거부하는 것을 바랄지도 모른다.
504: Gateway timeout

505: HTTP Version Not Supported