IT/HTTP

HTTP 상태 코드

어디다쏨 2015. 11. 30. 14:11
728x90

HTTP 상태 코드


아래 표과 같이 HTTP/1.1에 정의된 모든 상태 코드와 그들에 대한 간략한 요약을 제공하는 레퍼런스



[표] 100~ 상태코드

상태 코드

사유 구절 

미 

100 

 Continue 

 요청의 앞부분이 수신되었으므로 클라이언트는 이 후에 속행해야 한다. 

101 

 Switching Protocols 

 서버는 클라이언트가 Upgrade 헤더에 나열한 것 중 하나로 프로토콜



[표] 200~ 상태코드

상태 코드

사유 구절 

미 

200

 OK

 요청에 문제가 없다.

201

 Created 

 리소스가 생성되었다.(서버 객체를 생성하는 요청에 대해).

202

 Accepted

 요청이 받아들여졌지만, 서버는 그에 대해 어떤 동작도 아직 수행하지 않았다.

203

 Non-Authoritative

 엔터티 헤더에 담긴 정보가 원 서버가 아니라 리소스의 복사본에서 온 것이라는 점만 제외하면 트랜잭션에는 문제가 없다.

204

 No Content 

 응답 메시지에 헤더와 상태줄은 있지만 엔터티 본문은 없다.

205

 Reset Content

 주로 브라우저를 위한 또 다른 코드. 기본적으로 브라우저가 현재 페이지의 HTML 폼을 비워야 함을 의미한다.

206

 Partial Content

 부분 요청이 성공했다.



[표] 300~ 상태코드

상태 코드

사유 구절 

의미 

300

 Multiple Choices

 클라이언트가 실질적으로 복수 개의 리소스에 참조하는 URL을 요청했다. 이 코드는 옵션의 목록과 함께 반환된다.

301

 Moved Permanently

 요청한 URL이 옮겨졌다. 응답은 그 리소스가 새로 위치하는 곳을 가리키는 Location URL을 포함해야 한다.

302

 Found

 301 상태 코드와 같지만, URL이 일시적으로 옮겨진 것이라는 점이 다른다. 클라이언트는 Location 헤더에 주어진 URL을 사용해야 한다.

303

 See Other

 클라이언트에게 그 리소스를 얻으려면 다른 URL을 통해야 한다고 말해준다. 이 새 URL은 응답 메시지의 Location 헤더에 들어있다.

304

 Not Modified

 클라이언트는 요청 헤더를 통해 요청을 조건적으로 만들 수 있다. 이 코드는 요청한 리소스가 변하지 않았다고 말해준다.

305

 Use Proxy

 리소스는 반드시 Location 헤더를 통해 그 위치가 주어진 프락시를 통해서 접근되어야 한다.

306

 (Unused)

 이 상태 코드는 현재 사용되지 않는다.

307

 Temporary Redirect

 301 상태 코드와 같다. 그러나 클라이언트는 그 리소스의 임시적인 위치를 알려주기 위해 Location 헤더에 주어진 URL을 사용해야 한다.



[표] 400~ 상태코드

상태 코드

사유 구절 

미 

400

 Bad Request

 클라이언트가 잘못된 요청을 보냈다고 말해준다.

401

 Unauthorized

 리소스를 얻기 전에 클라이언트에게 스스로를 인증하라고 요구하는 내용의 응답을 적절한 헤더와 함께 반환한다.

402

 Payment Required

 현재 이 상태 코드는 쓰이지 않지만, 미래에 사용될 가능성을 위해 준비해 두었다.

403

 Forbidden

 요청이 서버에 의해 거절되었다.

404

 Not Found

 요청한 URL을 서버가 찾을 수 없다.

405

 Method Not Allowed

 어떤 URL에 대해 지원하지 않는 메서드로 요청했다. 요청한 리소스에 대해 어떤 메서드가 사용 가능한지 클라이언트에게 알려주기 위해, 요청에 Allow 헤더가 포함되어야 한다.

406

 Not Acceptable

 클라이언트는 자신이 어떤 종류의 엔터티를 받아들이고자 하는지에 대해 매개변수로 명시할 수 있다. 이 코드는 주어진 URL에 대한 리소스 중 클라이언트가 받아들일 수 있는 것이 없는 경우 사용한다. 종종 서버는 클라이언트에게 왜 요청이 만족될 수 없었는지 알려주는 헤더를 포함시킨다.

407

 Proxy Authentication Required

 401 상태 코드와 같으나, 리소스에 대해 인증을 요구하는 프락시 서버를 위해 사용한다.

408

 Request Timeout

 만약 클라이언트의 요청을 완수하기에 시간이 너무 많이 걸리는 경우, 서버는 이 상태 코드로 응답하고 커넥션을 끊을 수 있다.

409

 Conflict

 요청이 리소스에 대해 충돌을 일으킨다.

410

 Gone

 404 상태 코드와 비슷하나, 서버가 한때 그 리소스를 갖고 있었다는 점이 다르다.

411

 Length Required

 서버는 요청 메시지에 Content-Length 헤더가 있을 것을 요구할 때 이 코드를 사용한다. 서버는 Content-Length 헤더 없이는 이 리소스에 대한 요청을 받을 수 없을 것이다.

412

 Precondition Failed

 클라이언트가 조건부 요청을 했는데 그중 하나가 실패했을 때 이 응답 코드를 반환한다.

413

 Request Entity Too Large

 서버가 처리할 수 있는 혹은 처리하고자 하는 한계를 넘은 크기의 요청을 클라이언트가 보냈다.

414

 Request URI Too Long

 서버가 처리할 수 있는 혹은 처리하고자 하는 한계를 넘은 길이의 요청 URL이 포함된 요청을 클라이언트가 보냈다.

415

 Unsupported Media Type

 서버가 이해하거나 지원하지 못하는 내용 유형의 엔터티를 클라이언트가 보냈다.

416

 Requested Range Not Satisfiable

 요청 메시지가 리소스의 특정 범위를 요청했는데, 그 범위가 무효하거나 만족시켜 줄 수 없다.

417

 Expectation Failed

 요청에 포함된 Expect 요청 헤더에 서버가 만족시킬 수 없는 기대가 담겨있었다.



[표] 500~ 상태코드

상태 코드

사유 구절 

의미 

500

 Internam Server Error

 서버가 요청을 처리할 수 없게 만드는 에러를 만났다.

501

 Not Implemented

 클라이언트가 서버의 능력을 넘은 요청을 했다.

502

 Bad Gateway

 프락시나 게이트웨이처럼 행동하는 서버가 그 용청 응답 연쇄에 있는 다음 링크로부터 가짜 응답에 맞닥뜨렸을 때 사용한다.

503

 Service Unavaiable

 서버는 현재 요청을 처리해 줄 수 없지만, 나중에는 가능할 것이다.

504

 Gateway Timeout

 상태 코드 408과 비슷하지만, 다른 서버에게 요청을 보내고 응답을 기다리다 타임아웃이 발생한 게이트웨이나 프락시에서 온 응답이라는 점이 다르다.

505

 HTTP Version Not Supported

 서버가 지원할 수 없거나 지원하지 않을 버전의 프로토콜로 된 요청을 받았다.


참고서적 : HTTP 완벽 가이드 (웹은 어떻게 동작하는 가)



728x90