2018-5-30 Network chapter4

결과를 전달하는 HTTP상태코드

  • 클라이언트가 서버에 리퀘스트를 보냈을때 서버에서 리퀘스트에 대한 결과를 가르쳐주는것이 상태코드의 역할이다.
  • 상태코드는 5가지의 클래스로 정의가 되어있다.

상태 코드 클래스

  1. 1xx Informational : 리퀘스트를 받아들여 처리중
  2. 2xx Success : 리퀘스트를 정상적으로 처리
  3. 3xx Redirection : 리퀘스트를 완료하기 위해서 추가 동작이 필요
  4. 4xx Client Error : 서버는 리퀘스트 이해 불가능
  5. 5xx Server Error : 서버는 리퀘스트 처리 실패

2xx 성공

  • 2xx 리스폰스는 리퀘스트가 정상으로 처리되었음을 나타낸다.
  • 200 OK
  • 204 No Content : 리퀘스트는 처리했지만 자료가 없기때문에 화면이 변하지는 않는다.
  • 206 Partial Content : Range에 의해서 범위가 지정된 리퀘스트에 의해 서버가 부분적으로 GET 리퀘스트를 받음. 리스폰스에 Content-Range로 지정된 범위의 엔티티가 포함

3xx 리다이렉트

  • 3xx 리스폰스는 리퀘스트가 정상적으로 처리를 종료하기 위해 브라우저 측에서 특별한 처리를 수행해야 함을 나타낸다.

  • 301 Move Permanently : 리퀘스트된 리소스에는 새로운 URI가 포함되어 있으므로, 해당 URI를 참조해야된다는 의미
  • 302 FOUND : 리소스에 새로운 URI가 할당되다. 301과 비슷하지만 302의 경우 영구적인 이동이 아닌, 일시적인 이동이다.
  • 303 See Other : 리퀘스트에 대한 리소스는 다른 URI에 있기 때문에 GET 메소드를 사용해서 얻어야 한다는 것을 나타냄. 302 FOUND와 같은 기능이지만, 리다이렉트 장소를 GET 메소드로 얻어야 한다고 명확하게 되어있는 점이 차이
301, 302, 303 리스폰스 코드가 되돌아 오면, 대부분의 브라우저에서는 POST를 GET으로 바꾸어서 리퀘스트의 엔티티 바디를 삭제하고 리퀘스트를 자동적으로 재송신하게 되어있다.

4xx 클라이언트 에러

  • 4xx 리스폰스는 클라이언트의 원인으로 에러가 발생함을 나타냄

  • 400 Bad Request : 리퀘스트 구문이 잘못되었음을 나타냄.

  • 송신한 리퀘스트에 HTTP 인증정보가 필요하다는 것을 알린다. 이미 1번 리퀘스트가 실패했음을 표시
  • 403 Forbidden : 리퀘스트에 대한 리소스의 액세스가 거부되었음을 나타낸다.
  • 404 Not Found : 리퀘스트한 리소스가 서버에 없다.

5xx 서버에러

  • 5xx 리스폰스는 서버의 원인으로 에러가 발생함을 나태낸다.

  • 500 Internal Server Error : 서버에서 리퀘스트를 처리하는 도중에 에러가 발생
  • 503 Service Unavailable : 일시적으로 서버가 과부하 상태이거나 점검중이기 때문에 현재 리퀘스트를 처리할 수 없음.
Written on May 30, 2018