현재 진행중인 프로젝트를 하다가 에러페이지를 다루는 과정에서 한 번 정리해볼 필요가 있을것 같아서 작성하게되었다.
ToC
1xx - 정보응답 (Information Responses)
100 : Continue
- 진행중임을 나타내는 응답코드이며, 지금까지 상태가 OK임을 의미.
- 클라이언트가 계속 요청하거나 이미 요청을 완료한 경우에 무시해도 되는 것을 알려준다.
101 : Switching Protocol
- 클라이언트가 보낸 업그레이드 요청 헤더에 대한 응답으로 보내진다.
- 서버에서 프로토콜을 변경할 것임을 알려준다.
102 : Processing (WebDAV)
- 서버가 요청을 수신하였으며 이를 처리하고 있지만, 아직 제대로된 응답을 알려줄 수 없는 상태임을 알려준다.
2xx - 성공응답 (Successful Responses)
200 : OK
- 요청이 성공적으로 되었음을 나타내는 응답코드. HTTP 메서드에 따라 무엇을 성공했는지 의미가 달라진다.
GET
: 리소스를 불러와서 메세지 바디에 전송HEAD
: 개체 헤더가 메세지 바디에 존재PUT
orPOST
: 수행 결과에 대한 리소스가 메세지 바디에 전송TRACE
: 메세지 바디는 서버에서 수신한 요청 메세지를 포함
- 요청이 성공적으로 되었음을 나타내는 응답코드. HTTP 메서드에 따라 무엇을 성공했는지 의미가 달라진다.
201 : Created
- 요청이 성공적이었으며, 그 결과로 새로운 리소스가 생성.
- 일반적으로
POST
요청 또는 일부PUT
요청 이후에 따라온다.
202 : Accepted
- 요청을 수신하였지만 그에 응하여 행동할 수 없다.
- 이 응답은 요청 처리에 대한 결과를 이후에 HTTP로 비동기 응답을 보내는 것에 대해서 명확하게 명시하지 않는다.
- 다른 프로세스에서 처리 또는 서버가 요청을 다루고 있거나 배치 프로세스를 하고 있는 경우를 위해 만들어졌다.
204 : No Content
- 요청에 대해서 보내줄 수 있는 컨텐츠가 없지만, 헤더는 의미있을 수 있다.
user-agent
는 리소스가 캐시된 헤더를 새로운 것으로 업데이트할 수 있다.
3xx - 리다이렉션 메시지 (Redirection Message)
301 : Moved Permanently
- 이 응답 코드는 요청한 리소스의 URI가 변경되었음을 의미한다.
- 새로운 URI가 응답에서 주어질 수 있다.
302 : Found
304 : Not Modified
- 캐시를 목적으로 사용된다.
- 클라이언트에게 응답이 수정되지 않았음을 알려주며, 그래서 클라이언트는 계속해서 응답의 캐시된 버전을 사용할 수 있다.
4xx - 클라이언트 에러응답(Client Error Responses)
400 : Bad Request
- 잘못된 문법으로 인하여 서버가 요청을 이해할 수 없음을 의미한다.
- 따라서 서버가 클라이언트가 누구인지를 모르는 상태이다.
401 : Unauthorized
- 비인증(unauthorized)을 의미한다. 클라이언트는 요청한 응답을 받기 위해서 반드시 스스로를 인증해야한다.
403 : Forbidden
- 클라이언트가 컨텐츠에 접근할 권리가 없음을 의미한다.
- 401과 다른 점은 서버가 클라이언트가 누구인지는 알고 있다는 점이다.
404 : Not Found
- 서버는 요청받은 리소스를 찾을 수 없다.
- 브라우저에서 알려지지 않은 URL을 의미한다.
- 서버는 인증받지 않은 클라이언트로부터 리소스를 숨기기위하여 403대신 404을 응답할 수도 있다.
405 : Method Not Allowed
- 요청한 메서드는 서버에서 알고있지만, 제거되어서 더이상 사용할 수 없음을 의미한다.
- 필수적인 메서드인
GET
과HEAD
는 제거될 수 없으며 이 에러 코드를 리턴할 수 없다.
406 : Not Acceptable
- 이 응답은 서버가 서버 주도 컨텐츠 협상을 수행한 이후, 사용자 에이전트에서 정해준 규격에 따른 어떠한 컨텐츠도 찾지 않았을때, 웹서버가 보낸다.
409 : Conflict
- 요청이 현재 서버의 상태와 충돌될 때 보내진다.
429 : Too Many Requests
- 사용자가 지정된 시간에 너무 많은 요청을 보냈을 때 응답된다.
5xx - 서버 에러응답 (Server Error Responses)
500 : Internal Server Error
- 서버가 처리방법을 모르는 상황을 의미한다.
502 : Not Implemented
- 서버에서 지원되지 않아서 처리할 수 없는 상태이다.
- 서버가 지원해야 하는 유일한 방법은
GET
과HEAD
이다. - 이 코드는 반환하면 안된다.
503 : Service Unavailable
- 서버가 요청을 처리할 준비가 되지 않았을 때 응답된다.
- 일반적으로 유지보수를 위해 서버 작동이 중단되거나 과부하가 걸렸을때 응답된다.
- 이 때는 사용자 친화적인 페이지를 전송시켜서 어떠한 이유로
503
상태인지를 설명해야한다. - 이 응답은 임시조건에 사용되어야 하며, 일시적인 조건 응답을 캐시하지 않아야 하므로 이 응답과 함께 전송되는 캐싱 관련 헤더에 대해서도 주의해야한다.
504 : Gateway Timeout
- 이 오류 응답은 서버가 게이트웨이 역할을 하고 있으며 적시에 응답을 받을 수 없을때 주어진다.