кодов ответа на HTTP-запрос | Dev Center
Когда веб-страница или мобильное приложение пытается связаться с агентом устройства, оно делает это с помощью стандартного механизма HTTP. Ошибки, возникающие в результате этого процесса, будут возвращены в виде кода состояния, для которого существует множество предопределенных значений. Википедия предоставляет список этих общих кодов.
Однако некоторые из них имеют особое значение в контексте связи агентов. Если ваша веб-страница или приложение испытывают трудности при обмене данными с агентом, знание и понимание этих конкретных кодов может помочь вам определить причину проблемы и найти ее решение.
В таблице ниже перечислены стандартные коды ответов HTTP, которые имеют особое значение в контексте связи с агентами имп. Коды, начинающиеся с цифры 4, будут автоматически сгенерированы Electric ImpimpCloud™, а коды, начинающиеся с цифры 5, будут сгенерированы веб-браузером или HTTP-подсистемой мобильной ОС.
Если код состояния находится в диапазоне от 0 до 99, при отправке запроса произошла ошибка. Такие ошибки в настоящее время такие же, как сообщения об ошибках libcurl. Например, код состояния == 3
означает, что URL-адрес был искажен, а код состояния == 6
означает, что имя хоста не будет разрешено. Однако это может измениться в будущем, поэтому не пишите код агента, который зависит от определенных значений, имеющих определенные значения.
Агент также может отправлять эти коды, используя метод API imp httpresponse.send() . Этот метод принимает два параметра: целое число для отправляемого кода состояния и строку, содержащую соответствующее описание состояния. Ваш код может отправлять уникальные строки для настройки стандартных кодов ответов HTTP для вашего приложения. Все HTTP-запросы, отправленные вашему агенту, должны завершаться вызовом httpresponse.send() , который также закрывает соединение между приложением или веб-сайтом и агентом.
См. Руководство разработчика «Эффективная связь между Интернет-агентом и устройством», в котором подробно рассматриваются передовые методы управления обменом данными между приложениями, агентами и устройствами.
Код | Значение | Описание 90 003 | Предлагаемое решение |
403 | Перезапуск агента | Как правило, код «доступ запрещен», 403 здесь указывает, что агент находится в процессе перезапуска и поэтому не может обрабатывать входящие HTTP-запросы в настоящее время. | Подождите немного и попробуйте снова отправить запрос агенту. |
404 | Нет обработчика HTTP/ агент отключен | Это стандартный HTTP-код «не найден» для отсутствующего ресурса. В случае импа это указывает на то, что агент, с которым вы общаетесь, не имеет функции обработчика HTTP-запросов, что такая функция не зарегистрирована в агенте или что агент больше не работает. | Агенты продолжают работать, когда устройство отключается. Однако, если устройство находится в автономном режиме более 30 дней, его агент будет отключен. См. документацию по API, чтобы узнать, как написать и зарегистрировать подходящий обработчик HTTP-запросов. См. также The Interactive imp. |
413 | Слишком большой размер запроса | Electric Imp impCloud в настоящее время устанавливает максимальный размер 1 МБ* для стандартных агентов разработчика, включая код, любые данные, которые требуются агенту, и входящие HTTP-запросы. Ваше приложение или веб-страница получат этот код, если ваш запрос превысит доступное хранилище после того, как агент занял столько 1 МБ, сколько ему нужно. | Проверьте размер HTTP-запроса, который делает ваше приложение или веб-страница. При необходимости разделите данные на несколько запросов. Подумайте, отправляете ли вы больше данных, чем требуется агенту. Коммерческие пользователи, которым требуется более 1 МБ пространства для агента, должны связаться с [email protected] |
429 | Превышен лимит скорости | Вы слишком быстро отправляете агенту слишком много HTTP-запросов. ImpCloud Electric Imp в настоящее время* принимает не более десяти запросов в секунду, добавляя их в пул до 20 одновременно открытых подключений. После того, как будет открыто 20 подключений, запросы больше не будут приниматься, пока не будут закрыты более старые. | Подумайте, не делает ли ваше приложение или веб-страница больше запросов, чем нужно, или делает их слишком часто. Слишком много открытых соединений в игре? Агент должен закрыть открытые соединения с помощью вызова API httpresponse.send() . Соединения будут оставаться открытыми до тех пор, пока не будет вызван httpresponse.send() . |
504 | Время ожидания агента | Агент не ответил своевременно. ImpCloud Electric Imp автоматически закрывает открытые соединения после десяти минут бездействия. | Ваш код агента может тратить слишком много времени на обработку данных перед возвратом ответа: отправьте подходящий ответ с помощью вызова API httpresponse. send() перед обработкой данных или перед их пересылкой на устройство или в веб-службу. Соединения будут оставаться открытыми до вызова httpresponse.send() , поэтому важно включить этот вызов в свой код. Неперехваченные ошибки также могут препятствовать ответу агента. |
*Electric Imp оставляет за собой право изменять эти ограничения в любое время по своему усмотрению, с уведомлением или без него, хотя Electric Imp постарается уведомить Клиента о любых таких ограничениях, описанных в этом разделе.
Как сгенерировать код CSR (запрос на подпись сертификата) — SSL-сертификаты
Как сгенерировать код CSR (запрос на подписание сертификата)
Что такое CSR?
Код CSR (запрос на подпись сертификата) — это специальный код, который является неотъемлемой частью активации SSL. Он содержит информацию о названии сайта и контактные данные компании. По многим причинам код должен создаваться на стороне хостинг-сервера. На некоторых серверах это обязательное условие.
Примечание : Многие хостинг-провайдеры предлагают своим клиентам помощь в создании кода CSR, где это возможно. Таким образом, стоит уточнить у хостинговой компании, предоставляют ли они такую услугу и доступна ли она на вашем хостинг-плане.
Инструкции по генерации CSR
Вы можете самостоятельно сгенерировать код запроса на подпись сертификата, например, если вы управляете сервером хостинга самостоятельно или если это лучший вариант для вашего типа сервера/плана хостинга. В этом случае выберите свой веб-сервер из списка ниже и следуйте инструкциям.- cPanel
- Apache OpenSSL/ModSSL/Nginx/Heroku
- WHM
- Tomcat (с помощью keytool)
- Plesk 12
- Plesk Onyx 90 148
- IIS 7
- IIS 8 и 10
- DirectAdmin
- Exchange 2007 (PowerShell)
- AWS
- Synology NAS
- Vesta CP
- Mac OS X Server/Yosemite/El Capitan
- Mac OS через связку ключей
- Sun Java System Web Server 7. x
- Вебмин
- Node.js
- Exchange 2013 (EAC)
- Exchange 2013 (Shell)
- Exchange 2010
- Glassfish
- Zimbra
- Google Cloud Service
- с использованием MMC/Certreq/Powershell на сервере под управлением Windows
- SonicWall
- Citrix NetScaler VPX
- CWP 7
- Certreq
- Приложение Namecheap EasyWP
- Unifi
- ISPConfig
Примечание : Коды CSR должны иметь размер ключа не менее 2048 бит.
Примечания о формировании CSR
Если вы не видите свой тип сервера в списке выше, нажмите на эту ссылку, чтобы получить советы , чтобы сгенерировать CSR , предоставленный центром сертификации Sectigo (CA).В качестве альтернативы для создания CSR можно использовать следующий онлайн-инструмент: https://decoder.link/csr_generator. Обязательно сохраните коды CSR и закрытого ключа, так как последний потребуется для процесса установки сертификата на сервере.