Код ответа

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Код ответа, Код причины завершения или Код возврата (в англоязычной литературе также Cause code, Reason code, Status code, Disconnect code и т. д.) — в телекоммуникациях — цифровой код, сформированный узлом в результате выполнения запроса, который характеризует то или иное событие протокола или технологии, произошедшее на отвечающей стороне: успешное или неуспешное выполнение и т. д. Нередко коды ответа сопровождаются лаконичным комментарием на английском языке, а в ответном сообщении вместе с цифровым кодом и его расшифровкой может передаваться другая необходимая информация (например, запрошенные данные).

Получив код ответа, автор запроса может сделать выводы о характере события и продолжить работу или завершить её, согласно ситуации. Коды ответа очень часто используется в архитектуре клиент-сервер, однако применение не ограничивается только ей и могут использоваться для взаимодействия равнозначных узлов/приложений в рамках соответствующего протокола.

В зависимости от сферы применения коды завершения могут быть общепринятыми и узкоспециальными. Однако в подавляющем большинстве случаев разработчики стандартизируют коды ответов своих проектов и предоставляют полноценные описания причины каждого события, в результате которого может быть получен тот или иной ответ с цифровым кодом. В протоколах, сходных по назначению, могут применяться одинаковые коды, хотя в большинстве случаев, цифровые коды возврата уникальны для каждой технологии или протокола.

Знание кодов ответа и ошибок позволяет пользователям, разработчикам и обслуживающему персоналу системы эффективно заниматься анализом проблем (при условии, что возможно сохранение лога работы протокола). Также для отладки может пригодиться анализатор трафика (например, Wireshark).

Коды ответов станций в телефонной связи[править | править вики-текст]

В телефонной сигнализации, обеспечивающей коммутацию вызова и все процедуры, связанные с его установлением, изменением состояния и завершением, применяются общепринятые стандартные коды ответов на запросы.

Традиционная телефония ТФОП[править | править вики-текст]

Код завершения вызова и/или окончательного ответа станции на запрос сохраняется в подробную запись о вызове (CDR). Коды ответов узлов / станций / абонентов в традиционной телефонии описываются в стандарте Q.850 для ISUP сети ОКС-7 и в Q.931 для ISDN или с помощью СИТ-тона). Обычно на коммутаторе можно настроить, какой звук будет проигрываться абоненту для каждого кода завершения (абонент недоступен, абонент занят, сеть перегружена и т. п.).

Примеры кодов ответов:

Код Значение Пояснение
16 Normal call clearing Нормальное завершение вызова
17 User busy Абонент занят
22 Number changed Номер изменен
28 Invalid Number Format (address incomplete). Вызываемый номер не соответствует принятому формату или не полон.
101 The Message is Not Compatible with the Call State. Полученное сообщение несовместимо с состоянием вызова.

IP-телефония[править | править вики-текст]

Код завершения вызова и/или окончательного ответа станции на запрос так же, как и в традиционной телефонии, сохраняется в подробную запись о вызове (CDR). Так как коды разных протоколов могут различаться, в мультипротокольных продуктах NGN операторам связи нередко приходится решать задачу адекватного сопоставления кодов ответа станции одного протокола кодам соответствия другого (сообщения из SIP в H.323 или ISDN и наоборот), это называется трансляцией кодов (или mapping).

H.323[править | править вики-текст]

Оборудование и программное обеспечение H.323 завершает вызовы с кодами ответов, соответствующие стандарту Q.931, так как данный стэк протоколов разрабатывался для максимального соответствия ISDN и многие моменты организации взаимодействия сторон унаследованы из цифровой телефонии. (Примеры смотри выше)

SIP[править | править вики-текст]

SIP — Протокол установления сеанса, следуя принципу упрощения запросов и ответов в рамках телефонного вызова, унаследовал структуру ответов и их виды от протокола HTTP.

Примеры кодов ответов:

Код Значение Пояснение
180 Ringing Уведомление о начале вызова
200 OK Стандартный ответ, подтверждающий согласие на действие по запросу
404 Not found Вызываемый абонент не найден
603 Decline Означает, что вызываемая сторона отклонила входящий вызов

Коды ответов в сетевых приложениях[править | править вики-текст]

В приложениях код ответа является частью взаимодействия администратора и системы.

Передача файлов (FTP)[править | править вики-текст]

FTP является одним из старейших прикладных клиент-серверных протоколов, предназначенным для передачи файлов в компьютерных сетях, в котором команды и коды ответа сервера являются стандартизированными и популярными.

Примеры кодов ответов:

Код Значение Пояснение
220 FTP server ready Сервер готов обрабатывать запросы
230 Login successful. Пользователь успешно подключился
150 Ok to send data Согласие принимать данные от пользователя
226 File receive OK Файл передан успешно

Взаимодействие с веб-сервером (HTTP)[править | править вики-текст]

Код состояния HTTP является частью первой строки ответа веб-сервера на действия пользователя. Клиент узнаёт по коду ответа о результатах его запроса и определяет, какие действия ему предпринимать дальше. Набор кодов состояния является стандартом, и они описаны в соответствующих документах (один из последних RFC 2616).

Примеры кодов ответов:

Код Значение Пояснение
202 Accepted Запрос был принят на обработку, но обработка не завершена.
400 Bad Request Сервер обнаружил в запросе клиента синтаксическую ошибку.
401 Unauthorized Запрос требует идентификации пользователя.
403 Forbidden Сервер понял запрос, но он отказывается его выполнять из-за ограничений в доступе со стороны клиента к указанному ресурсу.
404 Not Found Сервер понял запрос, но не нашёл соответствующего ресурса по указанному адресу.

Отправка сообщений электронной почты (SMTP)[править | править вики-текст]

Почта по протоколу SMTP посылается от клиента к серверу. Клиент запрашивает соединение с сервером и выполняет различные команды. Почтовый сервер (MTA) реагирует на запросы и выдаёт соответствующие ответы.

Примеры кодов ответов:

Код Значение Пояснение
220 Service Ready Почтовый сервер готов к обслуживанию (может отправляться вместе с доменным именем сервера и версией ПО)
250 OK Команда принята и обработана
550 No such user here Ошибка: указанный почтовый ящик (пользователь) отсутствует

См. также[править | править вики-текст]