개발관련 도서/Http&Network Basic

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

prden 2021. 7. 11. 19:33

3장은 특별한 내용 없다.

Request와 Respose 메시지에 대해서는  :https://prde.tistory.com/81

 

Http와 REST

1. Http 프로토콜 HTTP 메시지 프로토콜은 반드시  request/response의 한쌍으로 구성되어있다. 그리고 request와 response는 각각  header와 body로 이루어져 있고 header와 body 사이에는 반드시 한 줄이 띄..

prde.tistory.com

1. 상태 코드

src =p 79 그림으로 배우는 Http& Network

 1) 2XX (성공)

  •  204 : 리퀘스트를 성공했지만 돌려줄 리소스 없을 경우 : 클라이언트에서 서버로 정보를 보내는 것으로 족하고, 클라이언트에 새로운 정보를 보낼 필요가 없는 경우 사용
  • 206 : 이 리스폰스는 Content-Range로 지정된 범위의 엔티티가 포함된다. 

 2) 3XX (Redirect)

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

3) 4XX (클라이언트 에러) : 클라이언트의 원인으로 에러가 발생

  • 400 Bad Request : 리퀘스트 구문이 잘못되었음을 나타냄. 리퀘스트 내용을 재검토하고 나서 재송신할 필요가 있다. 브라우저는 이것을 200OK와 같이 취급한다. 
  • 401 Unauthorized : 리퀘스트에 HTTP 인증(BASIC 인증, DIGEST인증) 정보가 필요하다는 것을 나타낸다. 또한, 이미 1번 리퀘스트가 이루어진  경우에는 2번째에 유저 인증이 실패했음을 표시한다. 

src - p86. 그림으로 배우는 Http & Network

  • 403 Forbidden : 리퀘스트된 리소스의 액세스가 거부되었음을 나타낸다. 이유는 엔티티 바디에 기재되어 있다. 발생 원인으로는 파일 시스템에 퍼미션이 부여되지 않은 경우 혹은 액세스 권한에 문제가 있는 등의 경우가 있다. 
  • 404 Not Found : 리퀘스트한 리소스가 서버상에 없다는 것을 나타낸다. 그외에 서버 측에서 해당 리퀘스트를 거부하고 싶은 이유를 분명히 하고 싶지 않은 경우에도 이용할 수 있다. 

4) 5XX 서버 에러

  • 500 Internal Server Error : 서버에서 리퀘스트를 처리하는 도중에 에러가 발생하였음을 나타낸다. 
  • 503 Service Unavaliable : 서버가 일시적으로 과부하 상태이거나 점검 중이기 때문에 현재 리퀘스트를 처리할 수 없음을 나타낸다. 이 상태가 해소되기까지 시간이 걸리는 경우 Retry-After 헤더 필드에 따라 클라이언트에 전달하는 것이 바람직하다. 

※ 상태코드가 현재 상황과 불일치할 수도 있다. 

 : 리스폰스로 되돌아오는 상태코드의 대부분은 유저가 다른 내용을 알기 어렵게 되어있다. 흔히 웹 애플리케이션에서 에러가 발생한 경우에도 상태 코드는 200OK로 되돌아오는 경우가 있다.