2013년 11월 26일 화요일

인터넷 HTTP 발생가능 에러

200 OK
클라이언트의 request가 성공적으로 수행됐다.
request처리결과로 클라이언트에게 전달되는 정보는 사용된 method에 따라서 달라진다.
GET request가 지정한 자원이 response메세지로 전달 된다.
HEAD response메세지에는 요청된 자원에 관한 정보를 나타내는 header만이 포함된다.
POST 지정된 동작의 수행결과를 포함하거나 결과를 설명하는 엔터티가 전달된다.

201 Created

request가 처리되었고 그 결과로 새로운 자원이 생성되었다. 생성된 새로운 자원을 나타내는 URL값이 response메시지로 전달된다. 서버가 이와 같은 status code를 클라이언트에게 전달하기 위
해서는 새로운 자원을 먼저 생성시켜야 한다.
response메시지를 전달 할때까지 새로운 자원이 생성되지 못하면 status code 202(Accepted)를
보내야 한다. POST method만이 서버에 새로운 자원을 생성시킬 수 있다.

202 Accepted

request가 수락되었으나 response메시지를 전달할 때까지 그 프로세싱이 완료되지 못했으며 또한 언제
까지 request의 수행결과를 사용자가 볼 수 있을지를 확실히 판단할 수 없다. 이와 같은 status
code는 request가 수락된 것(accepted)만을 나타낼 뿐 궁극적으로 그 request가 처리될 것이라는 보장
할 수 없을 때 사용된다. status code 202는 Web브라우저와 같이 서버의 처리결과를 전달받을 때까지
계속 기다리게 되는 클라이언트를 위한 것은 아니다.
WEb브라우저와는 다른 일종의 batch프로세서(하루에 한번정도 실행되는)의 request를 서버가 받아들일 수 있도록 하기위한 것이다.

204 No

Content서버가 request를 처리했지만 클라이언트에게 전달할 새로운 정보가 없다. 이 status code를 전달받는 Web브라우저는 현재 디스플레이 중인 내용을 변경시
키지 않아야 한다. 이 code를 정의한 주된 목적은 현재 디스플레이 중인 문서의 내용을 변경시키지 않
으면서 CGI스크립트 등에 입력을 전달할 수 있도록 하기 위해서이다.

300 Multiple

HTTP/1.0을 사용하는 경우에는 이 code가 직접적으로 Choices 사용되지는 않는다. 다만, 3xx클래스에 속하는 status code의 디폴트값으로 사용된다. 그 의미는 301, 302,
304만이 HTTP/1.0에 정의되어 있으므로 그 외의 status code값을 전달받는 경우에는 300으로 간주한다는 의미가 되는 것이다.

301 Moved

요청된 자원의 URL값이 완전히 변경되었으므로 앞의 Permanently 로는 새로운 URL값을 사용하여야 한다. 새로운 URL값은 Location헤더를 통해서 클라이언트에게 전달된다. 또한 HEAD method를 제외한 모든 경우에 response메시지의 entity body를 통해서 새로운 URL의 하이퍼링크를 포함하는 짧은 메시지를 전달해 주어야 한다. Web브라우저는 POST method를 사용한 request의 결과로 301 status
code를 전달받는 경우에는 자동으로 새로운 URL에 접속해서는 안된다. 반드시, 사용자의확인을 거쳐야 한다.

Moved

요청된 자원의 URL값이 임시로 변경되었다. 따라서 추후 Temporarily 에도 현재의 URI값을 계속 사용하여야 한다. 새로운 URL 값은 Location헤더를 통해서 클라이언트에게 전달된다.
또, HEAD method를 제외한 모든 경우에 response메시지의 entity body를 통해서 새로운 URI의 하이퍼링크를 포함 하는 짧은 메시지를 전달해 주어야 한다. Web브라우저는 POST method를 사용한 response의 결과로 302 status code를 전달받는 경우에는 자동으로 새로운 URI에 접속을 해서는 안된다. 반드시 사용자의 확인을 거쳐야 한다.

Not

conditional GET method가 사용된 경우에 전달된다.
Modified request를 처리한 결과 IfModifiedSince헤더에 지정된 날짜/시간 이래로 지정된 문서가 변경된 사실이 없는 경우 서버는 이 status code로 응답해야 한다. 이때, entity body는 전송되지 않는다. reseponse메시지로 전달되는 헤더들은 주로 cache와 관련된 정보를 포함하게 된다.
cache manager(대개의 경우는 Web브라우저 자체에 그 기능이 포함된다)는 304 response에 포함된 헤더의 값을 cache된 entity들에 반영할 수 있도록 하여야 한다.

400 Bad

Request request메시지의 syntax가 잘못되어서 서버가 request를 처리할 수 없다. 재접속을 하는 경우에 클라이언트는 반드시 올바른 request메시지를 사용해야 한다.

401 Unauthorized

request가 user quthentication을 필요로 한다는 것을 클라이언트에게 알려주기 위해서 사용된다.
WWWAuthenticate헤더를 통해서 요청된 자원에 적용되는 challenge를 전달한다. 401 response를 받은 클라이언트는 적절한 Authorization credentials를 포함하는 Authorization헤더와 함께 다시 request메시지를 전송한다.
request메시지에 그와 같은 Authorization credentials이 포함된 경우에 401 status code가 전달되면 user authentication이 실패한 것을 나타낸다.

403 Forbidden

서버가 request의 처리를 거절하는 것을 나타낸다. 이와 같은 응답을 받은 경우에는 동일한 request를 반복하지 말아야 한다. 왜냐하면 무조건 request가 거절되는 것이기 때문이다. 403 status code는 request를 거절하는 이유를 명시적으로 밝히고 싶지 않거나 달리 사용할 적절한 status code가 없을때 사용된다.

404 Not

FoundRequestURI에 해당하는 자원을 찾을 수 없을 경우에 사용된다. 그런 상태가 일시적인 것인지 아니면 언제나 그렇게 되는지를 나타내는 어떤 정보도 전달되지 않는다. 이런 상태를 클라이언트에게 알리고 싶지 않은 경우에는 403 code를 대신 사용해도 된다.

500 Internal

서버프로그램에서 예기치 않은 오류가 발생하여서 request Srever Error 를 처리할 수 없다.

501 Not

request를 처리하기 위해서는 필요한 기능을 서버가 갖추고 Implemented 있지 못하다.

502 Bad

gateway나 proxy로 동작하는 서버가 사용하는 것으로 자신 Gateway 의 위쪽에 있는 서버로 부터 잘못된 response메시지를 전송 받았다는 것을 나타낸다.

503 Service

과부하나 서버 maintenance때문에 서버가 잠시동안 request Unavailable 를 처리해 줄수 없는 상태에 있다.

댓글 없음:

댓글 쓰기