- 정보 상태 코드 (100 - 199) 100, 101
- Success 상태 코드 (200 - 299) 200, 201, 202, 203, 204, 205, 206
- Redirection 상태 코드 (300 - 399) 300, 301, 302, 303, 304, 305, 306, 307
- Client Error 상태 코드 (400 - 499) 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 410, 411, 412, 413, 414
- Server Error 상태 코드 (500 - 599) 500, 501, 502, 503, 504, 505, 511
정보 상태 코드 (100 - 199)
100 - Continue
- 요청에 대한 시작부분 일부를 받았으며, Client는 나머지를 계속 이어서 보내야 함을 의미
- 이것을 보낸 후 Server는 반드시 요청을 받아 응답해야 한다.
101 - switching protocols
- 클라이언트가 upgrade 헤더에 나열한 것 중 하나로 서버가 프로토콜을 바꾸었음을 의미한다.
- 웹 소켓과 함께 사용될 수 있다.
Success 상태 코드 (200 - 299)
201 - Created
- 서버 개체를 생성하라는 요청을 위한 것 (PUT)
- 서버는 반드시 객체를 생성하고 해당코드로 응답해야 한다.
202 - Accepted
- 요청은 받아들여졌으나, 서버는 아직 그에 대한 어떤 동작도 수행하지 않았다.
- 서버가 요청의 처리를 완료할 것인지에 대한 어떤 보장도 없다.
요청을 받아들이기에 적법해 보인다는 의미이다.
203 - Non-Authoritative Information
- 엔터티 헤더에 들어있는 정보가 원래 서버가 아닌 리소스의 사본에서 왔다.(?)
- 프록시가 리소스의 사본을 갖고 있었지만
리소스에 대한 메타 정보(헤더)를 검증하지 못한(혹은 안 한) 경우 이런 일이 발생할 수 있다. - 요청이 성공했지만 페이로드가 원본 서버의 200(OK) 응답의 변환 프록시에 의해 수정되었음을 나타낸다.
204 - No Content
- 응답메세지에서 헤더와 상태줄은 있지만, 엔터티 본문은 없다.
- 204 응답은 기본적으로 캐시할 수 있다. 그러한 반응에는 ETag 헤더가 포함된다.
205 - Reset Content
- 브라우저를 위해 사용되는 코드
- 브라우저에게 현재 페이지에 있는 HTML 폼에 채워진 모든 값을 비우거나,
캔버스 상태를 재설정하거나,
UI를 새로 고치도록 지시한다.
206 - Partial Content
- 부분 혹은 범위 요청이 성공했다.
- 나중에 우리는 클라가 특별한 헤더를 사용해서 문서의 부분 혹은 특정 범위를 요청할 수 있다는 것을 보게 될 것이다.
- 이 상태 코드는 범위 요청이 성공했음을 의미한다.
Redirection 상태 코드 (300 - 399)
300 - Multiple Choices
- 클라이언트가 동시에 여러 리소스를 가리키는 URL을 요청한 경우, 그 리소스의 목록과 함께 반환된다.
- 요청에 둘 이상의 가능한 응답이 있음을 나타낸다.
301 - Moved Permanently
- 요청된 리소스가 Location 헤더가 지정한 URL로 확실하게 이동되었음을 나타낸다.
- 브라우저는 이 페이지로 리디렉션 되고 검색 엔진은 그들의 자원 링크를 업데이트한다
302 - Found
- 요청된 리소스가 Location 헤더가 지정한 URL로 일시적으로 이동되었음을 나타낸다.
- 브라우저는 이 페이지로 리디렉션 되지만 검색 엔진은 리소스에 대한 링크를 업데이트하지 않는다.
303 - See Other
- 클라에게 리소스를 다른 URL에서 가져와야 한다고 말해주고자 할 때 쓰인다.
- 새 URL은 응답메세지의 Location 헤더에 들어있다.
- 이 코드의 목적은 POST 요청에 대한 응답으로 클라에게 리소스의 위치를 알려주는 것.
304 - Not Modified
- 클라는 헤더를 이용해 조건부 요청을 만들 수 있다.
- 만약 클라가 GET과 같은 조건부 요청을 보냈고,
그 요청한 리소스가 최근에 수정된 일이 없다면, 이 코드는 리소스가 수정되지 않았음을 의미하게 된다.
307 - Temporary Redirect
- Location 헤더로 주어진 URL을 리소스를 임시로 가리키기 위한 목적으로 사용해야 한다.
Client Error 상태 코드 (400 - 499)
400 - Bad Request
- 클라이언트가 잘못된 요청을 보냈다고 말해준다.
401 - Unauthorized
- 리소스를 얻기 전에 클라에게 스스로 인증하라고 요구하는 내용의 응답을 적절한 헤더와 함께 반환한다.
402 - Payment Required
- 이 상태 코드는 쓰이지 않지만, 미래에 사용될 수도 있어서 미리 준비해둔 비표준 응답 코드
403 - Forbidden
- 요청이 서버에 의해 거부되었음을 알려주기 위해 사용된다.
- 왜 요청이 거부되었는지 서버가 알려주고자 한다면,
그 이유를 설명하는 엔터니 본문을 포함시킬 수 있다.
404 - Not Found
- 서버가 요청한 URL을 찾을 수 없음을 알려주기 위해 사용한다.
- 404 페이지를 띄우는 링크는 대체로 브로큰 링크(broken link) 또는 데드 링크(dead link)라고 부르며, link rot 대상일 수도 있습니다.
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 헤더가 있을 것을 요구할 때 사용한다.
- 클라가 서버에 청크 데이터를 보낼때, 서버가 청크 인코딩을 받아들여주지 않을 경우에도 411 Length Required가 내려온다.
412 - Precondition Failed
- 클라가 조건부 요청을 했는데, 그중 하나가 실패했을 때 사용한다.
- 조건부 요청은 클라가 Expect 헤더를 포함했을 때 발생한다.
- 대상 리소스에 대한 액세스가 거부되었음을 나타낸다.
413 - Payload Too Large (Request Entity Too Large)
- 서버가 처리할 수 있는 혹은 처리하고자 하는 한계를 넘은 크기의 요청을 클라가 보냈을 때 사용한다.
- 서버가 연결을 닫거나 헤더 필드(Retry-After)를 반환할 수 있다.
414 - URI Too Long (Request URI Too Long)
- 서버가 처리할 수 있는 혹은 처리하고자 하는 한계를 넘은 길이의 요청 URL이 포함된 요청을 클라가 보냈을 때 사용한다.
Server Error 상태 코드 (500 - 599)
500 - Internal Server Error
- 서버가 요청을 처리할 수 없게 만드는 에러를 만났을 때 사용한다.
501 - Not Implemented
- 클라가 서버의 능력을 넘은 요청을 했을 때 사용한다.
- 예 서버가 지원하지 않는 메서드를 사용
502 - Bad Gateway
- 프락시나 게이트웨이처럼 행동하는 서버가
그 요청 응답 연쇄에 있는 다음 링크로부터
가짜 응답에 맞닥뜨렸을 때 사용한다.
503 - Service Unavailable
- 서버가 요청을 처리해 줄 수 없지만, 나중에 가능함을 의미하고자 할대 사용한다.
- 서버가 언제 그 리소스를 사용할 수 있게 될지 알고 있다면, 서버는 Retry-After 헤더를 응답에 포함시킬 수 있다.
504 - Gateway Timeout
- 408과 비슷하지만,
다른 서버에게 요청을 보내고 응답을 기다리다
타임아웃이 발생한 게이트웨이나 프락시에서 온 응답이라는 점이 다르다.
505 - HTTP Version Not Supported
- 서버가 지원할 수 없거나, 지원하지 않으려고 하는 버전의 프로토콜로 된 요청을 받았을 때 사용한다
- 몇몇 서버 어플리케이션들은 오래된 버전의 프로토콜을 지원하지 않는 것을 택한다.
511 - Network Authentication Required
- 클라이언트가 네트워크 액세스를 얻으려면 인증이 필요하다는 것을 나타낸다.
- 이 상태는 원 서버에서 생성되는 것이 아니라
네트워크에 대한 액세스를 제어하는 프록시를 가로채서 생성된다.
- 참고
'Study > Network' 카테고리의 다른 글
프록시(Proxy)란? (0) | 2021.09.14 |
---|---|
OSI 7계층이란? (0) | 2021.08.26 |
TCP 3-way handshake와 4-way handshake 란? (0) | 2021.08.05 |
REST API란? 특징 및 규칙 그리고 장단점 (0) | 2021.08.04 |
HTTP와 HTTPS 차이점 (0) | 2021.08.01 |