Что такое HTTP-ошибка 500 (Internal Server Error)?

«Что такое HTTP-ошибка 500 (Internal Server Error)?» — вопрос из категории HTTP и веб-протоколы, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

HTTP 500 Internal Server Error — это общий код состояния, указывающий на критическую ошибку на стороне сервера, которая помешала выполнить запрос.

Основные причины:

  • Необработанные исключения в коде приложения
  • Ошибки конфигурации сервера (например, веб-сервера или базы данных)
  • Сбой зависимостей (внешние API, сервисы, недостаток памяти/диска)
  • Некорректные права доступа к файлам или скриптам

Пример возникновения в Python (Flask):

from flask import Flask
app = Flask(__name__)

@app.route('/buggy')
def buggy_endpoint():
    # Необработанное исключение приведет к ответу 500
    result = 1 / 0  # ZeroDivisionError
    return 'OK'

Действия по устранению:

  1. Изучите логи приложения и сервера — это основной источник информации об ошибке.
  2. Воспроизведите проблему в тестовой среде, используя те же параметры запроса.
  3. Проверьте работоспособность всех зависимостей (БД, кэш, сторонние API).
  4. Убедитесь в достаточности системных ресурсов (память, место на диске).
  5. Для временного восстановления может помочь перезапуск сервиса.