웹개발 및 최신 테크 소식을 전하는 블로그, 웹이즈프리

HOME > webdevetc

Internal Server error, 서버 500 에러는 어떤 경우에 발생하나요?

Last Modified : 2020-08-28 / Created : 2017-04-27
406,421
View Count
웹서버를 구동하거나 사이트를 방문하면 다음과 같은 에러 메시지를 가끔씩 볼 수 있습니다.

'500 Server error'


간단하게 이해하면 서버 에러가 발생했다는 것을 알 수 입니다. 그런데 앞에 있는 500이라는 숫자는 무엇일까요? 그리고 어떤 의미가 있을까요? 아래는 이처럼 서버에서 발생 가능한 에러를 간략하게 정리한 내용입니다.




# 서버 에러 메시지 관련 알아보기

서버는 에러 발생시 다양한 에러 코드를 반환합니다. 이때 500처럼 숫자로 반환하는 경우가 있으며 각각의 숫자는 에러마다 정의된 코드와 의미를 가지고 있습니다. 만약 Internal Server error가 500인 경우 다음과 같은 상황입니다.


! 500 에러 메시지를 출력하는 경우

500 에러의 경우 서버의 동작에서 발생하는 에러 중 더 정확한 에러 코드가 아닌 경우를 나타냅니다. 즉 예외적인 또는 예측하지 못한 에러의 경우 500에러로 출력된다고 생각할 수 있습니다. 다양한 원인이 있겠지만 발생되는 원인을 간단히 살펴보면 다음과 같을 수 있습니다.
- 서버 통신의 Timeout 시간 지연 오류
- 서버 트래픽 과부하
- 서버 언어의 구문 에러(스크립트 문법 오류)
이처럼 500 에러는 분류되지 못한 오류 신호로 자세한 정보를 담고 있지는 않기 때문에 정확한 원인 파악을 위해서는 정보가 부족한 게 사실입니다. 더 자세한 정보를 위의 코드 만으로는 확인하기 어렵기 때문에 500에러는 특히 서버의 로그 정보를 확인하여 원인을 파악하는 것이 나을 수 있겠습니다.


@ [기타 정보] 자주 출력되는 서버 에러 코드 및 원인

아래는 간략하게 서버에서 자주 출력되는 에러만 어떤 것이 있는지 알아보았습니다.

200 // [ OK ] 서버의 Request가 유효하고 성공한 경우
301 // [ Moved Permanently ] 서버에서 리다이렉트(redirect) 페이지 이동 발생
401 // [ Unauthorized ] 유효한 인증 정보를 가지지 않는 경우
403 // [ Forbidden ] 인증이 실패한 경우
405 // [ Methods Not Allowed ] 서버에 요청한 Methods가 유효하지 않는 경우
503 // [ Service Unavailable]  서버가 요청을 받을 준비가 되지 않은 경우

그럼 계속해서 아래는 500 에러 관련 추가 정보입니다.


! 500 에러의 출력 메시지의 형태

서버 마다 출력하는 메시지는 다양한데요 일반적으로 아래의 경우처럼 출력됩니다.
Internal 500 error
HTTP 500 error
Internal Server Error
500 Error
500: Internal Server Error

어떤 OS에서의 서버 환경이냐에 따라 다르겠죠. 예를들어 nginx, apache 등의 에러값 역시 Default 또는 custom 에러 설정 등에 다른 메시지를 반환할 것입니다.


! 기타사항

서버 중에서도 IIS 서버의 경우는 가장 자세한 500 에러를 반환한다고 합니다. 즉 서버에 따라 500에러의 출력 정보가 차이가 있을 수 있습니다.


Previous

특수문자를 제외하고 검색하는 정규표현식 방법

Previous

svg 그리고 canvas 장단점 나열하기