Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Что такое 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 имеет понятное сообщение, логируется, и позволяет пользователю попробовать снова.