Что такое код dosexterr

Содержание

MCC код торговой точки Exist / Экзист (оплата через сайт пополнением баланса)

Название торговой точки: Exist / Экзист (оплата через сайт пополнением баланса)

Адрес: Московская обл, г Мытищи

Торговая точка Exist / Экзист (оплата через сайт пополнением баланса) в программах лояльности различных банков

Категория Карта
Автоуслуги Тинькофф Black
Авто БИНБАНК Platinum
Авто БИНБАНК Комфорт
Автоуслуги Tinkoff Drive

Полезная информация

О проекте

Сервис предоставляется «как есть», не является официальным справочником. Вся информация собрана и структурирована из открытых данных или внесена пользователями. Банк в любой момент может в одностороннем порядке изменить mcc-код торговой точки. При использовании материалов сайта активная гиперссылка на сайт mcc-cod.ru обязательна.

Контакты

В любой непонятной ситуации пишите на [email protected], с предложениями и пожеланиями — сюда же, но с пометкой mcc ;)

Exmo Введите код ТОТР или смс

DavidBailey

Свой человек

У меня большая проблемма!
Exmo-настройки-раздел 2-факторка или смс.

1-Поставил в настройках СМС авторизацию -пришла смска из 9 цифр.
Как я понял -это защита по номеру телефона.

2-Потом я пошел в Раздел 2-факторка и поставил ,сгенерировал ключ 16 больших букв и записал в блокнот!
Сохранил настройки и Пришла Смска 9 цифр!

3-Решил проверить как работает защита у Ексмо!Вышел из акка!

Теперь после ввода мейла и пароля требует ввести
» Введите код ТОТР или смс»

Код подтверждения слишком длинный (максимум 6 цифр)

У м
еня вопрос В СМСКЕ 9 цифр а просит ввести 6 цифр!В чем прикол?И как теперь я верну аккаунт?

PashoK

Бывалый

ReneeF

Свой человек

У меня большая проблемма!
Exmo-настройки-раздел 2-факторка или смс.

1-Поставил в настройках СМС авторизацию -пришла смска из 9 цифр.
Как я понял -это защита по номеру телефона.

2-Потом я пошел в Раздел 2-факторка и поставил ,сгенерировал ключ 16 больших букв и записал в блокнот!
Сохранил настройки и Пришла Смска 9 цифр!

3-Решил проверить как работает защита у Ексмо!Вышел из акка!

Теперь после ввода мейла и пароля требует ввести
» Введите код ТОТР или смс»

Код подтверждения слишком длинный (максимум 6 цифр)

У меня вопрос В СМСКЕ 9 цифр а просит ввести 6 цифр!В чем прикол?И как теперь я верну аккаунт?

PashoK

Бывалый

kanoT11

Свой человек

vad740

Свой человек
Свой человек

DavidBailey

Свой человек

ой ой ой!У меня нету смартфона и планшета!Можете мне не писать советы)(он мне нахер не нужен) Смартфоны они все уязвимы,угонят деньги вирусней и ни кто не поможет.
У кого воровали со смартфона,тот поймет меня.(у сотовых операторов есть свои крысы кстати и хакеры).

2-факторку я пройду с Компьютера,через емулятор смартфонов!

Под биржи и майнинг: отдельные компы-и чистый софт!( Всякие там майнеры,и софты супер монеток ,стороной)

У Електрониума(криптонайт), кстати была дыра в кошельке-могли угнать биткоины, если кошель БТК был вкл!(не переживайте дыру залатали) Но в памяти осталось ,что твои биткоины ,могут угнать вот те же разработчики говно блокчейнов!

Свой человек

ой ой ой!У меня нету смартфона и планшета!Можете мне не писать советы)(он мне нахер не нужен) Смартфоны они все уязвимы,угонят деньги вирусней и ни кто не поможет.

2-факторку я пройду с Компьютера,через емулятор смартфонов!

slava37224

Бывалый

kanoT11

Свой человек

Makoni4

Свой человек

forins

Бывалый

elikz

Друг форума

arhangel

Местный житель

Мсиэм

Бывалый

у сотовых операторов есть свои крысы кстати и хакеры).

2-факторку я пройду с Компьютера,через емулятор смартфонов!

sertix_T

Свой человек

DavidBailey

Свой человек

Ещё один глюк на Бирже ЕКСМО!
Это я запросил востановление пароля, так как не мог код ТОТР ввести

Пришло письмо:
«Восстановление пароля

На Вашу почту было запрошено восстановление пароля
Ваш новый пароль:хххххххUхх

Если Вы не запрашивали новый пароль, то просто игнорируйте это письмо. IP:ххххххххх
Внимание! Пароль действителен в течении 1 часа.»

Прошло уже около 3 часов !Но пароль по прежнему такой же!

И еще прикол в Настройках — Пароль
стоит надпись:
Обратите внимание: при внесении изменений в профиль устанавливается заморозка на вывод средств в течение 3 дней

Кто из нас тут тупой я или биржа?Конечно же я не буду менять пароль!А Тот старый пускай на почте лежит в открытом виде!

ИТ База знаний

ShareIT — поделись знаниями!

Полезно

Узнать IP — адрес компьютера в интернете

Онлайн генератор устойчивых паролей

Онлайн калькулятор подсетей

Калькулятор инсталляции IP — АТС Asterisk

Руководство администратора FreePBX на русском языке

Руководство администратора Cisco UCM/CME на русском языке

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Похожие статьи

Проблемы со слышимостью в Asterisk

Как выбрать правильный VoIP шлюз?

Кракозябры: Кодировка в CDR FreePBX 14

Кастомизация интерфейса FreePBX 13

Самое интересное про сервисные коды в FreePBX 13

Подробно про все коды

Сегодня рассказываем про стандартный набор сервисных кодов в FreePBX 13. Спросите, почему стандартный? Потому что ваша сборка FreePBX может иметь более широкий от стандартного диапазона набор модулей, каждый из которых будет иметь свой собственный набор сервисных кодов (Feature Codes). Ну что же, давайте начнем разбираться.

Для того, чтобы найти все сервисные коды на вашей IP — АТС Asterisk, перейдите в вкладку Admin -> Feature Codes

Коды создания черного списка

Ранее мы рассказывали про настройку черного списка в FreePBX 13 и поведали о возможностях его настройки. Вот как его настроить с помощью сервисных кодов:

Название Код Описание
Blacklist a number *30 Добавить новый номер в черный список. Все звонящие с заблокированных номеров будут слышать соответствующую аудио – запись.
Blacklist the last caller *32 Добавить последнего звонящего на IP – АТС в черный список
Remove a number from the blacklist *31 Удаление номера из черного списка. Номер вводится вручную

Коды перенаправления вызова

Название Код Описание
Call Forward All Activate *72 Перенаправлять все поступающие на внутренний номер на другой номер.
Call Forward All Deactivate *73 Выключить перенаправление вызовов.
Call Forward All Prompting Activate *93 Запрашивает у звонящего ввести номер, на котором необходимо включить перенаправление вызовов.
Call Forward All Prompting Deactivate *74 Запрашивает у звонящего ввести номер, на котором необходимо отключить перенаправление вызовов
Call Forward Busy Activate *90 Включает функцию перенаправления вызовов, если вызываемый номер занят.
Call Forward Busy Deactivate *91 Отключает функцию перенаправления вызовов, если вызываемый номер занят.
Call Forward Busy Prompting Activate *94 Запрашивает ввести номер, на котором необходимо включить перенаправление вызов по результату «Занято»
Call Forward Busy Prompting Deactivate *92 Запрашивает ввести номер, на котором необходимо отключить перенаправление вызов по результату «Занято»
Call Forward No Answer/Unavailable Activate *52 Активирует перенаправление вызовов в случае, если пользователь недоступен или не отвечает на вызов
Call Forward No Answer/Unavailable Deactivate *53 Деактивирует перенаправление вызовов в случае, если пользователь недоступен или не отвечает на вызов
Call Forward No Answer/Unavailable Prompting Activate *95 Запрашивает ввести номер, на котором необходимо подключить перенаправление вызовов по не ответу или недоступности
Call Forward Toggle *96 Включает или выключает режим перенаправления вызовов. Первый вызов на *96 выключит функцию, а второй включит. И так далее.
Коды ожидания вызова
Название Код Описание
Call Waiting — Activate *70 Данная функция позволяет настроить прием вызова, даже если абонент уже находится в состоянии разговора. Данная опция поддерживается только на телефонных аппаратах, на которых есть возможность принятия нескольких вызовов.
Call Waiting — Deactivate *71 Отключает указанный ваше функционал
Коды ядра системы (core)
Название Код Описание
Asterisk General Call Pickup *8 Наберите данные сервисных код чтобы перехватить вызов, звонящий на другом телефоне Чтобы данная функция сработала, убедитесь:
— На звонящем телефоне должен быть настроен Call Group в настройках внутреннего номера.
— На номере, с которого вы хотите перехватить вызов, должно быть настроено поле Pickup Group в настройках номера.
ChanSpy 555 Очень – очень удобная функция ? Позволяет слушать разговоры сотрудников, при этом, давая подсказки абоненту своей сети, которые не услышит звонящий из города. Это удобно, если вы обучаете нового сотрудника, и, при его общении с клиентом хотите подсказать ему какие-то нюансы в режиме реального времени
Directed Call Pickup ** Наберите сервисных код данной функции, а затем внутренний номер, с которого вы хотите перехватить вызов. Функция позволяет перехватывать вызовы с даже номеров, у которых не настроены общие Call Group и Pickup Group
In-Call Asterisk Attended Transfer *2 Данная фича позволяет совершить консультативный трансфер вызова, т.е трансфер, при котором оператор изначально дозванивается до абонента, на которого необходимо перевести вызов, говорит с ним, а затем уже соединяет звонящего с этим абонентом.
In-Call Asterisk Blind Transfer ## Наберите данный код, чтобы осуществить «слепой», то трансфер, без предварительной консультации.
In-Call Asterisk Disconnect Code ** Моментальный сброс входящего звонка.
In-Call Asterisk Toggle Call Recording *1 По факту, данный сервисный код активирует запись звонка «по требованию». В мире, данный вид записи известен как On Demand или Prerecording. Запись по требованию означает то, что по умолчанию, вызов не записывается, но, если появляется необходимость записать разговор, достаточно просто нажать указанный сервисный код.
Simulate Incoming Call 7777 IP – АТС Asterisk производит тестовый входящий вызов на внутренний номер
User Logoff *12 Этот код позволяет разлогиниваться пользователю с телефона. Данная опция доступна только если АТС настроена для использования Device & User Mode.
User Logon *11 Позволяет произвести логин пользователю в случае, который описан выше
ZapBarge 888 Данный код позволяет пользователю мониторить аудио на драйверах интерфейса Е1, то есть на Zaptel или Dahdi драйверах.
Коды управления режимом «Не беспокоить (DND)»
Название Код Описание
DND Activate *78 Данный сервисный код ставит внутренний номер в состояние «Не беспокоить» (Do Not Disturb). Это означает, что все звонящие на номер абоненты будут либо слышать сигнал занято, либо будут отправлены на голосовую почту.
DND Deactivate *79 Выключает режим DND на номере
DND Toggle *76 Включает/выключает возможность активации DND для внутреннего номера
Прочие коды

Call Flow Control

Данный код позволяет управлять настройками в модуле Call Flow Control

Название Код Описание
Email completed dictation *35 Данный код позволяет записать сообщение и отправить его в виде вложения на электронную почту, следуя подсказкам автоинформатора.
Perform dictation *34 Запись голоса, затем ввод имени для файла и сохранение его в файловой структуре IP — АТС
Название Код Описание
Findme Follow Toggle *21 Код позволяет включать или выключать настройки Follow Me для внутреннего номера.
Название Код Описание
Call Trace *69 Система озвучивает CallerID последнего звонящего на данный внутренний номер.
Echo Test *43 Данная функция используется для проверки качества связи, в том числе микрофона, динамика аппарата и так далее.
Speak Your Exten Number *65 Система произносит настроенный на используемом телефонном аппарате внутренний номер.
Speaking Clock *60 Система произносит текущее серверное время.

Функции Paging (пейджинга) и Intercom (интеркома)

Название Код Описание
Intercom prefix *80 Данная функция необходимо для того, чтобы вместо обычного набора на номер, вы не дожидались гудков, а с помощью громкоговорителя произнесли сообщение. Вот пример, как это работает: Пользователь набирает данный сервисный код, а следом за ним внутренний номер. Далее, все последующие звонки на этот номер будут сразу приниматься без участия вызываемого абонента и по громкой связи звонящий сможет произнести свое сообщение.
User Intercom Allow *54 Включить прием сообщений по интеркому (громкая связь, как описано выше).
User Intercom Disallow *55 Отключает указанную выше функцию.
Название Код Описание
Pickup ParkedCall Prefix *85 Когда администратор сконфигурировал слот для «парковки» (Parking) вызова, пользователь может «припарковать» этот вызов путем трансфера на номер паркинга – по умолчанию, это номер 70. Даже если данный слот занят, в настройка модуля Parking можно обозначить количество возможных слотов. Система автоматически запаркует вызов на доступный слот и произнесет его номер. Данный сервисный код как раз и отвечает за поднятие вызова с парковочного слота.
Название Код Описание
Allow Dynamic Members of a Queue to login or logout. See the Queues Module for how to assign a Dynamic Member to a Queue. *45 Данная опция позволяет динамическим участниками очередь подключаться и отключаться от нее
Playback Queue Caller Count *47 Проговорить количество человек, находящихся в очереди
Queue Pause Toggle *46 Взять паузу в очереди и не принимать вызовы. Повторная активация вернет пользователя в очередь.

Временные условия (Time Conditions)

Указанный сервисный код, а по умолчанию это *27 позволяет управлять настройками временного условия. В рамках системы для каждого нового Time Condition генерируется собственный сервисный код, который имеет формат *27X, где X – это номер временного условия.

Голосовая почта (Voicemail)

Название Код Описание
Dial Voicemail *98 Набрав этот сервисный код будет предложено ввести номер голосового ящика и прослушать его.
My Voicemail *97 Доступ к голосовому ящику, который относится к номера, с которого данный код набран (прослушивание собственных записей)
  • Сервисные коды FreePBX
  • asterisk Feature Codes
  • коды для пользователей
  • 6899
  • 45

Полезна ли Вам эта статья?

Пожалуйста, расскажите почему?

Нам жаль, что статья не была полезна для вас :( Пожалуйста, если не затруднит, укажите по какой причине? Мы будем очень благодарны за подробный ответ. Спасибо, что помогаете нам стать лучше!

Подпишитесь на нашу еженедельную рассылку, и мы будем присылать самые интересные публикации :) Просто оставьте свои данные в форме ниже.

Коды состояния HTTP и что они значат для SEO (перевод)

Коды состояния HTTP, такие как 404, 301 и 500, едва ли имеют значение для пользователей, но для оптимизаторов они невероятно важны. Мало того, что роботы поисковых систем (как Googlebot) используют их для определения здоровья сайта, коды состояния помогают узнать, что происходит между браузером и сервером. Некоторые из них указывает на ошибку, например, сигнализируют о том, что запрошенное содержимое не может быть найдено, в то время как другие просто выводят запрашиваемый материал. В этой статье мы пристальнее посмотрим на важнейшие коды HTTP заголовков и узнаем, что они означают для SEO.

Что такое коды состояния HTTP и почему вы их видите?

Код состояния HTTP – это сообщение, которое посылается сервером при отправке запроса с браузера, о том, может ли быть выполнен запрос или нет. Согласно официальной спецификации W3C, существуют десятки кодов состояния, со многими из которых вы вряд ли столкнетесь. А если столкнетесь, полный обзор возможных вариантов можно посмотреть на HTTPstatuses.com.

Чтобы понять эти коды, вам стоит знать, как браузер получает веб-страницу.

Добраться до веб-сайта пользователь может двумя способами – набрав URL сайта или введя запрос в строке поиска. После этого браузер посылает запрос на IP-адрес сайта, для получения соответствующей веб-страницы. Сервер отвечает браузеру, отправляя код состояния, встроенный в заголовок HTTP. Когда все нормально, код заголовка HTTP 200 отправляется обратно в браузер, вместе с запрошенным контентом.

Однако с запрашиваемым контентом или сервером что-то может быть не так. Например, не найдена страница (тогда возвращается код ошибки 404) или есть временная техническая проблема с сервером, в результате чего появляется код внутренней ошибки сервера 500. Эти коды статуса HTTP – важные инструменты для оценки состояния здоровья сайта и его сервера. Если сайт регулярно посылает неправильные коды заголовка HTTP в поисковую систему, его содержимое не индексируется, что, в свою очередь, вредит рейтингу.

Различные классы

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

  • 1xx – Информирующие о чем-либо.
  • 2xx – Сообщающие об успешном выполнении.
  • 3xx – Уведомляющие о перенаправлении.
  • 4xx – Сообщающие об ошибке клиента.
  • 5xx – Сообщающие об ошибке сервера.

Наиболее важные коды состояния HTTP для SEO

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

200: OK / Успешно

Вот как должно быть: клиент запрашивает у сервера контент и сервер отвечает сообщением 200. Это означает, что запрос прошел успешно – браузер получает содержимое, которое удовлетворяет потребностям клиента. И сервер, и клиент довольны. Пользователь счастлив. Все сообщения класса 2xx означают успешное выполнение какой-либо операции.

301: Перемещено навсегда

Заголовок HTTP 301 используется, когда запрашиваемый URL перемещен на новое место. Поскольку вы работаете с сайтом, с кодом придется сталкиваться часто – чтобы перенаправить старый URL на новый, вам обязательно нужно делать 301 редирект. Если вы этого не сделаете, пользователи, открывая старый URL, увидят страницу с кодом ошибки (404).

Подробнее о редиректе читайте в статье 10 популярных 301 редиректов в .htaccess

302: Найдено

Код состояния HTTP 302 означает, что целевой контент был найден, но находится в другом месте. Это довольно неоднозначный код состояния – он не говорит, временная это ситуация или нет. Используйте 302 редирект только в том случае, если хотите временно перенаправить URL на другой источник, и вы уверены в том, что будете использовать URL снова. Этим кодом вы сообщаете поисковым системам, что URL-адрес будет использоваться, а значит ссылочный вес не перенесется на новый URL. Поэтому не пользуйтесь 302 редиректом при перемещении домена или серьезных изменениях в структуре сайта.

307: Временное перенаправление

Код состояния 307 заменяет 302 в спецификации HTTP1.1 и может рассматриваться как единственный истинный редирект. Вы можете использовать 307 если вам нужно временно перенаправить URL на новый, оставив оригинальный метод запроса без изменений. 307 выглядит как 302, за исключением того, что он конкретно сообщает о временном характере нового местоположения. Запрос может меняться с течением времени, поэтому клиент должен продолжать использовать оригинальный URL при создании новых запросов.

403: Запрещено

403 сообщает браузеру, что запрошенное содержимое запрещено для пользователя. Если пользователь не сможет предоставить корректные учетные данные для входа, содержание останется недоступным.

404: Не найдено

Код заголовка HTTP 404 – один из наиболее важных. Когда сервер дает ответ в виде ошибки 404, вы получаете информацию о том, что содержимое не было найдено, и, вероятно, удалено. Старайтесь не раздражать посетителей сообщениями с этим кодом, исправляйте ошибки как можно скорее. Используйте редирект для перенаправления посетителей сайта со старого URL на новую статью или страницу, которая имеет связанный контент.

Мониторьте 404 сообщения в интерфейсе ошибок (Crawl errors) Google Search Console и пытайтесь свести их количество к минимуму. Большое количество ошибок этого типа может быть расценено Google как признак плохого обслуживания, а это повлияет на рейтинг сайта.

410: Удален

Результат кода 410 такой же, как 404 – содержимое не было обнаружено. Тем не менее, с 410 вы сообщаете поисковым системам об удалении запрошенного содержимого. Таким образом, этот код намного конкретнее 404. В некотором смысле вы отдаете команду поисковой машине удалить URL из индекса. Перед тем, как окончательно удалить что-то с сайта, подумайте, есть ли где-нибудь эквивалент страницы. Если да, сделайте редирект. Если нет, страницу нужно удалить или улучшить.

451: Информация недоступна по юридическим причинам

Относительно новое дополнение. Код состояния HTTP 451 показывает, что запрошенное содержимое было удалено по юридическим причинам. Если вы получили запрос на удаление, нужно использовать этот код, чтобы сообщить поисковым системам, что случилось со страницей.

500: Внутренняя ошибка сервера

Ошибка 500 – сообщение о том, что сервер столкнулся с неким условием, которое не позволяет ему выполнить запрос, без указания на то, что является его причиной. Причиной ошибок может стать что угодно, например, неисправный скрипт на вашем сайте. Проверьте журналы сервера, чтобы увидеть, где проблемы.

503: Сервис недоступен

Сервер отправляет сообщение об ошибке 503, когда не может обработать запрос из-за сбоя или перегрузки. Используйте этот код всякий раз, когда вам требуется временный простой – например, когда вы проводите обслуживание сайта. Таким образом, роботы поисковых систем узнают, что ваш сайт вскоре возобновит работу, и они могут вернуться позже.

Работа с кодами состояния HTTP

Коды HTTP – важная часть деятельности оптимизаторов. Вы будете сталкиваться с ними ежедневно, и поэтому важно понять, что означают различные коды. Например, при удалении страницы с сайта важно знать разницу между 301 и 410 редиректом. Они служат для разных целей, и, следовательно, ведут к разным результатам.

Если вы хотите получить представление о видах кодов состояния, которые генерирует ваш сайт, войдите в Google Search Console. Здесь вы найдете страницу с ошибками сканирования. Они должны быть найдены и устранены, прежде чем ваш сайт будет проиндексирован.

В заключение

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

Владелец сайта – современный Микеланджело. У него есть бесформенный материал, цель и, возможно, вкус и навыки, достаточные для воплощения проекта. Но у владельца сайта есть и то, чего не было у скульпторов – Google Search Console, которая позволяет вовремя найти ошибки и устранить их.

Как это сделать? Откройте Google Search Console. Перейдите во вкладку «Crawl» > «Crawl Errors». Там вы сможете посмотреть, что происходит с сайтом и уладить проблемы.

В первую очередь разберитесь с внешними ссылками, ведущими на страницу. Google, как правило, сортирует ошибки по важности. Ошибки с внешними ссылками относятся к приоритетным. Чтобы посмотреть, откуда идет ссылка, кликнете по URL-адресу 404 страницы. В открывшейся вкладке выберите «Linked From» и посмотрите URL-ссылки на страницу. Убедитесь, что все 404 страницы перенаправлены 301 редиректом на релевантный URL.

Проверять сайт на наличие ошибок нужно часто. Делайте это хотя бы раз в месяц.

Код HTTP 404 особенно важен, потому что его чаще всего видят пользователи. Ваша задача – обеспечить лучший пользовательский опыт, поэтому обязательно оформите страницу с этим кодом правильно.

Она должна содержать:

  • Уведомление о том, что пользователь открыл страницу, которая не существует.
  • Окно поиска.
  • Простую навигацию, с помощью которой пользователь получит доступ к тому, что искал.
  • Ссылку на главную страницу.

Кроме того, лучше визуально оформить страницу. Необычный дизайн поможет сохранить пользователей на сайте. Почитайте о том, как это сделать правильно и красиво

Документируем код эффективно при помощи Doxygen

Данная статья входит в получившийся цикл статей о системе документирования Doxygen:

  1. Документируем код эффективно при помощи Doxygen
  2. Оформление документации в Doxygen
  3. Построение диаграмм и графов в Doxygen

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

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

Введение

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

Рассматриваемая система Doxygen как раз и выполняет эту задачу: она позволяет генерировать на основе исходного кода, содержащего комментарии специального вида, красивую и удобную документацию, содержащую в себе ссылки, диаграммы классов, вызовов и т.п. в различных форматах: HTML, LaTeX, CHM, RTF, PostScript, PDF, man-страницы.

Для того, чтобы составить общее впечатление о системе, ниже представлены примеры различных документаций для API, созданных при помощи Doxygen (следует обратить внимание, что в последние примеры внесены заметные изменения в сравнении со стандартной документацией, которую генерирует данная система):

  1. Документация к API игрового движка CrystalSpace
  2. Документация к Visualization Toolkit
  3. Документация к исходникам Abiword
  4. Документация к API KDE
  5. Документация к API Drupal

Внимательный читатель наверняка обратил внимание на то, что в большинстве примеров Doxygen используется для документации программного обеспечения, написанного на языке C++, однако на самом деле данная система поддерживает гораздо большое число других языков: C, Objective-C, C#, PHP, Java, Python, IDL, Fortran, VHDL, Tcl, и частично D.

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

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

Установка и настройка

Скачать последнюю версию Doxygen можно на официальном сайте, дистрибутивы которой доступны для большинства популярных операционных систем, кроме того, вы можете воспользоваться вашим пакетным менеджером. Помимо этого для комфортной и полнофункциональной работы рекомендуется установить Graphviz.

Далее работа с Doxygen весьма тривиальна: достаточно запустить программу, указав ей путь к файлу с настройками.

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

В принципе, для редактирования данного файла и, вообще, работой с Doxygen, можно воспользоваться программой Doxywizard, которая чаще всего идёт вместе с Doxygen и которая позволяет чуть удобнее работать с файлом настроек (слева – Doxywizard; справа – файл открытый в текстовом редакторе):

Итак, приступим к созданию файла с настройками. Вообще, если вы используете Doxywizard, то он будет создан автоматически, в противном случае для создания этого файла необходимо запустить программу Doxygen с ключом -g (от generate):

Рассмотрим основные опции, которые могут вам пригодится, чтобы создать первую вашу документацию:

Тэг Назначение По умолчанию
DOXYFILE_ENCODING Кодировка, которая используется для всех символов в данном файле настроек UTF-8
OUTPUT_LANGUAGE Устанавливает язык, на котором будет сгенерирована документация English
PROJECT_NAME Название проекта, которое может представлять собой единое слово или последовательность слов (если вы редактируете вне Doxywizard, последовательность слов необходимо поместить в двойные кавычки) My Project
PROJECT_NUMBER Данный тэг может быть использован для указания номера проекта или его версии
PROJECT_BRIEF Краткое однострочное описание проекта, которое размещается сверху каждой страницы и даёт общее представление о назначении проекта
OUTPUT_DIRECTORY Абсолютный или относительный путь, по которому будет сгенерирована документация Текущая директория
INPUT Список файлов и/или директорий, разделенных пробелом, которые содержат в себе исходные коды проекта Текущая директория
RECURSIVE Используется в том случае, если необходимо сканировать исходные коды в подпапках указанных директорий NO

После того, как мы внесли необходимые изменения в файл с настройками (например, изменили язык, названия проекта и т.п.) необходимо сгенерировать документацию.

Для её генерации можно воспользоваться Doxywizard (для этого необходимо указать рабочую директорию, из которой будут браться исходные коды, перейти на вкладку «Run» и нажать «Run doxygen») или запустив программу Doxygen, указав ей в качестве параметра путь к файлу с настройками:

Основы документирования на Doxygen

Теперь, когда мы разобрались с тем, как настраивать Doxygen и работать с ним, впору разобраться с тем, как необходимо документировать код, основными принципами и подходами.

Документация кода в Doxygen осуществляется при помощи документирующего блока. При этом существует два подхода к его размещению:

  1. Он может быть размещён перед или после объявления или определения класса, члена класса, функции, пространства имён и т.д.;
  2. Либо его можно располагать в произвольном месте (и даже другом файле), но для этого потребуется явно указать в нём, к какому элементу кода он относится. Мы не будет рассматривать этот подход, поскольку даже разработчики рекомендуют его избегать, но если интересно, то подробнее о нём можно прочитать в документации.

Структурно, любой документирующий блок является комментарием, просто оформленным специальным образом, поэтому естественно, что его вид зависит от используемого языка (подробнее об этом можно прочитать в соответствующем разделе документации). Поэтому далее мы остановимся на рассмотрении синтаксиса для C-подобных языков (C/C++/C#/Objective-C/PHP/Java).

Сразу отметим, что, вообще, всего существует два основных типа документирующих блоков: многострочный блок и однострочный блок.

Разница между ними чуть более сильная, чем между однострочным и многострочным комментарием. Дело в том, что текст, написанный в однострочном блоке относится к краткому описанию документируемого элемента (сродни заголовку), а текст, написанный в многострочном блоке относится к подробному описанию. Про эту разницу не следует забывать.

Многострочный блок

Мы сказали, что любой блок – это комментарий, оформленный специальным образом. Поэтому необходимо определить каким таким «специальным образом». Вообще, существует целый ряд способов для описания многострочного блока, и выбор конкретного способа зависит от ваших предпочтений:

    JavaDoc стиль (напоминает обычный C комментарий, но начинающийся с двух звездочек):

При этом звездочки не обязательно ставить на каждой строке. Такая запись будет эквивалентной:

Qt стиль, в котором в начале вместо второй звёздочки ставится восклицательный знак:

Сказанное о необязательности промежуточных звездочек также остаётся справедливым. Помимо названных двух стилей есть ещё ряд, но на них пока мы не будем останавливаться.

При этом ещё раз обратите внимание на то, что текст написанный в таком комментарии относится к подробному описанию.

Для указания краткого описания может быть использована команда \brief. Указанный после команды текст, вплоть до конца параграфа будет относится к краткому описания, и для отделения подробного описания и краткого описания используется пустая строка.

Однострочный блок

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

    Можно использовать специальный комментарий в C++ стиле:

Можно использовать аналогичный предыдущему комментарий, только вместо дополнительного слеша в нем ставится восклицательный знак:

При этом хотелось бы обратить внимание на два момента:

    Для указания подробного описания в однострочном документирующем блоке может быть использована команда \details:

Документирующие блоки, следующие друг за другом, объединяются в один (причем вне зависимости от используемого стиля и того, являются они многострочными или однострочными).

Например следующие два способа документирования дадут один и тот же результат:

Да, Doxygen крайне гибок в плане способов документирования, однако не стоит этим злоупотреблять, и в рамках одного проекта всегда придерживайтесь заранее оговоренного единообразного стиля

Размещение документирующего блока после элемента

Во всех предыдущих примерах подразумевалось, что документирующий блок предварял документируемый элемент, но иногда бывают ситуации, когда удобнее разместить его после документируемого элемента. Для этого необходимо в блок добавить маркер « Угловые скобки показывают, что аргумент представляет собой одно слово (. ) Круглые скобки показывают, что аргументом является весь текст вплоть до конца строки, на которой размещена команда Фигурные скобки показывают, что аргументом является весь текст вплоть до до следующего параграфа. Параграфы разделяются пустой строкой или командой-разделителем

Кроме того, обратите внимание на то, что вы можете создавать и собственные команды. Подробно об этом можно прочитать в соответствующем разделе документации.

Документирование основных элементов исходного кода

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

Документирование файла

Хорошей практикой является добавление в начало файла документирующего блока, описывающегося его назначение. Для того, чтобы указать, что данный блок относится к файлу необходимо воспользоваться командой \file (причём в качестве параметра можно указать путь к файлу, к которому относится данный блок, но по умолчанию выбирается тот файл, в который блок добавляется, что, как правило, соответствует нашим нуждам).

Документирование функций и методов

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

Параметры

Для указания параметров необходимо использовать команду \param для каждого из параметров функции, при этом синтаксис команды имеет следующий вид:

Рассмотрим значение компонентов команды:

  1. Имя параметра – это имя, под которым данный параметр известен в документируемом коде;
  2. Описание параметра представляет собой простое текстовое описание используемого параметра..
  3. Направление – это опциональный атрибут, который показывает назначение параметра и может иметь три значения «[in]», «[out]», «[in,out]»;

Сразу же перейдём к примеру:

В результате мы получим такую вот аккуратную документацию функции:

Возвращаемое значение

Для описание возвращаемого значения используется команда \return (или её аналог \returns). Её синтаксис имеет следующий вид:

Рассмотрим пример с описанием возвращаемого значения (при этом обратите внимание на то, что параметры описываются при помощи одной команды и в результате они в описании размещаются вместе):

Получаем следующий результат:

Исключения

Для указания исключения используется команда \throw (или её синонимы: \throws, \exception), которая имеет следующий формат:

Простейший пример приведён ниже:

Документирование классов

Классы также могут быть задокументированы просто предварением их документирующим блоком. При этом огромное количество информации Doxygen получает автоматически, учитывая синтаксис языка, поэтому задача документирования классов значительно упрощается. Так при документировании Doxygen автоматические определяет методы и члены класса, уровни доступа к функциям, дружественные функции и т.п.

Если ваш язык не поддерживает явным образом определенные концепции, такие как например уровни доступа или создание методов, но их наличие подразумевается и его хотелось бы как-то выделить в документации, то существует ряд команд (например, \public, \private, \protected, \memberof), которые позволяют указать явно о них Doxygen.

Документирование перечислений

Документирование перечислений не сильно отличается от документирования других элементов. Рассмотрим пример, в котором иллюстрируется то, как можно удобно документировать их:

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

Результат будет иметь следующий вид:

Модули

Отдельное внимание следует обратить на создание модулей в документации, поскольку это один из наиболее удобных способов навигации по ней и действенный инструмент её структуризации. Пример хорошей группировки по модулям можете посмотреть здесь.

Далее мы кратко рассмотрим основные моменты и приведём пример, однако если вы хотите разобраться во всех тонкостях, то тогда придётся обратиться к соответствующему разделу документации.

Создание модуля

Для объявления модуля рекомендуется использовать команду \defgroup, которую необходимо заключить в документирующий блок:

Идентификатор модуля представляет собой уникальное слово, написанное на латинице, который впоследствии будет использован для обращения к данному модулю; заголовок модуля – это произвольное слово или предложение (желательно краткое) которое будет отображаться в документации.

Обратите внимание на то, что при описании модуля можно дополнить его кратким и подробным описанием, что позволяет раскрыть назначение того или иного модуля, например:

Размещение документируемого элемента в модуле

Для того, чтобы отнести тот или иной документируемый элемент в модуль, существуют два подхода.

Первый подход – это использование команды \ingroup:

Его недостатком является то, что данную команду надо добавлять в документирующие блоки каждого элемента исходного кода, поскольку их в рамках одного модуля может быть достаточно много.

Поэтому возникает необходимость в другом подходе, и второй подход состоит в использовании команд начала и конца группы: @ <и @>. Следует отметить, что они используются наряду с командами \defgroup, \addtogroup и \weakgroup.

Пример использования приведён ниже:

Смысл примера должен быть понятен: мы объявляем модуль, а затем добавляем к ней определенные документируемые элементы, которые обрамляются при помощи символов начала и конца модуля.

Однако, модуль должен определяться один раз, причём это объявление будет только в одном файле, а часто бывает так, что элементы одного модуля разнесены по разным файлым и потому возникает необходимость использования команды \addtogroup, которая не переопределяет группу, а добавляет к ней тот или иной элемент:

Название модуля указывать необязательно. Дело в том, что данная команда может быть использована как аналог команды \defgroup, и если соответствующий модуль не был определена, то она будет создана с соответствующим названием и идентификатором.

Наконец, команда \weakgroup аналогична команде \addtogroup, отличие заключается в том, что она просто имеет меньший приоритет по сравнению с ней в случае если возникают конфликты, связанные с назначение одного и того же элемента к разным модулям.

Создание подмодуля

Для создания подмодуля достаточно при его определении отнести его к тому или иному подмодулю, подобно любому другому документируемому элементу.

Пример приведён ниже:

Пример создания нескольких модулей

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

В результате мы получим следующую документацию:

Оформления текста документации

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

Код внутри документации

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

Команды \code и \endcode

Один из наиболее простых и универсальных способов сделать это – команды \code и \endcode, которые применяются следующим образом:

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

Рассмотрим пример использования:

Результат будет иметь следующий вид:

Примеры кода

Иногда удобнее приводить примеры использования кода хранить в отдельных файлах. Для этого эти файлы необходимо разместить в отдельной директории и прописать к ней путь в настройках:

Рассмотрим, некоторые способы того, как примеры кода могут быть использованы в документации.

Команда \example
Данная команда показывает, что документирующий блок относится к примеру кода.

Текст исходного кода будет добавлен в раздел «примеры», а исходный код примера будет проверен на наличие документированных элементов, и если таковые будут найдены, то к ним в описание будет добавлена ссылка на пример.

В данном примере, значение EXAMPLE_PATH = examples

Команда \include
Для того, чтобы добавить в описание к документируемому элементу код примера используется команда \include, общий формат которой имеет следующий вид:

Она полностью копирует содержимое файла и вставляет его в документацию как блок кода (аналогично оформлению кода в блок начинающийся командой \code и заканчивающийся командой \endcode).

Команда \snippet
Команда \snippet аналогична предыдущей команде, однако она позволяет вставлять не весь файл, а его определенный фрагмент. Неудивительно, что её формат несколько другой:

Для выделения определенного фрагмента кода необходимо в начале и в конце его разместить документирующий блок с указанием имени фрагмента:

Автоматическое внедрение кода документируемого объекта

Наконец, Doxygen поддерживает возможность автоматической вставки тела функций, методов, классов, структур и т.п., в их подробное описание. Для этого используется следующая опция:

Формулы с использованием LaTeX

Doxygen позволяет использовать TeX формулы прямо в документации, это очень удобно и результат получается весьма достойным. Однако стоит отметить, что при этом имеются ограничения: на данный момент формулы могут быть вставлены только в HTML и LaTeX документацию, но этого, как правило, вполне достаточно.

На данный момент существует два подхода к отображению формул:

    Отображение формул при помощи MathJax, для этого необходимо в файле настроек установить соответствующую опцию:

  • Генерация соответствующих изображений и вставка их в документацию. Всё это будет сделано автоматически, но вам потребуется следующие инструменты: latex, dvips, gs. По умолчанию формулы отображаются именно этим способом.
  • Способы добавление формул в документацию

    Существуют три способа добавления формул в документацию. Последовательно рассмотрим каждый из них с примерами из документации:

      Использование строчных формул, которые обрамляются в начале и в конце при помощи команды «\f$». Пример представлен ниже:

    Результатом будет строка следующего вида: расстояние между и равно

    Использование выносных формул, которые начинаются на отдельной строке и центрируются. В отличие от предыдущих формул они обрамляются в начале командой «\f[«, а в конце командой «\f]». Пример представлен ниже:

    Результатом будет строка следующего вида:

    Существует команда «\f«, где environment – это название определенного окружения в LaTeX. Она позволяет использовать указанное окружение будто бы оно было указано в обычно LaTeX документе. Пример приведён ниже:

    В итоге мы получим следующий результат (заметим, что окружение eqnarray* – это ненумерованное окружение для размещения нескольких формул):

    Пример внедрения формул в документацию

    Рассмотрим конкретный пример документации с использованием формул LaTeX:

    Результат представлен ниже:

    Кратко о Markdown

    Markdown – это облегчённый язык разметки (почитать о нём можно, например, здесь, а также в специальном разделе в документации). Начиная с версии 1.8.0. Doxygen обеспечивает его пока ограниченную поддержку и он служит одним из способов оформить документацию (альтернативой могут быть, например, команды для оформления документации или HTML вставки, которые, впрочем, не универсальны).

    Не хотелось бы сейчас расписывать подробности и принципы данного языка, поэтому ограничимся рассмотрением того, как данный язык позволяет «украсить» нашу документацию:

    Результат представлен ниже:

    Подводя итоги

    На этой ироничной ноте я решил остановиться. Я прекрасно понимаю, что ещё многое не было описано и затронуто, но, надеюсь, что главные свои цели статья выполнила: познакомить с понятием генератора документации, познакомиться с системой Doxygen, объяснить основные принципы и подходы к документации, а также мельком затронуть вопросы, связанные с её оформление и детализацией, подготовив задел для вашей дальнейшей работы.

    Новое телефонное мошенничество с кодами подтверждения

    «Звонок с незнакомого номера. Беру трубку. Мужской голос:
    — Здравствуйте, прошу прощения. У меня номер на модеме очень похож на ваш. Я отправил код активации сообщением, но ошибся в одной цифре. Посмотрите, пожалуйста, вам приходило СМС?

    Мужчина называет мой номер и номер своего модема. Лезу смотреть СМС-сообщения, действительно, код активации пришел мне.

    Нет ничего проще, чем сделать доброе дело и продиктовать незнакомцу цифры кода активации его модема. Но меня что-то настораживает:
    — Да, мне пришло СМС с кодом, но давайте вы отправите мне СМС с номера, который похож на мой, чтобы я убедился, что действительно ваш номер похож на мой. И я пока не знаю, от чего это код активации, вдруг это доступ к моему счету.

    На той стороне что-то идет не так. Тревога, нотки в голосе меняются.
    — Понимаете, это модем, я не могу отправить с него СМС.

    Подсказываю решение по отправке СМС:
    — Переставьте сим-карту в телефон, это несложно.

    На той стороне мычат и вешают трубку.

    Теперь смотрим сообщение подробно:

    Ищу информацию о том, что такое «Легкий платеж». Она в два клика обнаруживается на сайте МТС:

    Замечательно. Если я бы я сообщил код активации, с моего счета можно было бы оплачивать мобильный телефон, интернет, выводить средства на электронные деньги и так далее.

    Разумеется, мошенники никакого СМС с несуществующего модема не прислали. Развод не состоялся. Зато по запросу «Легкий платеж МТС мошенничество» в Яндексе выдается куча статей.

    Кстати, примечательно и на скриншоте выше видно, что МТС системные сообщения шлет, подписываясь МТС, а код активации запрашивает с непримечательного +79150008962. Это может играть мошенникам на руку.

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

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

    Что такое код dosexterr

    Что такое Код Отчаяния? Только с апреля этого года в интернете начала всплывать информация касающаяся этого вопроса. Может быть, его не существует. А может быть, они хотят, чтобы ты так думал.

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

    Согласно теории Лавкрафта, древние боги оказывают влияние на восприимчивых творческих людей. Художники, скульпторы, писатели, композиторы. Творец вводит код отчаяния в свою работу, даже не подозревая о его источнике и не обращая внимания на его пагубное влияние на публику. Например, творческий писатель опубликовал следующую магическую формулу:

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

    Также есть теория программирования. Формула, приписываемая Иллюминатам, может быть найдена в интернете, с подробными инструкциями о том, как получить полный контроль над разумом человека. Она включает в себя использование специального гипноза для программирования людей. Кульминацией этого процесса является вкладывание контрольного числа в подсознание субъекта, которое, как говорят, вызывает у субъекта отчаяние. Этим численным Кодом Отчаяния является 3223412.

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

    «Голубой горизонт» — так называлась единственная военная операция, в ходе которой газ «Воздух Ницше», как говорят, использовался в бою американскими войсками, во время войны в Персидском заливе. Целью была одна рота Иракской Республиканской гвардии. Враг развернулся против своих братьев, сражаясь между собой. Результат был настолько ужасен, а американское командование так испугалось, что это дойдет до прессы, что газ больше не использовался.

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

    MCC код торговой точки Exist / Экзист (оплата через сайт пополнением баланса)

    Название торговой точки: Exist / Экзист (оплата через сайт пополнением баланса)

    Адрес: Московская обл, г Мытищи

    Торговая точка Exist / Экзист (оплата через сайт пополнением баланса) в программах лояльности различных банков

    Категория Карта
    Автоуслуги Тинькофф Black
    Авто БИНБАНК Platinum
    Авто БИНБАНК Комфорт
    Автоуслуги Tinkoff Drive

    Полезная информация

    О проекте

    Сервис предоставляется «как есть», не является официальным справочником. Вся информация собрана и структурирована из открытых данных или внесена пользователями. Банк в любой момент может в одностороннем порядке изменить mcc-код торговой точки. При использовании материалов сайта активная гиперссылка на сайт mcc-cod.ru обязательна.

    Контакты

    В любой непонятной ситуации пишите на [email protected], с предложениями и пожеланиями — сюда же, но с пометкой mcc ;)

    Админу.Ру

    Библиотека вебмастера по созданию и продвижению сайта

    Коды статусов HHTP 3xx (переадресация)

    Группа кодов статусов протокола HTTP 3хх служит для указания серверу о необходимости или возможности перенаправления запроса. Статусы 3хх активно используются поисковыми системами, поэтому вебмастерам рекомендуется пользоваться статусами переадресации для направления поисковиков к нужным страницам и разделам своего сайта.

    Коды статусов HHTP 3xx (переадресация)

    Код статуса HTTP 300 Multiple choices (300 Множественный выбор)

    Описание: Затребованный URL обозначает более одного ресурса. Робот не может однозначно определить по URL какой страницы обработать запрос.

    Совет: Исправьте заголовки страниц или правильно укажите ресурс, чтобы робот смог правильно проиндексировать страницу.

    Код статуса HTTP 301 Moved permanently (301 Перемещено навсегда)

    Описание: Документ (страница) сервером более не используется, ссылка перенаправляет на другую страницу.

    Совет: Так как документа на сервере более не существует, пользователи не увидят его и показывать его в поиске нет смысла. Однако трафик, идущий через поисковые машины и через ссылки в сети перенаправляется на какой либо документ на сервере, на который указывает ссылка в перенаправлении.

    Код статуса HTTP 302 Found (302 Временно перемещён)

    Описание: Запрошенный ресурс (документ, страница) временно находится по другому адресу.

    Совет: Действие поисковых систем аналогично коду 301: так как документа в настоящее время на сервере не существует, пользователи не увидят его и показывать его в поиске нет смысла. Однако трафик, идущий через поисковые машины и через ссылки в сети перенаправляется на какой либо документ на сервере, на который указывает ссылка в перенаправлении.

    Код статуса HTTP 303 See other (303 Смотрите другой ресурс)

    Описание: Запрошенный ресурс (страница) находится по другому адресу и запрашивается с помощью метода GET.

    Совет: Если у вас есть необходимость в том, чтобы текущий ресурс попадал в поисковую выдачу, измените его таким образом, чтобы он отвечал кодом 200.

    Код статуса HTTP 304 Not modified (304 Не изменялся)

    Описание: Запрошенный ресурс (документ, страница) не изменялся с момента последнего посещения его роботом.

    Совет: Поисковые системы рекомендуют использовать этот код для статичных, неизменяемых ресурсов. Это уменьшает нагрузку, как на сервер, так и на робота поисковой системы.

    Код статуса HTTP 305 Use proxy (305 Используйте прокси)

    Описание: Доступ к запрошенному ресурсу (документу, странице) возможно осуществить только с помощью прокси-сервера, указанного в заголовке Location.

    Код статуса HTTP 307 Temporary redirect (307 Временное перенаправление)

    Описание: Запрошенный ресурс (документ, страница) временно переведён на другой адрес.

    Совет: Временный адрес необходимо прописать в заголовке Location.

    Что такое код для создания каталога, если он не существует?

    У меня возникла проблема с кодированием моего каталога сохранения. Я хочу, чтобы он создавал папку с именем «Ausgabe» (Output) на текущем рабочем столе пользователей, но я не знаю, как проверить, существует ли она уже и если она ее не создает.

    Это мой текущий код для этой части:

    Что я могу добавить, чтобы сделать так, как я хочу?

    Вы можете проверить, существует ли каталог, используя

    и создать каталог, используя

    EDIT В ответ на ваш комментарий:

    должен предоставить вам путь к папке с именем «Ausgabe» в папке «Пользовательские папки».

    Просто используйте Directory.CreateDirectory. Если каталог существует, метод не будет его создавать (другими словами, он содержит вызов Directory.Exists внутри)

    Чтобы использовать этот метод, вам нужно добавить использование System.IO в начало вашего файла Form1.cs.

    Я хотел бы также сказать, что Desktop — это не самое подходящее место для создания каталога для вашего приложения. Существует надлежащее место, предоставляемое Системой, и оно находится под перечислением ProgramData (CommonApplicationData или ApplicationData)

    Илон Маск рекомендует:  Asp важные изменения в asp
    Понравилась статья? Поделиться с друзьями:
    Кодинг, CSS и SQL