← Назад к вопросам

Что такое пятисотый статус код?

1.0 Junior🔥 231 комментариев
#Тестирование API

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Что такое 500 статус код

500 Internal Server Error это самый распространенный серверный error код. Означает что на сервере произошла ошибка и он не может обработать запрос.

Основная информация

Что означает:

  • Ошибка на сервере, а не на клиенте
  • Сервер не может обработать валидный запрос
  • Причина неизвестна клиенту (иногда)

Кто за неё отвечает:

  • Разработчик backend
  • Администратор сервера
  • Иногда infrastructure

Статус код:

  • 5xx это серверные ошибки
  • 4xx это клиентские ошибки
  • 500 это самый generic серверный error

Частые причины 500 ошибки

1. Exception в коде

  • NullPointerException
  • IndexOutOfBoundsException
  • DivisionByZero
  • Типичная ошибка разработчика

2. Database ошибки

  • Connection timeout
  • Query fail
  • Deadlock в БД
  • Out of memory в БД

3. External service fail

  • API сервис не отвечает
  • Timeout при обращении к внешнему сервису
  • Network issue

4. Configuration проблемы

  • Неправильная конфиг
  • Missing environment variable
  • Wrong credentials

5. Resource исчерпаны

  • Out of memory
  • Disk full
  • Too many connections
  • CPU перегруз

Похожие 5xx ошибки

501 Not Implemented:

  • Метод не реализован
  • Сервер не поддерживает такой метод

502 Bad Gateway:

  • Gateway/proxy ошибка
  • Upstream сервер не отвечает

503 Service Unavailable:

  • Сервис временно недоступен
  • Maintenance
  • Overloaded

504 Gateway Timeout:

  • Timeout при обращении к upstream

Как я тестирую 500 ошибки

1. API запрос который вызывает 500: Отправляю запрос который я знаю вызовет ошибку:

  • Invalid parameters
  • Missing required field
  • Wrong data type
  • Boundary values

2. Проверка response:

  • Status code должен быть 500
  • Response body должен содержать error message
  • Logging должен содержать stack trace

3. Проверка поведения UI:

  • Что видит пользователь
  • Показывает ли приложение понятное сообщение
  • Или просто crashing

4. Recovery:

  • Может ли пользователь retry
  • Что происходит при retry
  • Восстанавливается ли система

Как я находу 500 ошибки

Через DevTools:

  • Network tab
  • Смотрю status code
  • Если 500, это error

Через логи:

  • Backend логи
  • Stack trace
  • Время ошибки
  • Какой запрос вызвал

Через мониторинг:

  • Error tracking (Sentry, New Relic)
  • Видно сколько 500 ошибок было
  • Какие самые частые
  • Когда началось

Тестирование 500 ошибок

Negative testing:

  • Отправляю intentionally bad data
  • Проверяю что сервер отвечает 500
  • А не crash без ответа

Load testing:

  • При высокой нагрузке
  • Начинаются 500 ошибки
  • Server overloaded

Chaos testing:

  • Отключу database
  • Отключу external API
  • Заполню память
  • Проверю что сервис gracefully fails

Error handling:

  • Есть ли попытка recovery
  • Есть ли fallback
  • Логируется ли ошибка

Как должна выглядеть хорошая 500 ошибка

1. Status код 500

  • Clearly указывает на серверную ошибку

2. JSON response:

{
  error: Internal Server Error,
  message: Something went wrong on server,
  timestamp: 2024-01-01T12:00:00Z,
  requestId: abc123
}

3. Request ID:

  • Для трейсинга в логах
  • Пользователь может дать support

4. Не expose sensitive info:

  • Stack trace НЕ в response
  • Database errors НЕ видны
  • Internal paths НЕ видны

5. Логирование:

  • Full stack trace в logs
  • Request details
  • User info если нужно
  • Timestamp

Как я отвечу на 500 ошибку в bug report

Title: API endpoint returns 500 when user submits form

Steps:
1. Fill form with valid data
2. Click Submit
3. Observe error

Expected:
- Form submits successfully
- User sees success message
- Data saved in database

Actual:
- HTTP 500 error
- Request ID: xyz789
- Timestamp: 2024-01-01 12:30:00 UTC

Screenshot: [attached]
DevTools Network tab: [attached]
Server logs: [attached]

Вывод

500 ошибка это серверная ошибка которую нужно исправить разработчику. QA инженер должен найти какой запрос её вызывает, собрать логи и описать в bug report. Хороший 500 error имеет понятное сообщение, логируется, и позволяет пользователю попробовать снова.

Что такое пятисотый статус код? | PrepBro