Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

과거의 내가 미래의 나에게

HTTP 학습 (4-5) - 상태 코드(5xx번대) 본문

카테고리 없음

HTTP 학습 (4-5) - 상태 코드(5xx번대)

양바삭 2024. 5. 19. 17:57

드디어 상태코드의 마지막인 500번대를 살펴보고 HTTP를 마무리하겠다!

 

 

5xx (Server Error): 서버의 오류로 인해 요청을 처리할 수 없거나 하지 않음

500번대 상태 코드는 서버 내부의 오류로 인해 클라이언트의 요청을 처리하지 못하고 반환하는 코드이다. 

 

 

500 (Internal Server Error): 요청을 처리하는 과정에서 서버가 예상하지 못한 상황에 놓였다는 상태 코드이다.

이는 특별한 뜻이 담겨있다기 보단 서버 에러를 총칭하는 일반적인 응답으로 500번대 상태코드 중 적절한 것이 없다면 사용된다. 서버에서 나는 모든 에러를 다 지정할 수는 없기에 정확히 어떤 문제인지는 규정이 안되었지만 어찌되었든 서버에서 에러가 발생했다는 것을 알리는 것이다.

 

 501 (Not Implemented): 서버가 클라이언트의 요청을 수행할 수 있는 기능이 없다는 것을 알리는 것이다.

클라이언트가 아직 서버에서 구현되지 않은 기능을 요청했을 때 해당 상태코드를 내보내며, 추후 기능이 개발될 여지가 있다면 클라이언트에게 다시 시도할 시기를 알려주는 Retry-After 헤더를 같이 전송해줄 수 있다.

비슷한 것으로 405 상태코드가 존재하는데, 405는 클라이언트가 요청한 메서드를 알고 있지만 해당 기능을 지원하지 않는다는 것이고, 501은 클라이언트가 요청한 메서드가 존재하는지 확인할 수 없어서 지원해줄 수 없음을 의미한다.

 

 502 (Bad Gateway): 중간에 있는 서버가(프록시 서버 또는 게이트웨이) 원 서버로부터 잘못된 응답을 받았을 때의 상태코드이다.

원 서버가 너무 많은 요청을 처리하고 있어서 중간 서버의 요청에 제대로 응답하지 못하거나, 원 서버에 연락조차 안되거나, 원 서버와 중간 서버의 네트워크 연결에 문제가 있는 등, 중간 서버와 원 서버의 교류에 문제가 있을 때 반환하는 상태이다.

 

503(Service Unvailble): 서버가 요청을 처리할 준비가 안되었을 때 반환하는 상태 코드이다.

서버에 과부하가 걸렸거나 혹은 서버가 점검 중일 때 반환하는 것으로 지금 일시적으로 응답할 수 없다는 의미이다. 서버가 다시 요청 가능한 때를 알고 있다면 Retry-After 헤더를 응답에 포함시킬 수도 있다. 

 

 504(Gateway Timeout): 중간에 있는 서버가(프록시 서버 또는 게이트웨이) 원 서버로부터 응답을 기다리다 타임아웃이 발생했을 때 반환하는 상태 코드이다.

 

 505(HTTP Version Not Supported): 클라이언트 요청의 HTTP 버전을 서버가 지원하지 않을 때 반환하는 상태 코드이다. 

426 상태코드는 클라이언트가 서버에 특정 프로토콜로 요청을 처리해달라 보냈을 때 이를 거절하는 상태코드였는데 505 상태코드가 유사하여 살펴보니 아마 이런 차이가 있는 듯하다. 426은 일단 HTTP버전이 아닌 프로토콜이기도 하고, 또 단순히 요청을 거절하는 것이 아닌 upgrade가 필요함을 알려주는 상태코드이다. 반면 505는 클라이언트이 요청 HTTP를 지원하지 않음을 알려주는 상태 코드로 업그레이드하고 자시고가 아니라 그냥 지원 안하고있으니 그리 알라는 느낌인듯 하다.

 

 506(Variant Also Negotiates): 콘텐츠 협상과 관련있는 상태 코드로, 표준이 아닌 응답 코드라 한다.

 

 507(Insufficient Storage): 서버에 공간 부족으로 처리에 실패했다는 상태 코드로, WebDAV 전용이다. 

 

 508(Loop Detected): 리소스간에 무한 루프를 감지했다는 상태 코드로, WebDAV 전용이다. 

 

 510(Not Extended): 추가 확장이 필요하는 상태 코드로, 표준이 아닌 응답 코드라 한다.

 

 511(Network Authentication Required): 클라이언트가 네트워크에 접근하기 위해서는 인증을 받아야 한다는 상태 코드이다. 

지하철같은 곳에서 네트워크 연결하고 웹 접속 시 내가 가려던 페이지가 아닌 네트워크 로그인 화면이 나올 때가 있는데 그 경우가 바로 이 상태 코드와 관련되어있다. 

 

 599(Network Connect Timeout Error): 네트워크 연결이 타임아웃 되었음을 의미하고, 표준이 아닌 응답 코드라 한다.

 

 


참고 문서

 

 

 

 

Comments