Перечисли основные HTTP статус-коды 5xx и их назначение.

Ответ

Коды состояния 5xx обозначают ошибки на стороне сервера.

  • 500 Internal Server Error: Общая ошибка сервера, когда он столкнулся с непредвиденной ситуацией, которая не позволяет выполнить запрос (например, необработанное исключение в коде).
  • 501 Not Implemented: Сервер не поддерживает функциональность, необходимую для выполнения запроса (например, незнакомый метод HTTP).
  • 502 Bad Gateway: Сервер, выступая в роли шлюза или прокси, получил недействительный ответ от вышестоящего сервера.
  • 503 Service Unavailable: Сервер временно не может обрабатывать запросы из-за перегрузки или технического обслуживания. Ответ может включать заголовок Retry-After с указанием времени ожидания.
  • 504 Gateway Timeout: Сервер, выступая в роли шлюза или прокси, не дождался своевременного ответа от вышестоящего сервера.

Пример обработки в тестах (Python):

import requests

try:
    response = requests.get('https://api.example.com/data', timeout=10)
    response.raise_for_status()  # Вызовет исключение для 4xx/5xx кодов
    # Обработка успешного ответа...
except requests.exceptions.HTTPError as e:
    if response.status_code >= 500:
        print(f'Серверная ошибка: {e}')
    else:
        print(f'Клиентская ошибка: {e}')

Ответ 18+ 🔞

А, слушай, вот это тема! Коды 5xx — это когда сервер, сука, сам обосрался. Не ты виноват, а он, падла, не справился. Вот прям классика жанра.

500 Internal Server Error — это когда на сервере какая-то неведомая хуйня случилась. Типа код написали криворукие, исключение не обработали, и всё, пиздец, сервак в ауте. Просто говорит: «Бля, я сам в шоке, что произошло».

501 Not Implemented — это когда ты пришёл к нему с какой-то диковинной просьбой. «Э, дружок-пирожок, — говорит сервер, — а я так не умею, нахуй. Ты мне метод какой-то левый прислал, я в жизни такого не видел».

502 Bad Gateway — о, это любимое! Сервер работает как посредник, запросил что-то у другого сервиса, а тот ему в ответ какую-то ахинею прислал. И наш сервер такой: «Ну что за мудак? Я ж не могу эту хуйню клиенту переслать!» И шлёт тебе 502.

503 Service Unavailable — тут всё просто. Серверу на голову упал или его админы обновляют. Он тебе вежливо так: «Извини, братан, я сейчас не в форме. Зайди попозже, а?» Может даже в заголовках написать, через сколько вернуться.

504 Gateway Timeout — это когда сервер-посредник заждался ответа от другого сервиса. «Ну я жду, жду, — думает он, — а этот уёбок вообще молчит. Всё, клиент, прости, таймаут. Иди нахуй».

Вот, например, как это в коде выглядит, если ты на Python'е тесты пишешь:

import requests

try:
    response = requests.get('https://api.example.com/data', timeout=10)
    response.raise_for_status()  # Если код 4xx или 5xx — тут же исключение кинет
    # Если добрались сюда — значит, всё чики-пуки, работаем с ответом...
except requests.exceptions.HTTPError as e:
    if response.status_code >= 500:
        print(f'Серверная ошибка: {e}')  # Типа «ой, ёпта, это они накосячили»
    else:
        print(f'Клиентская ошибка: {e}')  # А это уже, скорее всего, твои ручонки кривые

Вот так вот, блядь. Главное — помнить: если 5xx, то не ты мудак, а они. Можно расслабиться и идти пить чай, пока они там свои косяки разгребают.