Ответ
Сервер вернёт один из HTTP-статусов, указывающих на ошибку доступа. Конкретный код зависит от политики безопасности и реализации сервера.
Основные статусы:
- 401 Unauthorized: Требуется аутентификация. Сервер может отправить заголовок
WWW-Authenticateс указанием схемы (например, Basic, Bearer). - 403 Forbidden: Доступ запрещён. Клиент аутентифицирован, но не имеет прав на доступ к ресурсу, либо доступ запрещён для всех.
- 404 Not Found: Иногда используется для сокрытия существования защищённых ресурсов в целях безопасности (security through obscurity).
Пример проверки на Python с использованием библиотеки requests:
import requests
try:
response = requests.get('https://api.example.com/private/data')
print(f'Status Code: {response.status_code}')
if response.status_code == 401:
print('Error: Authentication required.')
elif response.status_code == 403:
print('Error: Access forbidden.')
# Ответ может содержать JSON с описанием ошибки
if response.headers.get('Content-Type') == 'application/json':
print(f'Response body: {response.json()}')
except requests.exceptions.RequestException as e:
print(f'Request failed: {e}')
На практике всегда следует проверять документацию к конкретному API, так как поведение может отличаться.
Ответ 18+ 🔞
А, слушай, смотри, вот тебе жизненная ситуация. Ты такой приходишь куда-нибудь, в закрытый клуб, а тебя нахуй не пускают. Так и сервер, он тоже не дурак, он тебя сразу по морде статусом ответит, если ты лезешь куда не надо.
Какие бывают пиздюли от сервера:
- 401 Unauthorized: Это тебе как будто говорят: «А ты кто такой, блядь? Пропуск покажи, паспорт, лицо в камеру». Сервер может даже подсказать, какую именно бумажку ему сунуть — Basic или Bearer, в заголовке
WWW-Authenticate. - 403 Forbidden: А вот это уже жестче. Ты вроде и пропуск показал, и лицо своё поганое в камеру высунул, а тебе: «Нет, дружок, тебе сюда низя. Иди нахуй». Или просто всем туда низя. Запрещено и всё.
- 404 Not Found: А это хитрая жопа. Ресурс-то есть, но тебе скажут «нетути, иди отсюда». Чтобы ты, мудак, даже не догадывался, что там что-то секретное валяется. Безопасность через хуй пойми что.
Вот как это на практике выглядит, на питоне, с библиотекой requests:
import requests
try:
response = requests.get('https://api.example.com/private/data')
print(f'Status Code: {response.status_code}')
if response.status_code == 401:
print('Error: Authentication required.')
elif response.status_code == 403:
print('Error: Access forbidden.')
# Ответ может содержать JSON с описанием ошибки
if response.headers.get('Content-Type') == 'application/json':
print(f'Response body: {response.json()}')
except requests.exceptions.RequestException as e:
print(f'Request failed: {e}')
Но вообще, чувак, это всё теория. На деле — читай документацию к конкретному API, потому что там могут быть свои, особые, ёбнутые правила. Один сервер тебе 403 швырнет, а другой — 404, и оба будут правы, блядь.