{"id":321722,"date":"2021-04-19T15:01:04","date_gmt":"2021-04-19T15:01:04","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=321722"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=321722","title":{"rendered":"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u043e\u0433\u043e WEB \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0434\u043b\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432"},"content":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<p>\u0423\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044b\u0435 \u0432\u044b\u0448\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432\u044b\u0437\u0432\u0430\u043d\u044b \u0446\u0435\u043b\u0435\u0432\u044b\u043c \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u043f\u043e\u043a\u0430 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. &nbsp;<\/p>\n<p>\u0410 WEB \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0438 \u043d\u0435\u043a\u043e\u0435\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 \u0441\u043e \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d\u043e\u0432 \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0433\u0430\u0434\u0436\u0435\u0442\u043e\u0432. <\/p>\n<h4>\u0412\u044b\u0431\u043e\u0440 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b<\/h4>\n<p>\u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0432 \u0432\u0438\u0434\u0435 \u043f\u043b\u0430\u0442\u044b \u0434\u043e\u043b\u0436\u043d\u0430 \u0438\u043c\u0435\u0442\u044c \u0447\u0438\u043f \u0438\u043b\u0438 \u043c\u043e\u0434\u0443\u043b\u044c Wi-Fi, \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440, \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e SD \u043a\u0430\u0440\u0442\u0443 \u0438\u043b\u0438 \u0447\u0438\u043f \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0451\u043c\u043a\u043e\u0441\u0442\u044c\u044e \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442. <\/p>\n<h4>\u0412\u044b\u0431\u043e\u0440 RTOS<\/h4>\n<p>\u0412 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 WEB \u0441\u0435\u0440\u0432\u0435\u0440 \u0438\u0433\u0440\u0430\u0435\u0442 \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u0443\u044e \u0440\u043e\u043b\u044c. \u041a\u0440\u043e\u043c\u0435 \u043d\u0435\u0433\u043e \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0435\u0449\u0451 \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u0437\u0430\u0434\u0430\u0447. \u041e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c WEB \u0441\u0435\u0440\u0432\u0435\u0440 \u0442\u0430\u043a \u0447\u0442\u043e\u0431\u044b \u0435\u0433\u043e \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043d\u0435 \u0432\u043b\u0438\u044f\u043b\u043e \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0443 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043c\u043e\u0436\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e RTOS. <\/p>\n<p> \u041e\u0442 middleware RTOS \u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u0440\u0430\u0437\u0432\u0438\u0442\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438, \u0432\u044b\u0442\u0435\u0441\u043d\u044f\u044e\u0449\u0430\u044f \u043c\u043d\u043e\u0433\u043e\u0437\u0430\u0434\u0430\u0447\u043d\u043e\u0441\u0442\u044c, \u043d\u0430\u0434\u0451\u0436\u043d\u044b\u0439 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u0431\u044b\u0441\u0442\u0440\u0430\u044f \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0434\u043b\u044f SD \u0438\u043b\u0438 eMMC \u043a\u0430\u0440\u0442, \u0441\u0442\u0435\u043a TCP\/IP \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432 \u0438 \u043e\u0447\u0435\u043d\u044c \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u043e\u0442\u043b\u0430\u0434\u043a\u0438. <br \/>\u0412\u0441\u0435 \u044d\u0442\u043e \u0435\u0441\u0442\u044c \u0432 Azure RTOS. \u042d\u0442\u0430 RTOS \u0438\u043c\u0435\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0434\u043b\u0438\u043d\u043d\u0443\u044e \u0438 \u0441\u043b\u0430\u0432\u043d\u0443\u044e \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0441 \u0442\u0435\u0445 \u043f\u043e\u0440, \u043a\u043e\u0433\u0434\u0430 \u0435\u0449\u0451 \u043d\u0430\u0437\u044b\u0432\u0430\u043b\u0430\u0441\u044c ThreadX. \u041e\u043d\u0430 \u043d\u0430\u0448\u043b\u0430 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u0430\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432. \u0415\u0451 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442 \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u044c, \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u0438 <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/rtos\/\" rel=\"noopener noreferrer nofollow\">\u0445\u043e\u0440\u043e\u0448\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/a>. \u0414\u043e\u043b\u0433\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0431\u044b\u043b\u0430 \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u043e\u0439 \u0438 \u043e\u0447\u0435\u043d\u044c \u0434\u043e\u0440\u043e\u0433\u043e\u0439. \u0412\u043f\u0435\u0440\u0432\u044b\u0435 \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u0432\u0438\u0434\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0432 \u043f\u0430\u043a\u0435\u0442\u0435 \u041f\u041e Synergy \u043e\u0442 Renesas \u0434\u043b\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 Synergy \u043d\u0430 \u0431\u0430\u0437\u0435 ARM Cortex-M4, \u0438 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430 \u0448\u0438\u0440\u043e\u043a\u0443\u044e \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u044c \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u043e\u0433\u0430\u0442\u043e\u0439 \u043f\u0430\u043b\u0438\u0442\u0440\u0435 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0433\u043e middleware.&nbsp; \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 middleware Azure RTOS \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e <a href=\"https:\/\/github.com\/azure-rtos\/samples\" rel=\"noopener noreferrer nofollow\">\u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e \u0438 \u0434\u043b\u044f STM32<\/a>. <\/p>\n<h4>\u0412\u044b\u0431\u043e\u0440 WEB \u0441\u0435\u0440\u0432\u0435\u0440\u0430<\/h4>\n<p>\u0412\u0435\u0440\u0445\u043d\u0438\u043c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u043c, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0431\u0430\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f WEB \u0441\u0435\u0440\u0432\u0435\u0440 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f HTTP.<br \/>Azure RTOS \u0443\u0436\u0435 \u0438\u043c\u0435\u0435\u0442 \u0432 \u0441\u0432\u043e\u0451\u043c \u0441\u043e\u0441\u0442\u0430\u0432\u0435 HTTP \u0441\u0435\u0440\u0432\u0435\u0440, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u043f\u043e\u0432\u0435\u0440\u0445 \u0441\u0442\u0435\u043a\u0430 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432 <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/rtos\/netx-duo\/overview-netx-duo\" rel=\"noopener noreferrer nofollow\">Azure RTOS NetX Duo<\/a>. HTTP Azure, \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0432\u0441\u0435\u0433\u043e \u043e\u0442 3.0 KB \u0434\u043e 9.5 KB FLASH \u0438 \u043e\u0442 0.5 KB \u0434\u043e 2 KB \u041e\u0417\u0423. \u041d\u0438\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u0434\u0430\u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u0440\u0435\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u0430\u044f \u043e\u0446\u0435\u043d\u043a\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043c\u0430 \u041e\u0417\u0423.<br \/>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 NetX Duo \u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c BSD, \u0442\u043e \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0435 WEB \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u0445\u043e\u0442\u044f \u0442\u0435\u0441\u043d\u0430\u044f \u0441\u0432\u044f\u0437\u044c \u0442\u0430\u043a\u0438\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0441 \u043d\u0438\u0436\u0435\u043b\u0435\u0436\u0430\u0449\u0438\u043c API \u0434\u0435\u043b\u0430\u0435\u0442 \u0442\u0430\u043a\u043e\u0439 \u0432\u044b\u0431\u043e\u0440 \u043c\u0430\u043b\u043e\u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u043c.<\/p>\n<p><strong><em>\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 WEB \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0432 Azure RTOS<\/em><\/strong>:<\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 2-\u0445 \u0442\u0438\u043f\u043e\u0432 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438: basic (\u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u043f\u0430\u0440\u043e\u043b\u044f \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u0432\u0438\u0434\u0435) \u0438 digest (\u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0445\u044d\u0448\u0430 \u043f\u0430\u0440\u043e\u043b\u044f),<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430 \u043f\u043e &nbsp;\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u043c HTTP \u0438 HTTPS (HTTP \u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u044b\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e TLS) <\/p>\n<\/li>\n<li>\n<p>\u0427\u0442\u0435\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u0441 SD \u043a\u0430\u0440\u0442\u044b \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044f \u0441 FAT32<\/p>\n<\/li>\n<li>\n<p>\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432: GET, POST, HEAD, PUT, DELETE<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0442\u043e\u0447\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0431\u0435\u0437 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445: Content-Length<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043d\u0430 WEB \u0441\u0435\u0440\u0432\u0435\u0440 <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/rtos\/netx-duo\/netx-duo-web-http\/chapter1\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<h4>\u0422\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b WEB \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430<\/h4>\n<p>\u0421\u043f\u043e\u0441\u043e\u0431 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0439. \u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 TCP \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043e\u0442 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e <a href=\"https:\/\/ru.wikipedia.org\/wiki\/HTTP\" rel=\"noopener noreferrer nofollow\">\u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 HTTP<\/a>. <br \/> \u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u043f\u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 HTTP. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 WEB \u0441\u0435\u0440\u0432\u0435\u0440 \u0432 Azure RTOS \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f HTTP \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c. HTTP \u0441\u0435\u0440\u0432\u0435\u0440 Azure RTOS \u0441\u0440\u0430\u0437\u0443 \u0433\u043e\u0442\u043e\u0432 \u043e\u0442\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u0444\u0430\u0439\u043b\u044b \u0441 SD \u043a\u0430\u0440\u0442\u044b \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u041d\u043e \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043c\u0430\u043b\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b.<\/p>\n<p>\u0421\u0430\u043c\u043e\u0439 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0451\u043d\u043d\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0435\u0439 \u0432 WEB \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u0445 \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f <a href=\"https:\/\/en.wikipedia.org\/wiki\/Server_Side_Includes\" rel=\"noopener noreferrer nofollow\">Server Side Includes&nbsp; (SSI)<\/a>.&nbsp; \u0412 Azure WEB \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0442\u0430\u043a\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u043d\u0435\u0442. \u0412\u0438\u0434\u0438\u043c\u043e \u043e\u043d\u0430 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0435\u0439. \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, SSI \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u043b \u043f\u0440\u0438\u0434\u0430\u0442\u044c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u043d\u043e\u0441\u0442\u044c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u043c, \u043a\u043e\u0433\u0434\u0430 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u0431\u044b\u043b\u0430 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0442\u044c JavaScript. \u0422\u0435\u043f\u0435\u0440\u044c \u0436\u0435 JavaScript \u0432\u043a\u043b\u044e\u0447\u0451\u043d \u043f\u043e\u0432\u0441\u0435\u043c\u0435\u0441\u0442\u043d\u043e, \u0431\u0435\u0437 \u043d\u0435\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0441\u0442\u0438. <\/p>\n<p>\u0411\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u043c \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0441\u043f\u043e\u0441\u043e\u0431 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e<a href=\"https:\/\/www.w3schools.com\/js\/js_ajax_intro.asp\" rel=\"noopener noreferrer nofollow\"> \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 AJAX<\/a>. \u0422.\u0435. \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e JavaScript \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0442\u043e\u043a\u0435 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u0421\u0435\u0440\u0432\u0435\u0440 \u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u043d\u0430 \u043b\u0435\u0442\u0443 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0431\u043b\u043e\u043a \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0443 \u0432 \u0442\u0430\u043a\u043e\u043c \u0436\u0435 \u0432\u0438\u0434\u0435 \u043a\u0430\u043a \u043e\u043d \u043f\u043e\u0441\u044b\u043b\u0430\u043b \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0442.\u0435. \u043f\u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 HTTP.<\/p>\n<p>\u041d\u0438\u043a\u0442\u043e, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043d\u0435 \u043c\u0435\u0448\u0430\u0435\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0438 SSI \u0432 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 Azure. \u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u0438 \u0432\u044b\u043b\u044c\u0435\u0442\u0441\u044f \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0438\u0442\u043e\u0433\u0435 \u0432 \u0434\u043b\u0438\u043d\u043d\u0443\u044e \u0446\u0435\u043f\u043e\u0447\u043a\u0443 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 if else \u0441 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430\u043c\u0438 \u043d\u0430 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a-\u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432. \u041d\u043e \u0442\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0432\u044b\u0437\u043e\u0432\u0435\u0442 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0442\u0435\u0441\u043d\u0443\u044e \u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u044c \u043c\u0435\u0436\u0434\u0443 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u043c\u0438 \u0438 \u043a\u043e\u0434\u043e\u043c \u0432 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435. <\/p>\n<p>\u0413\u043e\u0440\u0430\u0437\u0434\u043e \u043f\u0440\u0438\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u0435\u0439 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 <a href=\"https:\/\/www.w3schools.com\/js\/js_ajax_intro.asp\" rel=\"noopener noreferrer nofollow\">AJAX<\/a>, \u043f\u0440\u0438\u0447\u0451\u043c \u0441 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435\u0439 \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 <a href=\"https:\/\/www.json.org\/json-en.html\" rel=\"noopener noreferrer nofollow\">JSON \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0435<\/a>. <br \/>\u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e JSON \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u043c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 JavaScript \u0432 WEB \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0445. \u041d\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0449\u0435 \u0434\u043b\u044f WEB \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0447\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0438 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 JSON. &nbsp;&nbsp;\u0412 JSON \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u0432\u0441\u0435\u0433\u043e: \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432, \u0442\u0430\u0431\u043b\u0438\u0446 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432, \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432, \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0432 \u0432\u0438\u0434\u0435 \u0432\u0438\u0434\u0436\u0435\u0442\u043e\u0432 \u0438 \u043f\u0440\u043e\u0447\u0435\u0435.<\/p>\n<p>JSON \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0430\u044f. JSON \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0441\u0447\u0451\u0442\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u0442\u0440\u043e\u043a\u0430. \u0412\u043d\u0443\u0442\u0440\u0438 \u043d\u0435\u0451 \u043d\u0435\u043b\u044c\u0437\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u0430\u0439\u0442 0, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044d\u0442\u0430 \u0441\u0442\u0440\u043e\u043a\u0430 \u043b\u0435\u0433\u043a\u043e \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a C-\u0438 \u0441\u0442\u0440\u043e\u043a\u0430. \u041e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u0436\u0435 \u043e\u0431\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0431\u0435\u0437 \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c JSON \u0432 HTTP \u0441\u0442\u0440\u043e\u043a\u0443 \u043e\u0442\u0432\u0435\u0442\u0430.<br \/>\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435 \u0434\u0435\u043b\u0430 \u043e\u0431\u0441\u0442\u043e\u044f\u0442 \u0441 \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u043e\u043c JSON. \u041f\u0430\u0440\u0441\u0438\u043d\u0433 JSON \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u043a\u043e\u0433\u0434\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043f\u0440\u0438\u0448\u043b\u0451\u0442 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0441 \u043e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438. \u041f\u0440\u043e\u0441\u0442\u044b\u0435 JSON \u0441\u0442\u0440\u043e\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u0430\u0440\u0441\u0438\u0442\u044c \u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 \u044f\u0437\u044b\u043a\u0430 C-\u0438, \u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u0435 JSON \u0441\u0442\u0440\u043e\u043a\u0438 \u0443\u0436\u0435 \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u044b\u0445 \u043f\u0430\u0440\u0441\u0435\u0440\u043e\u0432. <\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043e\u0432\u0435\u0442\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 <a href=\"https:\/\/jansson.readthedocs.io\/en\/2.11\/index.html\" rel=\"noopener noreferrer nofollow\">Jansson<\/a>. \u041d\u0430\u0434\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u043d\u0430\u0442\u044c \u0447\u0442\u043e Jansson \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c, \u0438 \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0432 JSON \u043e\u043a\u043e\u043b\u043e \u0441\u043e\u0442\u043d\u0438 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445 \u0438 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432, \u0442\u043e \u0434\u043b\u044f \u043f\u0430\u0440\u0441\u0435\u0440\u0430 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u043e\u043a\u043e\u043b\u043e 50 \u041a\u0431\u0430\u0439\u0442 \u041e\u0417\u0423, \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0434\u043b\u0438\u043d\u044b \u0438\u043c\u0451\u043d \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0438 \u0434\u043b\u0438\u043d\u044b \u0441\u0430\u043c\u0438\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445. <\/p>\n<h4>\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u044f \u043f\u043e HTTP \u0441\u0435\u0440\u0432\u0435\u0440\u0443 Azure.<\/h4>\n<p><strong><em>MIME \u0442\u0438\u043f\u044b<br \/><\/em><\/strong>\u0421\u0435\u0440\u0432\u0435\u0440 Azure HTTP \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/HTTP_pipelining\" rel=\"noopener noreferrer nofollow\">HTTP pipelining<\/a>, \u043d\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u0444\u0430\u0439\u043b\u043e\u0432 \u043e\u0434\u0438\u043d \u0437\u0430 \u0434\u0440\u0443\u0433\u0438\u043c \u0432 \u043e\u0434\u043d\u043e\u043c TCP \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0438. WEB \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0444\u0430\u0439\u043b\u044b \u0441\u0442\u0438\u043b\u0435\u0439, \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432, \u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a \u0438 \u043f\u0440\u043e\u0447\u0435\u0433\u043e. \u0412\u0441\u0435 \u044d\u0442\u0438 \u0444\u0430\u0439\u043b\u044b \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0434\u0438\u043d \u0437\u0430 \u0434\u0440\u0443\u0433\u0438\u043c \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u0430. \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0444\u0430\u0439\u043b \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043f\u043e\u0441\u044b\u043b\u0430\u0435\u0442 HTTP \u0437\u0430\u043f\u0440\u043e\u0441. \u0421\u0435\u0440\u0432\u0435\u0440 \u043d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 HTTP \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u0430\u043a\u043e\u0439:<\/p>\n<pre><code class=\"xml\">HTTP\/1.1 200 OK Content-Type: text\/html Connection: keep-alive Content-Length: 13210 Date: Sun, 17 May 2020 00:59:19 GMT Cache-Control: max-age=1 Last-Modified: Sun, 17 May 2021 00:59:19 GMT <\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u0438\u043c\u0435\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044f Content-Type. \u0415\u0441\u043b\u0438 \u0435\u0433\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443. \u0421\u0435\u0440\u0432\u0435\u0440 Azure \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 &nbsp;Content-Type \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430. \u041d\u043e \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0430\u043c\u0438\u0445 \u0442\u0430\u043a\u0438\u0445 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0445 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 \u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u0444\u0430\u0439\u043b\u0435 <strong>nx_web_http_server.c<\/strong> \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432 <strong>_nx_web_http_server_mime_maps<\/strong> \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"cpp\">\/* Define basic MIME maps. *\/ static NX_WEB_HTTP_SERVER_MIME_MAP _nx_web_http_server_mime_maps[] = {     {\"html\",     \"text\/html\"},     {\"htm\",      \"text\/html\"},     {\"txt\",      \"text\/plain\"},     {\"css\",      \"text\/css\"},     {\"js\",       \"application\/javascript\"},     {\"gif\",      \"image\/gif\"},     {\"jpg\",      \"image\/jpeg\"},     {\"png\",      \"image\/png\"},     {\"ico\",      \"image\/x-icon\"}, }; <\/code><\/pre>\n<p><strong><em>\u0421\u043f\u043e\u0441\u043e\u0431\u044b \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430<\/em><\/strong>. \u0414\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0443\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u0438 \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u0438 \u0441\u043e\u043f\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u043d\u0430 WEB \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c FTP \u0441\u0435\u0440\u0432\u0435\u0440. FTP \u0441\u0435\u0440\u0432\u0435\u0440 \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0432 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0435 Azure RTOS. \u0422\u0430\u043a\u0438\u0435 \u0441\u0440\u0435\u0434\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043a\u0430\u043a Adobe Dreamweaver \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u043d\u0430 \u0446\u0435\u043b\u0435\u0432\u043e\u043c FTP \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u043c \u043a\u043e\u043d\u0442\u0435\u043d\u0442 WEB \u0441\u0430\u0439\u0442\u0430.&nbsp;<\/p>\n<p> <strong><em>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0434\u043b\u044f WEB \u0441\u0435\u0440\u0432\u0435\u0440\u0430 Azure<\/em><\/strong>. <br \/>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0435\u0439 HTTP \u0441\u0435\u0440\u0432\u0435\u0440\u0430 Azure &nbsp;\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u0440\u043d\u0435\u0432\u0430\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f SD \u043a\u0430\u0440\u0442\u044b. <\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0441\u0435\u0440\u0432\u0435\u0440 \u043c\u043e\u0433 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u043f\u043e\u0434\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0435\u043c\u0443 \u043d\u0430\u0434\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 <strong>fx_directory_local_path_set<\/strong> \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u042d\u0442\u043e \u0443\u0434\u043e\u0431\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u0432\u044b\u0437\u043e\u0432\u0435 \u0432 callback \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442\u0447\u0438\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u0423\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 callback \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f \u0432 \u0437\u0430\u0434\u0430\u0447\u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043f\u0440\u0438 \u0435\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <strong>nx_web_http_server_create. <\/strong>\u0412\u0435\u0441\u044c HTTP \u0441\u0435\u0440\u0432\u0435\u0440 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u043e\u0434\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0442\u0430\u043a\u043e\u0439 \u043c\u0435\u0442\u043e\u0434 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. <\/p>\n<p> <strong><em>\u0421\u0436\u0430\u0442\u0438\u0435 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430<\/em><\/strong>. \u0421\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u044b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u0438\u044e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u0438 \u0441\u043e\u043f\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432. \u041a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u0438\u044f \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0445 HTML \u0444\u0430\u0439\u043b\u043e\u0432, \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u0438 \u0441\u0442\u0438\u043b\u0435\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442 \u043e\u0431\u044a\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 3-4 \u0440\u0430\u0437\u0430. \u0421\u0435\u0440\u0432\u0435\u0440 HTTP Azure \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u0438\u044e \u043d\u0430 \u043b\u0435\u0442\u0443, \u0434\u043b\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u043c \u0447\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u043d\u0435\u0441\u0436\u0430\u0442\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430. \u0415\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u0438\u044e \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0441\u0440\u0430\u0437\u0443 \u0436\u0435 \u043f\u0440\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0435 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430. \u0418 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u043d\u0430 SD \u043a\u0430\u0440\u0442\u0435 \u0443\u0436\u0435 \u0441\u0436\u0430\u0442\u044b\u043c\u0438, \u043e\u0434\u043d\u0430\u043a\u043e HTTP \u0441\u0435\u0440\u0432\u0435\u0440 Azure \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u0435 \u0441\u0436\u0430\u0442\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432 HTTP. <\/p>\n<p>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043d\u0435 \u0442\u0430\u043a \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430 \u043a\u0430\u043a \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440&nbsp; \u043e\u0434\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043d\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0435 \u0432\u043e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430\u0445 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u044e\u0442 \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u0432\u0441\u0435\u0433\u043e \u043e\u0434\u0438\u043d \u0440\u0430\u0437, \u0438 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043a\u043e\u043d\u0442\u0435\u043d\u0442. \u0421\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0431\u044b\u0441\u0442\u0440\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0445 \u0441\u0436\u0438\u043c\u0430\u0442\u044c. \u0418 \u043c\u043e\u0436\u043d\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u0435 \u0441\u0436\u0430\u0442\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 HTTP \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c\u0438 \u0441\u0438\u043b\u0430\u043c\u0438 \u0435\u0441\u043b\u0438 \u0441\u0436\u0430\u0442\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0438\u043b\u044c\u043d\u043e \u0443\u043b\u0443\u0447\u0448\u0438\u0442 \u043e\u0442\u0437\u044b\u0432\u0447\u0438\u0432\u043e\u0441\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440\u0430.&nbsp;&nbsp; <\/p>\n<p><strong><em>\u041d\u0435\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u0445 Azure HTTP \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043f\u0440\u0438 \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438.<br \/><\/em><\/strong>\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0442\u0435\u043a\u0441\u0442\u044b \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u043d\u0435\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0432 \u0444\u0430\u0439\u043b\u0435 <strong>nx_web_http_server.c<\/strong> <a href=\"https:\/\/github.com\/azure-rtos\/netxduo\/blob\/master\/addons\/web\/nx_web_http_server.c#L3689\" rel=\"noopener noreferrer nofollow\">\u043f\u043e\u0441\u043b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 3689<\/a>. <br \/>\u0412 \u0442\u0430\u043a\u043e\u043c \u0432\u0438\u0434\u0435 \u0431\u0430\u0437\u043e\u0432\u0430\u044f \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0437\u0430\u0442\u044f\u0433\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 10 \u0441\u0435\u043a., \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043d\u0435 \u0440\u0430\u0437\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u043d\u0435\u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u0422\u0443\u0434\u0430 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442:<\/p>\n<pre><code>if (status == NX_WEB_HTTP_BASIC_AUTHENTICATE)         {           _nx_web_http_server_connection_reset(server_ptr,server_ptr -&gt; nx_web_http_server_current_session_ptr , NX_WEB_HTTP_SERVER_TIMEOUT_SEND);           return;         } <\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0442\u0430\u043a\u043e\u0433\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0441\u0440\u0430\u0437\u0443, \u0430 \u043d\u0435 \u0447\u0435\u0440\u0435\u0437 10 \u0441\u0435\u043a. \u0443\u0432\u0438\u0434\u0438\u0442 \u0434\u0438\u0430\u043b\u043e\u0433 \u0441 \u0432\u0432\u043e\u0434\u043e\u043c \u0438\u043c\u0435\u043d\u0438 \u0438 \u043f\u0430\u0440\u043e\u043b\u044f. <br \/>\u041d\u0435 \u0437\u0430\u0431\u044b\u0442\u044c \u0442\u0430\u043a\u0436\u0435 \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u0432 POST \u0438 DELETE.<\/p>\n<h4>\u0412\u044b\u0431\u043e\u0440 WEB \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430<\/h4>\n<p>\u0412\u044b\u0431\u043e\u0440 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A4%D1%80%D0%B5%D0%B9%D0%BC%D0%B2%D0%BE%D1%80%D0%BA\" rel=\"noopener noreferrer nofollow\">\u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430<\/a> \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u0435\u043d. \u0424\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0438 \u2013 \u044d\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0435 JavaScript \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0438 \u0444\u0430\u0439\u043b\u043e\u0432 \u0441\u0442\u0438\u043b\u0435\u0439 CSS. \u0411\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0434\u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430, \u043a\u0430\u043a \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <a href=\"https:\/\/jquery.com\/\" rel=\"noopener noreferrer nofollow\">jQuery<\/a>, \u0431\u044b\u0432\u0430\u0435\u0442 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0441\u043e \u0441\u0442\u0438\u043b\u044f\u043c\u0438, \u043a\u0430\u043a \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <a href=\"https:\/\/jqueryui.com\/\" rel=\"noopener noreferrer nofollow\">jQuery UI<\/a>. \u0424\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0431\u043b\u0435\u0433\u0447\u0430\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0445, \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u044b\u0445 \u0438 \u043f\u0440\u0438\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 WEB \u0441\u0442\u0440\u0430\u043d\u0438\u0446, \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0432\u0435\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e \u0433\u043e\u043b\u043e\u0433\u043e HTML \u0438 JavaScript \u0441 \u0430\u0440\u0445\u0430\u0438\u0447\u043d\u044b\u043c\u0438 \u0441\u0442\u0438\u043b\u044f\u043c\u0438. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u0432 \u0434\u0430\u0436\u0435 \u0441\u0430\u043c\u044b\u0439 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0439 WEB \u0441\u0435\u0440\u0432\u0435\u0440 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0439 \u043d\u0430 Arduino, \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0442\u0438\u043b\u044c\u043d\u044b\u0439 WEB \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441. \u0424\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u0443\u044e\u0442 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0442\u0430\u043a \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0438 \u043e\u0441\u0442\u0430\u0432\u0430\u043b\u0438\u0441\u044c \u0432 \u043f\u0440\u0438\u0435\u043c\u043b\u0435\u043c\u043e\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0430\u0445 \u043b\u044e\u0431\u044b\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u0438 \u0432 \u043b\u044e\u0431\u044b\u0445 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u0445.&nbsp; <\/p>\n<p>\u041d\u043e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u0432 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 \u043a\u0430\u043a\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0434\u043e\u0431\u0435\u043d \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043d\u0435\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u0443, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u043e\u0433\u0430\u0442 \u0438 \u0433\u0438\u0431\u043e\u043a \u043d\u0430\u0431\u043e\u0440 \u0441\u0442\u0438\u043b\u0435\u0439 \u0438 \u0432\u0438\u0434\u0436\u0435\u0442\u043e\u0432. \u041d\u0430\u0434\u043e \u043f\u043e\u043c\u043d\u0438\u0442\u044c \u0447\u0442\u043e \u0444\u0430\u0439\u043b\u044b \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u043c \u0432\u043c\u0435\u0441\u0442\u0435 \u0441\u043e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u043c\u0438 WEB \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0438\u0437 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u0421\u043b\u0438\u0448\u043a\u043e\u043c \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043e\u0431\u044a\u0435\u043c \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u0437\u0430\u043c\u0435\u0434\u043b\u0438\u0442 \u0432\u0440\u0435\u043c\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446. <\/p>\n<p>\u041e\u0445\u0432\u0430\u0442\u0438\u0442\u044c \u0430\u043d\u0430\u043b\u0438\u0437\u043e\u043c \u0432\u0441\u0435 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0438 \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u044e \u041e\u043d\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u043a\u0430\u043a \u0433\u0440\u0438\u0431\u044b \u043f\u043e\u0441\u043b\u0435 \u0434\u043e\u0436\u0434\u044f. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0442\u0443\u0442 \u044f \u043f\u0440\u0438\u0432\u0451\u043b \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043a\u0430\u043a \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u043e\u0446\u0435\u043d\u0438\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0435\u0441\u0442\u044c \u043d\u0430 \u0441\u043b\u0443\u0445\u0443:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/789\/99c\/15a\/78999c15afe2fa02fde5ed16d1f19dc6.png\" width=\"723\" height=\"592\"><figcaption><\/figcaption><\/figure>\n<p>\u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u0432 \u0432\u0432\u043e\u0434\u044f\u0442 \u043d\u043e\u0432\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438 \u0432 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b HTML, \u0434\u043e\u0431\u0438\u0432\u0430\u044f\u0441\u044c &nbsp;\u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043d\u043e\u0432\u044b\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0434\u0438\u0437\u0430\u0439\u043d\u0430. \u042d\u0442\u043e \u0432\u043b\u0435\u0447\u0451\u0442 \u0437\u0430 \u0441\u043e\u0431\u043e\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u043a\u0440\u043e\u043c\u0435 HTML, JavaScript, CSS \u0438 DOM \u043c\u043e\u0434\u0435\u043b\u0438 \u0435\u0449\u0451 \u0438 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430. \u042d\u0442\u043e \u0435\u0449\u0451 \u0431\u043e\u043b\u0435\u0435 \u0443\u0441\u043b\u043e\u0436\u043d\u044f\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u0432\u044b\u0431\u043e\u0440\u0430. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0431 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u044b\u0431\u043e\u0440\u0435 \u0440\u0435\u0447\u044c \u043d\u0435 \u0438\u0434\u0451\u0442.<\/p>\n<p>\u041a\u0430\u043a \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u043f\u0442\u0438\u043c\u0443\u043c \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c <a href=\"https:\/\/jquerymobile.com\/\" rel=\"noopener noreferrer nofollow\">jQuery mobile<\/a>. \u041e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043e\u0434\u043d\u0443 \u0438\u0437 \u0441\u0442\u0430\u0440\u0435\u0439\u0448\u0438\u0445 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u2013 <a href=\"https:\/\/jquery.com\/\" rel=\"noopener noreferrer nofollow\">jQuery<\/a> \u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u0432 WYSIWYG \u0441\u0440\u0435\u0434\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 <a href=\"https:\/\/www.adobe.com\/ru\/products\/dreamweaver.html\" rel=\"noopener noreferrer nofollow\">Adobe Dreamweaver<\/a>, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u0443\u0434\u043e\u0431\u043d\u043e \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438 \u0431\u0435\u0437 WYSIWYG. jQuery mobile \u043a\u0430\u043a \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0438\u0437 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0434\u043b\u044f \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432, \u0438 \u044d\u0442\u043e \u043a\u0430\u043a \u0440\u0430\u0437 \u0442\u043e \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0437\u0430\u0445\u043e\u0442\u044f\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 WEB \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c \u0447\u0435\u0440\u0435\u0437 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430<\/p>\n<h4>\u0417\u0430\u0449\u0438\u0442\u0430 WEB \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0438 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u044f \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432<\/h4>\n<p>\u0417\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u044b\u0439 WEB \u0441\u0435\u0440\u0432\u0435\u0440 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 HTTPS \u043d\u0430 \u043f\u043e\u0440\u0442\u0443 433. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 Transport Layer Security (TLS). \u0412 Azure RTOS \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b TLS \u0432\u0435\u0440\u0441\u0438\u0438 1.3 \u0438 \u0442\u0430\u043a\u0436\u0435 \u0431\u043e\u043b\u0435\u0435 \u0440\u0430\u043d\u043d\u0438\u0435 \u0435\u0433\u043e \u0432\u0435\u0440\u0441\u0438\u0438. <\/p>\n<p> \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0441\u0435\u0440\u0432\u0435\u0440 \u043f\u0440\u043e\u0441\u0438\u0442 \u043e\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u043d\u0430\u0431\u043e\u0440 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432:<br \/> Cipher Suite: TLS_RSA_WITH_AES_128_CBC_SHA (0x002f)<\/p>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b WEB c TLS \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0435\u0449\u0451 \u0438\u043c\u0435\u0442\u044c \u0432 \u0441\u0432\u043e\u0438\u0445 \u043d\u0435\u0434\u0440\u0430\u0445 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u0417\u0434\u0435\u0441\u044c \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0438\u0445 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432\u043e Flash \u043f\u0430\u043c\u044f\u0442\u0438 \u0432 \u0432\u0438\u0434\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432. \u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043f\u043e\u0434\u043f\u0438\u0441\u044c \u0434\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0433\u043e \u0446\u0435\u043d\u0442\u0440\u0430 (\u044d\u0442\u043e \u0441\u0442\u043e\u0438\u0442 \u0434\u0435\u043d\u0435\u0433 \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438), \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0430\u043c\u043e\u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442.&nbsp; <\/p>\n<p>\u0418 \u043a\u043b\u044e\u0447 \u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0432 \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 DER.<\/p>\n<p>\u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430: \u043a\u043b\u044e\u0447 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 1192 \u0431\u0430\u0439\u0442\u0430, \u043e\u0434\u0438\u043d \u0441\u0430\u043c\u043e\u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 879 \u0431\u0430\u0439\u0442.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b &nbsp;\u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0430\u043c\u043e\u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0438 \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u043d\u0430\u0434\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b openssl.exe, libeay32.dll, ssleay32.dll \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0432 \u0438\u0445 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043c\u0430\u043d\u0434:<\/p>\n<p>1.&nbsp;&nbsp;&nbsp; \u0421\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 <strong>ca.key<\/strong> &#8212;<br \/> <strong>openssl genrsa -out ca.key 2048<\/strong>&nbsp;&nbsp; <\/p>\n<p>2.&nbsp;&nbsp;&nbsp; \u0421\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 <strong>CA.crt<\/strong> &#8212; <br \/> <strong>openssl req -config CA.conf -new -x509 -sha256 -key ca.key -days 3650 -out CA.crt<\/strong><\/p>\n<p>3.&nbsp;&nbsp;&nbsp; \u0421\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 <strong>srv.key <\/strong>\u2013 <br \/> <strong>openssl genrsa -out srv.key 2048<\/strong><\/p>\n<p>4.&nbsp;&nbsp;&nbsp; \u0421\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0433\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 <strong>srv.csr <\/strong>&#8212;<br \/> <strong>openssl req -new -config Server.conf -out srv.csr -key srv.key<\/strong><\/p>\n<p>5.&nbsp;&nbsp;&nbsp; \u0412\u0435\u0440\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 <strong>srv.crt<\/strong> &#8212;<br \/> <strong>openssl x509 -req -in srv.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out srv.crt -days 3650<\/strong> <\/p>\n<p>6.&nbsp;&nbsp;&nbsp; \u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u0438 \u043a\u043b\u044e\u0447 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442 DER &#8212; <br \/> <strong>openssl x509 -in CA.crt -out CA.der -outform DER<\/strong><br \/> <strong>openssl x509 -in srv.crt -out srv.der -outform DER<\/strong><br \/> <strong>openssl rsa -inform pem -in srv.key -outform der -out srv_key.der<\/strong> <\/p>\n<p>\u041d\u0430 HTTP \u0441\u0435\u0440\u0432\u0435\u0440 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0444\u0430\u0439\u043b\u044b <strong>srv.der <\/strong>\u0438<strong> srv_key.der <\/strong>\u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0432 \u0438\u0445 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u044b. \u041f\u0440\u0438\u0447\u0451\u043c \u0443 \u043d\u0430\u0441 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0447\u0435\u043c\u0443 \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a\u0438 \u0432\u0437\u043b\u043e\u043c\u0430\u044e\u0442 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0438 \u043f\u043e\u0445\u0438\u0442\u044f\u0442 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043e\u043d\u0438 \u043d\u0435 \u0441\u043c\u043e\u0433\u0443\u0442 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u043f\u043e\u0445\u0438\u0449\u0435\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0431\u0443\u0434\u0435 \u0430\u043d\u043d\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043d. <\/p>\n<h4>\u0421\u043a\u043e\u043b\u044c\u043a\u043e \u041e\u0417\u0423 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u044b\u0439 WEB \u0441\u0435\u0440\u0432\u0435\u0440<\/h4>\n<p>\u0417\u0430\u0434\u0430\u0447\u0430 http \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0432 Azure RTOS \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <strong>TCPSERVER Thread<\/strong>. <\/p>\n<p>\u041f\u0440\u043e \u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044e \u0435\u0451 \u043b\u0435\u0433\u043a\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 \u0432 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u0435 IDE <strong>IAR Embedded Workbench for Arm.<\/strong><\/p>\n<p>\u041f\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f\u043c \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0440\u0430\u0437\u043c\u0435\u0440 \u0437\u0430\u043d\u044f\u0442\u043e\u0433\u043e \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439 \u0441\u0442\u0435\u043a\u0430 \u043d\u0435 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u043b 2500 \u0431\u0430\u0439\u0442\u0430. <\/p>\n<p>\u0414\u0432\u0438\u0436\u043e\u043a TLS \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043e\u0431\u044a\u0451\u043c\u043d\u044b\u0445 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<ul>\n<li>\n<p>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430<strong> NX_SECURE_X509_CERT<\/strong> \u0438\u043c\u0435\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 304 \u0431\u0430\u0439\u0442\u0430<\/p>\n<\/li>\n<li>\n<p>\u041c\u0430\u0441\u0441\u0438\u0432 <strong>crypto_metadata<\/strong> \u0434\u043e\u043b\u0436\u0435\u043d \u0438\u043c\u0435\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 17596 \u0431\u0430\u0439\u0442\u0430 \u043d\u0430 \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0435\u0441\u0441\u0438\u044e. \u0423 \u043d\u0430\u0441 \u0432\u044b\u0431\u0440\u0430\u043d\u043e \u0434\u043e 2 \u0441\u0435\u0441\u0441\u0438\u0439 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e. \u0421\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0434\u043e 35192 \u0431\u0430\u0439\u0442\u0430<\/p>\n<\/li>\n<li>\n<p>\u041c\u0430\u0441\u0441\u0438\u0432 <strong>tls_packet_buffer<\/strong> \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 2000 \u0431\u0430\u0439\u0442 \u0438 \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 64 \u041a\u0431\u0430\u0439\u0442. \u0417\u0430\u0434\u0430\u0451\u043c \u0435\u043c\u0443 4000 \u0431\u0430\u0439\u0442\u0430. \u0415\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u0442\u044c\u0441\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u043e\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u0434\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u044d\u0442\u043e\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043f\u043e \u043e\u0431\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430\u043c.&nbsp; <\/p>\n<\/li>\n<\/ul>\n<p>\u0418\u0442\u043e\u0433\u043e \u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442 <strong>\u043d\u0435 \u043c\u0435\u043d\u0435\u0435 42 \u041a\u0431\u0430\u0439\u0442<\/strong>. \u042d\u0442\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e. \u0412 \u0446\u0435\u043b\u043e\u043c \u043d\u0430 \u0432\u0435\u0441\u044c <strong>TCP \u0441\u0442\u0435\u043a \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043e\u043a\u043e\u043b\u043e 100 \u041a\u0431\u0430\u0439\u0442 \u041e\u0417\u0423<\/strong>. \u042d\u0442\u043e \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u0431\u0443\u0444\u0435\u0440\u0430 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 TCP\/IP \u043f\u0430\u043a\u0435\u0442\u043e\u0432, JSON \u043f\u0430\u0440\u0441\u0435\u0440\u0430 \u0434\u043b\u044f \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0438 \u043f\u0440\u043e\u0447\u0438\u0445 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432 \u043d\u0430 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b. \u0415\u0441\u043b\u0438 \u0438\u043c\u0435\u0442\u044c \u0432 \u0432\u0438\u0434\u0443 \u0435\u0449\u0451 \u0444\u0430\u0439\u043b\u043e\u0432\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u0442\u043e \u0440\u0430\u0437\u043c\u0435\u0440 \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0451\u0442 \u043d\u0430 30-70 \u041a\u0431\u0430\u0439\u0442 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u043e\u0433\u043e \u043a\u0430\u043a\u043e\u0435 \u0431\u044b\u0441\u0442\u0440\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c.<\/p>\n<h4>\u041f\u0440\u0438\u043c\u0435\u0440 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b WEB \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430<\/h4>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a <a href=\"https:\/\/jquerymobile.com\/\" rel=\"noopener noreferrer nofollow\">jQuery mobile<\/a> \u0441\u043a\u043e\u043d\u0441\u0442\u0440\u0443\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0432\u043e\u0442 \u0442\u0430\u043a\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430: <\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cc6\/b4a\/72a\/cc6b4a72a859ba24c6c7196f8c5eed9f.png\" width=\"339\" height=\"587\"><figcaption><\/figcaption><\/figure>\n<p>\u0415\u0441\u043b\u0438 \u0431\u044b \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u043d\u0435 \u0431\u044b\u043b\u043e, \u0442\u043e \u044d\u0442\u0430 \u0436\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u0430 \u0431\u044b \u0442\u0430\u043a:<\/p>\n<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/23b\/7d4\/511\/23b7d4511d0bcb59f4bd60d84598a45d.png\" width=\"470\" height=\"556\"><figcaption><\/figcaption><\/figure>\n<details class=\"spoiler\">\n<summary>\u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 HTML \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"xml\">&lt;!doctype html&gt; &lt;html lang=\"en\"&gt;   &lt;head&gt;     &lt;meta charset=\"utf-8\"&gt;     &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no\"&gt;     &lt;title&gt;IoT Logger&lt;\/title&gt;     &lt;link href=\"jquery-mobile\/jquery.mobile.theme-1.3.0.min.css\" rel=\"stylesheet\" type=\"text\/css\"&gt;     &lt;link href=\"jquery-mobile\/jquery.mobile.structure-1.3.0.min.css\" rel=\"stylesheet\" type=\"text\/css\"&gt;     &lt;script src=\"jquery-mobile\/jquery-1.11.1.min.js\"&gt;     &lt;\/script&gt;     &lt;script src=\"jquery-mobile\/jquery.mobile-1.3.0.min.js\"&gt;     &lt;\/script&gt;     &lt;style&gt;         @media only screen and (device-width: 300px), only screen and (max-width:300px) {             .css-element {                 yourcsscode:;             }         }          input.cb_larger {             width: 25px;             height: 25px;             margin: -12px 0 0 -10px;         }          .tbl_hdr {             font-size: 14px;             font-style: oblique;             font-weight: normal;             text-align: left;             background-color: #DEDEDE         }     &lt;\/style&gt;    &lt;\/head&gt;    &lt;body&gt;     &lt;div align=\"center\" data-role=\"page\" id=\"page\"&gt;       &lt;div data-role=\"header\" data-position=\"fixed\"&gt;         &lt;p id=\"page_header1\" style=\"padding: 0px 0px 0px 0px; margin: 5px 0px 0px 0px \"&gt;IoT Logger&lt;\/p&gt;         &lt;p style=\"font-size: 10px; padding: 0px 0px 0px 0px; margin: 0px 0px 5px 5px; text-align: left \"&gt;         &lt;span&gt;ID:&lt;\/span&gt;         &lt;em id=\"page_header2\" style=\"color:deepskyblue\"&gt;?&lt;\/em&gt;         &lt;span id=\"page_header3\" style=\"margin-left: 10px\"&gt;?&lt;\/span&gt;         &lt;\/p&gt;         &lt;div data-role=\"navbar\" style=\"width: 400px\"&gt;           &lt;ul&gt;             &lt;li&gt;&lt;\/li&gt;             &lt;li&gt;&lt;\/li&gt;             &lt;li&gt;&lt;li&gt;&lt;button type=\"submit\" id=\"reset_log\" onclick=\"location.assign('device_log.html');\" data-theme=\"b\"&gt;Show log&lt;\/button&gt;&lt;\/li&gt;&lt;\/li&gt;           &lt;\/ul&gt;         &lt;\/div&gt;       &lt;\/div&gt;        &lt;div data-role=\"content\"&gt;         &lt;div style=\"overflow:auto;\"&gt;         &lt;table id=\"ap_list\" style=\"width:800px\"&gt;           &lt;caption style=\"font-size: 16px; font-weight: bold; text-align: left\"&gt;           Available Access Points list for Station mode           &lt;\/caption&gt;           &lt;tr&gt;             &lt;th class=\"tbl_hdr\"&gt;&lt;\/th&gt;&lt;th class=\"tbl_hdr\"&gt;Enable&lt;\/th&gt;             &lt;th class=\"tbl_hdr\"&gt;Access Point SSID&lt;\/th&gt;             &lt;th class=\"tbl_hdr\"&gt;Password&lt;\/th&gt;             &lt;th class=\"tbl_hdr\"&gt;Use DHCP&lt;\/th&gt;             &lt;th class=\"tbl_hdr\"&gt;IP address&lt;\/th&gt;             &lt;th class=\"tbl_hdr\"&gt;IP mask&lt;\/th&gt;             &lt;th class=\"tbl_hdr\"&gt;IP gateway&lt;\/th&gt;           &lt;\/tr&gt;           &lt;tr&gt;             &lt;td&gt;1&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"checkbox\" class=\"cb_larger\" id=\"ssiden1\" name=\"SSIDEN1\"&gt;&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"text\" id=\"ssid1\" name=\"SSID1\" value=\"\"&gt;&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"password\" id=\"pass1\" name=\"PASS1\" value=\"\"&gt;&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"checkbox\" class=\"cb_larger\"  id=\"dhcp1\" name=\"DHCP1\"&gt;&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"text\"    id=\"ipaddr1\"    name=\"IPADDR1\" value=\"\"&gt;&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"text\"    id=\"ipmask1\"    name=\"IPMASK1\" value=\"\"&gt;&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"text\" id=\"ipgateway1\" name=\"IPGATEWAY1\" value=\"\"&gt;&lt;\/td&gt;           &lt;\/tr&gt;           &lt;tr&gt;             &lt;td&gt;2&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"checkbox\" class=\"cb_larger\" id=\"ssiden2\" name=\"SSIDEN2\"&gt;&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"text\" id=\"ssid2\" name=\"SSID2\" value=\"\"&gt;&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"password\" id=\"pass2\" name=\"PASS2\" value=\"\"&gt;&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"checkbox\" class=\"cb_larger\"  id=\"dhcp2\" name=\"DHCP2\"&gt;&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"text\"    id=\"ipaddr2\"    name=\"IPADDR2\" value=\"\"&gt;&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"text\"    id=\"ipmask2\"    name=\"IPMASK2\" value=\"\"&gt;&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"text\" id=\"ipgateway2\" name=\"IPGATEWAY2\" value=\"\"&gt;&lt;\/td&gt;           &lt;\/tr&gt;           &lt;tr&gt;             &lt;td&gt;3&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"checkbox\" class=\"cb_larger\" id=\"ssiden3\" name=\"SSIDEN3\"&gt;&lt;\/td&gt;&lt;td&gt;             &lt;input type=\"text\" id=\"ssid3\" name=\"SSID3\" value=\"\"&gt;&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"password\" id=\"pass3\" name=\"PASS3\" value=\"\"&gt;&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"checkbox\" class=\"cb_larger\"  id=\"dhcp3\" name=\"DHCP3\"&gt;&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"text\"    id=\"ipaddr3\"    name=\"IPADDR3\" value=\"\"&gt;&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"text\"    id=\"ipmask3\"    name=\"IPMASK3\" value=\"\"&gt;&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"text\" id=\"ipgateway3\" name=\"IPGATEWAY3\" value=\"\"&gt;&lt;\/td&gt;           &lt;\/tr&gt;           &lt;tr&gt;             &lt;td&gt;4&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"checkbox\" class=\"cb_larger\" id=\"ssiden4\" name=\"SSIDEN4\"&gt;&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"text\" id=\"ssid4\" name=\"SSID4\" value=\"\"&gt;&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"password\" id=\"pass4\" name=\"PASS4\" value=\"\"&gt;&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"checkbox\" class=\"cb_larger\"  id=\"dhcp4\" name=\"DHCP4\"&gt;&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"text\"    id=\"ipaddr4\"    name=\"IPADDR4\" value=\"\"&gt;&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"text\"    id=\"ipmask4\"    name=\"IPMASK4\" value=\"\"&gt;&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"text\" id=\"ipgateway4\" name=\"IPGATEWAY4\" value=\"\"&gt;&lt;\/td&gt;           &lt;\/tr&gt;           &lt;tr&gt;             &lt;td&gt;5&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"checkbox\" class=\"cb_larger\" id=\"ssiden5\" name=\"SSIDEN5\"&gt;&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"text\" id=\"ssid5\" name=\"SSID5\" value=\"\"&gt;&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"password\" id=\"pass5\" name=\"PASS5\" value=\"\"&gt;&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"checkbox\" class=\"cb_larger\"  id=\"dhcp5\" name=\"DHCP5\"&gt;&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"text\"    id=\"ipaddr5\"    name=\"IPADDR5\" value=\"\"&gt;&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"text\"    id=\"ipmask5\"    name=\"IPMASK5\" value=\"\"&gt;&lt;\/td&gt;             &lt;td&gt;&lt;input type=\"text\" id=\"ipgateway5\" name=\"IPGATEWAY5\" value=\"\"&gt;&lt;\/td&gt;           &lt;\/tr&gt;         &lt;\/table&gt;         &lt;\/div&gt;         &lt;table id=\"ap_selector\"&gt;           &lt;tr&gt;             &lt;th&gt;             &lt;div style=\"text-align:left ; padding-top: 10px\"&gt;               Selected operational mode             &lt;\/div&gt;             &lt;\/th&gt;           &lt;\/tr&gt;           &lt;tr&gt;             &lt;td&gt;             &lt;input type=\"radio\" id=\"md_sta\" name=\"wifi_mode\" value=\"0\"&gt;             &lt;label id=\"md_sta_lb\" for=\"md_sta\"&gt;             Station mode &lt;br&gt;             &lt;span style=\"font-weight: normal; font-size: 14px\"&gt;             (The device will connect to the someone &lt;br&gt;             of access points listed in the table above)             &lt;\/span&gt;             &lt;\/label&gt;             &lt;\/td&gt;           &lt;\/tr&gt;           &lt;tr&gt;             &lt;td&gt;             &lt;input type=\"radio\" id=\"md_ap\" name=\"wifi_mode\" value=\"1\"&gt;             &lt;label id=\"md_ap_lb\" for=\"md_ap\"&gt;             Access Point mode&lt;br&gt;             &lt;span style=\"font-weight: normal; font-size: 14px\"&gt;(The device will wait for someone to join with it)&lt;\/span&gt;             &lt;\/label&gt;             &lt;\/td&gt;           &lt;\/tr&gt;         &lt;\/table&gt;          &lt;fieldset class=\"ui-grid-a\" style=\"width: 300px\"&gt;           &lt;div class=\"ui-block-a\"&gt;             &lt;button type=\"submit\" id=\"submit_data\" data-theme=\"a\"&gt;Submit&lt;\/button&gt;           &lt;\/div&gt;           &lt;div class=\"ui-block-b\"&gt;             &lt;button type=\"submit\" id=\"reset_dev\" data-theme=\"e\"&gt;Reset device&lt;\/button&gt;           &lt;\/div&gt;         &lt;\/fieldset&gt;          &lt;div data-role=\"footer\" data-position=\"fixed\"&gt;           &lt;p id=\"status_msg\" style=\"font-weight:normal\" hidden=true&gt;           &lt;\/p&gt;         &lt;\/div&gt;        &lt;\/div&gt;     &lt;\/div&gt;   &lt;\/body&gt;   &lt;script&gt;     \/\/ \u0413\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0439 \u0438\u0437 \u0434\u0438\u0432\u0430\u0439\u0441\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438     var params;     var dev;     var apl;     var wrl;      \/\/ \u0412\u044b\u0432\u043e\u0434 \u0441\u0442\u0440\u043e\u043a\u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u043e \u043d\u0430\u0436\u0430\u0442\u0438\u044e \u043a\u043d\u043e\u043f\u043e\u043a     function Show_cmd_status(data, status)     {       $(\"#status_msg\").text(\"Data sending status: \" + status); $(\"#status_msg\").show();       setTimeout(function() { $(\"#status_msg\").hide(); }, 2000);     }      \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0438\u0437 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 data \u0438 \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0438\u0445 \u0432 \u043f\u043e\u043b\u044f \u0432\u0432\u043e\u0434\u0430     function Data_accept(data, status)     {       params = data;                     var v = params.find(function(item, i) { if (item[\"Client_AP_list\"] != undefined) return true; });        apl = v[\"Client_AP_list\"];       if (apl != undefined)       {         $(\"#ssid1\").val(apl[0][1]);         $(\"#pass1\").val(apl[0][2]);         $(\"#ipaddr1\").val(apl[0][4]);         $(\"#ipmask1\").val(apl[0][5]);         $(\"#ipgateway1\").val(apl[0][6]);          $(\"#ssid2\").val(apl[1][1]);         $(\"#pass2\").val(apl[1][2]);         $(\"#ipaddr2\").val(apl[1][4]);         $(\"#ipmask2\").val(apl[1][5]);         $(\"#ipgateway2\").val(apl[1][6]);          $(\"#ssid3\").val(apl[2][1]);         $(\"#pass3\").val(apl[2][2]);         $(\"#ipaddr3\").val(apl[2][4]);         $(\"#ipmask3\").val(apl[2][5]);         $(\"#ipgateway3\").val(apl[2][6]);          $(\"#ssid4\").val(apl[3][1]);         $(\"#pass4\").val(apl[3][2]);         $(\"#ipaddr4\").val(apl[3][4]);         $(\"#ipmask4\").val(apl[3][5]);         $(\"#ipgateway4\").val(apl[3][6]);          $(\"#ssid5\").val(apl[4][1]);         $(\"#pass5\").val(apl[4][2]);         $(\"#ipaddr5\").val(apl[4][4]);         $(\"#ipmask5\").val(apl[4][5]);         $(\"#ipgateway5\").val(apl[4][6]);          if (apl[0][0] == 1) $(\"#ssiden1\").attr(\"checked\", true);         if (apl[1][0] == 1) $(\"#ssiden2\").attr(\"checked\", true);         if (apl[2][0] == 1) $(\"#ssiden3\").attr(\"checked\", true);         if (apl[3][0] == 1) $(\"#ssiden4\").attr(\"checked\", true);         if (apl[4][0] == 1) $(\"#ssiden5\").attr(\"checked\", true);          if (apl[0][3] == 1) $(\"#dhcp1\").attr(\"checked\", true);         if (apl[1][3] == 1) $(\"#dhcp2\").attr(\"checked\", true);         if (apl[2][3] == 1) $(\"#dhcp3\").attr(\"checked\", true);         if (apl[3][3] == 1) $(\"#dhcp4\").attr(\"checked\", true);         if (apl[4][3] == 1) $(\"#dhcp5\").attr(\"checked\", true);        }        v = params.find(function(item, i) { if (item[\"Parameters\"] != undefined) return true; });       if (v != undefined)       {         wrl = v[\"Parameters\"].find(function(item, i) { if (item[0] == \"wifi_role\") return true; });         if (wrl != undefined)         {           if (wrl[1] == 0)           {             $(\"#md_sta_lb\").click();           } else           {             $(\"#md_ap_lb\").click();           }         }       }        v = params.find(function(item, i) { if (item[\"Device\"] != undefined) return true; });       dev = v[\"Device\"];       if (dev[\"HW_Ver\"] != undefined)       {         $(\"#page_header1\").html(dev[\"HW_Ver\"]);         $(\"#page_header2\").html(dev[\"CPU_ID\"]);         $(\"#page_header3\").html(dev[\"CompDate\"] + \" \" + dev[\"CompTime\"]);       }     }      \/\/ \u0421\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438\u0437 \u043f\u043e\u043b\u0435\u0439 \u0432\u0432\u043e\u0434\u0430, \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0438\u0445 \u0432 \u043e\u0431\u044a\u0435\u043a\u0442 JSON     \/\/ \u0421\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443 \u043c\u0435\u0442\u043e\u0434\u043e\u043c POST     function Data_send()     {              apl[0][1] = $(\"#ssid1\").val();       apl[0][2] = $(\"#pass1\").val();       apl[0][4] = $(\"#ipaddr1\").val();       apl[0][5] = $(\"#ipmask1\").val();       apl[0][6] = $(\"#ipgateway1\").val();        apl[1][1] = $(\"#ssid2\").val();       apl[1][2] = $(\"#pass2\").val();       apl[1][4] = $(\"#ipaddr2\").val();       apl[1][5] = $(\"#ipmask2\").val();       apl[1][6] = $(\"#ipgateway2\").val();        apl[2][1] = $(\"#ssid3\").val();       apl[2][2] = $(\"#pass3\").val();       apl[2][4] = $(\"#ipaddr3\").val();       apl[2][5] = $(\"#ipmask3\").val();       apl[2][6] = $(\"#ipgateway3\").val();        apl[3][1] = $(\"#ssid4\").val();       apl[3][2] = $(\"#pass4\").val();       apl[3][4] = $(\"#ipaddr4\").val();       apl[3][5] = $(\"#ipmask4\").val();       apl[3][6] = $(\"#ipgateway4\").val();        apl[4][1] = $(\"#ssid5\").val();       apl[4][2] = $(\"#pass5\").val();       apl[4][4] = $(\"#ipaddr5\").val();       apl[4][5] = $(\"#ipmask5\").val();       apl[4][6] = $(\"#ipgateway5\").val();        if ($(\"#ssiden1\").prop(\"checked\") == true) apl[0][0] = 1;       else apl[0][0] = 0;       if ($(\"#ssiden2\").prop(\"checked\") == true) apl[1][0] = 1;       else apl[1][0] = 0;       if ($(\"#ssiden3\").prop(\"checked\") == true) apl[2][0] = 1;       else apl[2][0] = 0;       if ($(\"#ssiden4\").prop(\"checked\") == true) apl[3][0] = 1;       else apl[3][0] = 0;       if ($(\"#ssiden5\").prop(\"checked\") == true) apl[4][0] = 1;       else apl[4][0] = 0;        if ($(\"#dhcp1\").prop(\"checked\") == true) apl[0][3] = 1;       else apl[0][3] = 0;       if ($(\"#dhcp2\").prop(\"checked\") == true) apl[1][3] = 1;       else apl[1][3] = 0;       if ($(\"#dhcp3\").prop(\"checked\") == true) apl[2][3] = 1;       else apl[2][3] = 0;       if ($(\"#dhcp4\").prop(\"checked\") == true) apl[3][3] = 1;       else apl[3][3] = 0;       if ($(\"#dhcp5\").prop(\"checked\") == true) apl[4][3] = 1;       else apl[4][3] = 0;         if ($(\"#md_sta\").prop(\"checked\") == true) wrl[1] = \"0\";       else wrl[1] = \"1\";        \/\/ \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 JavaScript \u0432 \u0441\u0442\u0440\u043e\u043a\u0443 JSON       json_str = JSON.stringify(params);       \/\/ \u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443 \u043c\u0435\u0442\u043e\u0434\u043e\u043c POST \u0441\u0442\u0440\u043e\u043a\u0443 JSON \u0441 \u043e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438       $.post(\"data.json\", json_str, Show_cmd_status);     }      \/\/ \u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043b\u043e\u0433\u0430      function Show_log()     {       location.assign(\"device_log.html\");     }      \/\/ \u041f\u043e \u043a\u043b\u0438\u043a\u0443 \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0435 \u0441 id = \"submit_data\" \u043f\u043e\u0441\u044b\u043b\u0430\u0435\u043c \u043e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443       $(\"#submit_data\").click(Data_send);     \/\/ \u041f\u043e \u043a\u043b\u0438\u043a\u0443 \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0435 \u0441 id = \"reset_dev\" \u043f\u043e\u0441\u044b\u043b\u0430\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0441\u0431\u0440\u043e\u0441\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430     $(\"#reset_dev\").click(function() {$.post(\"reset\", \"\", Show_cmd_status)});     \/\/ \u0417\u0434\u0435\u0441\u044c \u0441\u0440\u0430\u0437\u0443 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c \u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 AJAX \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438      $.get(\"data.json\", Data_accept);    &lt;\/script&gt; &lt;\/html&gt;  <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0444\u0430\u0439\u043b\u043e\u043c HTML \u0431\u0443\u0434\u0443\u0442 \u0441\u043a\u0430\u0447\u0430\u043d\u044b \u0435\u0449\u0435  4-\u0435 \u0444\u0430\u0439\u043b\u0430 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0449\u0438\u0435 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0443. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u043a\u0430\u0447\u0430\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0444\u0430\u0439\u043b\u044b \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u044e\u0442 \u0441\u0430\u043c\u0438 \u0435\u0449\u0451 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0443\u0436\u043d\u044b\u0445 \u0438\u043c \u0444\u0430\u0439\u043b\u043e\u0432. <\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 JSON \u0444\u0430\u0439\u043b\u0430 c \u0434\u0430\u043d\u043d\u044b\u043c\u0438<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"json\">[  {   \"Device\": {    \"CPU_ID\": \"5301646835393735C86643535454227D\",    \"SW_Ver\": \"V0.0.2\",    \"HW_Ver\": \"IoT Logger 1.0.0\",    \"CompDate\": \"Apr 16 2021\",    \"CompTime\": \"13:03:54\"   }  },  {   \"Parameters\": [    [     \"leds_mode\",     \"1\"    ],    [     \"wifi_role\",     \"1\"    ]   ]  },  {   \"Client_AP_list\": [    [     1,     \"SSID\",     \"PASS\",     0,     \"192.168.1.1\",     \"255.255.255.0\",     \"192.168.1.254\"    ],    [     1,     \"SSID\",     \"PASS\",     0,     \"192.168.1.1\",     \"255.255.255.0\",     \"192.168.1.254\"    ],    [     1,     \"SSID\",     \"PASS\",     0,     \"192.168.1.1\",     \"255.255.255.0\",     \"192.168.1.254\"    ],    [     1,     \"SSID\",     \"PASS\",     0,     \"192.168.1.1\",     \"255.255.255.0\",     \"192.168.1.254\"    ],    [     1,     \"SSID\",     \"PASS\",     0,     \"192.168.1.1\",     \"255.255.255.0\",     \"192.168.1.254\"    ]   ]  } ]<\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0418 \u043d\u0430\u043a\u043e\u043d\u0435\u0446 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043e\u0442\u0437\u044b\u0432\u0447\u0438\u0432\u043e\u0441\u0442\u044c WEB \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b <a href=\"https:\/\/www.renesas.com\/us\/en\/products\/microcontrollers-microprocessors\/renesas-synergy-platform-mcus\/s7g2-240-mhz-arm-cortex-m4-cpu\" rel=\"noopener noreferrer nofollow\">Sinergy<\/a><\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/321\/e95\/444\/321e9544480002471c03dd5d96971a6c.png\" alt=\"\u0414\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0437\u0430\u043a\u0430\u0447\u043a\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 HTTP \" title=\"\u0414\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0437\u0430\u043a\u0430\u0447\u043a\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 HTTP \" width=\"667\" height=\"364\"><figcaption>\u0414\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0437\u0430\u043a\u0430\u0447\u043a\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 HTTP <\/figcaption><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d2f\/47d\/b0d\/d2f47db0dcf6063e0b151d800c9c11e9.png\" alt=\"\u0414\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0437\u0430\u043a\u0430\u0447\u043a\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 HTTPS\" title=\"\u0414\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0437\u0430\u043a\u0430\u0447\u043a\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 HTTPS\" width=\"666\" height=\"328\"><figcaption>\u0414\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0437\u0430\u043a\u0430\u0447\u043a\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 HTTPS<\/figcaption><\/figure>\n<p>\u0417\u0434\u0435\u0441\u044c \u043d\u0430\u0434\u043e \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c \u0447\u0442\u043e \u0434\u043b\u044f Sinergy \u0443 Azure RTOS \u0435\u0441\u0442\u044c \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c HTTP \u0438 HTTPS \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u0432 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430. <\/p>\n<p>\u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c. <\/p>\n<p>\u041a\u0430\u043a \u043e\u0431\u0441\u0442\u043e\u044f\u0442 \u0434\u0435\u043b\u0430 \u0441 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430\u043c\u0438 \u0434\u043b\u044f \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438 STM32 \u0435\u0449\u0451 \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442 \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u044c.   <\/p>\n<p>\u0418\u0442\u0430\u043a, \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043f\u043e\u0434 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0435 \u0433\u0430\u0434\u0436\u0435\u0442\u044b, \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e TLS  \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0432\u043c\u0435\u0441\u0442\u0435 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u0438 \u0444\u0430\u0439\u043b\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445 JSON \u0432 \u0441\u0440\u0435\u0434\u043d\u0435\u043c \u0437\u0430\u0439\u043c\u0435\u0442 \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 800 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434, \u0447\u0442\u043e \u0432\u043f\u043e\u043b\u043d\u0435 \u043f\u0440\u0438\u0435\u043c\u043b\u0435\u043c\u043e \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.   <\/p>\n<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/552864\/\"> https:\/\/habr.com\/ru\/post\/552864\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<p>\u0423\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044b\u0435 \u0432\u044b\u0448\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432\u044b\u0437\u0432\u0430\u043d\u044b \u0446\u0435\u043b\u0435\u0432\u044b\u043c \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u043f\u043e\u043a\u0430 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. &nbsp;<\/p>\n<p>\u0410 WEB \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0438 \u043d\u0435\u043a\u043e\u0435\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 \u0441\u043e \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d\u043e\u0432 \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0433\u0430\u0434\u0436\u0435\u0442\u043e\u0432. <\/p>\n<h4>\u0412\u044b\u0431\u043e\u0440 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b<\/h4>\n<p>\u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0432 \u0432\u0438\u0434\u0435 \u043f\u043b\u0430\u0442\u044b \u0434\u043e\u043b\u0436\u043d\u0430 \u0438\u043c\u0435\u0442\u044c \u0447\u0438\u043f \u0438\u043b\u0438 \u043c\u043e\u0434\u0443\u043b\u044c Wi-Fi, \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440, \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e SD \u043a\u0430\u0440\u0442\u0443 \u0438\u043b\u0438 \u0447\u0438\u043f \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0451\u043c\u043a\u043e\u0441\u0442\u044c\u044e \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442. <\/p>\n<h4>\u0412\u044b\u0431\u043e\u0440 RTOS<\/h4>\n<p>\u0412 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 WEB \u0441\u0435\u0440\u0432\u0435\u0440 \u0438\u0433\u0440\u0430\u0435\u0442 \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u0443\u044e \u0440\u043e\u043b\u044c. \u041a\u0440\u043e\u043c\u0435 \u043d\u0435\u0433\u043e \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0435\u0449\u0451 \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u0437\u0430\u0434\u0430\u0447. \u041e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c WEB \u0441\u0435\u0440\u0432\u0435\u0440 \u0442\u0430\u043a \u0447\u0442\u043e\u0431\u044b \u0435\u0433\u043e \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043d\u0435 \u0432\u043b\u0438\u044f\u043b\u043e \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0443 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043c\u043e\u0436\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e RTOS. <\/p>\n<p> \u041e\u0442 middleware RTOS \u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u0440\u0430\u0437\u0432\u0438\u0442\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438, \u0432\u044b\u0442\u0435\u0441\u043d\u044f\u044e\u0449\u0430\u044f \u043c\u043d\u043e\u0433\u043e\u0437\u0430\u0434\u0430\u0447\u043d\u043e\u0441\u0442\u044c, \u043d\u0430\u0434\u0451\u0436\u043d\u044b\u0439 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u0431\u044b\u0441\u0442\u0440\u0430\u044f \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0434\u043b\u044f SD \u0438\u043b\u0438 eMMC \u043a\u0430\u0440\u0442, \u0441\u0442\u0435\u043a TCP\/IP \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432 \u0438 \u043e\u0447\u0435\u043d\u044c \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u043e\u0442\u043b\u0430\u0434\u043a\u0438. <br \/>\u0412\u0441\u0435 \u044d\u0442\u043e \u0435\u0441\u0442\u044c \u0432 Azure RTOS. \u042d\u0442\u0430 RTOS \u0438\u043c\u0435\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0434\u043b\u0438\u043d\u043d\u0443\u044e \u0438 \u0441\u043b\u0430\u0432\u043d\u0443\u044e \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0441 \u0442\u0435\u0445 \u043f\u043e\u0440, \u043a\u043e\u0433\u0434\u0430 \u0435\u0449\u0451 \u043d\u0430\u0437\u044b\u0432\u0430\u043b\u0430\u0441\u044c ThreadX. \u041e\u043d\u0430 \u043d\u0430\u0448\u043b\u0430 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u0430\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432. \u0415\u0451 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442 \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u044c, \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u0438 <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/rtos\/\" rel=\"noopener noreferrer nofollow\">\u0445\u043e\u0440\u043e\u0448\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/a>. \u0414\u043e\u043b\u0433\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0431\u044b\u043b\u0430 \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u043e\u0439 \u0438 \u043e\u0447\u0435\u043d\u044c \u0434\u043e\u0440\u043e\u0433\u043e\u0439. \u0412\u043f\u0435\u0440\u0432\u044b\u0435 \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u0432\u0438\u0434\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0432 \u043f\u0430\u043a\u0435\u0442\u0435 \u041f\u041e Synergy \u043e\u0442 Renesas \u0434\u043b\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 Synergy \u043d\u0430 \u0431\u0430\u0437\u0435 ARM Cortex-M4, \u0438 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430 \u0448\u0438\u0440\u043e\u043a\u0443\u044e \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u044c \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u043e\u0433\u0430\u0442\u043e\u0439 \u043f\u0430\u043b\u0438\u0442\u0440\u0435 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0433\u043e middleware.&nbsp; \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 middleware Azure RTOS \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e <a href=\"https:\/\/github.com\/azure-rtos\/samples\" rel=\"noopener noreferrer nofollow\">\u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e \u0438 \u0434\u043b\u044f STM32<\/a>. <\/p>\n<h4>\u0412\u044b\u0431\u043e\u0440 WEB \u0441\u0435\u0440\u0432\u0435\u0440\u0430<\/h4>\n<p>\u0412\u0435\u0440\u0445\u043d\u0438\u043c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u043c, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0431\u0430\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f WEB \u0441\u0435\u0440\u0432\u0435\u0440 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f HTTP.<br \/>Azure RTOS \u0443\u0436\u0435 \u0438\u043c\u0435\u0435\u0442 \u0432 \u0441\u0432\u043e\u0451\u043c \u0441\u043e\u0441\u0442\u0430\u0432\u0435 HTTP \u0441\u0435\u0440\u0432\u0435\u0440, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u043f\u043e\u0432\u0435\u0440\u0445 \u0441\u0442\u0435\u043a\u0430 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432 <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/rtos\/netx-duo\/overview-netx-duo\" rel=\"noopener noreferrer nofollow\">Azure RTOS NetX Duo<\/a>. HTTP Azure, \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0432\u0441\u0435\u0433\u043e \u043e\u0442 3.0 KB \u0434\u043e 9.5 KB FLASH \u0438 \u043e\u0442 0.5 KB \u0434\u043e 2 KB \u041e\u0417\u0423. \u041d\u0438\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u0434\u0430\u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u0440\u0435\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u0430\u044f \u043e\u0446\u0435\u043d\u043a\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043c\u0430 \u041e\u0417\u0423.<br \/>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 NetX Duo \u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c BSD, \u0442\u043e \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0435 WEB \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u0445\u043e\u0442\u044f \u0442\u0435\u0441\u043d\u0430\u044f \u0441\u0432\u044f\u0437\u044c \u0442\u0430\u043a\u0438\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0441 \u043d\u0438\u0436\u0435\u043b\u0435\u0436\u0430\u0449\u0438\u043c API \u0434\u0435\u043b\u0430\u0435\u0442 \u0442\u0430\u043a\u043e\u0439 \u0432\u044b\u0431\u043e\u0440 \u043c\u0430\u043b\u043e\u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u043c.<\/p>\n<p><strong><em>\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 WEB \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0432 Azure RTOS<\/em><\/strong>:<\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 2-\u0445 \u0442\u0438\u043f\u043e\u0432 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438: basic (\u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u043f\u0430\u0440\u043e\u043b\u044f \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u0432\u0438\u0434\u0435) \u0438 digest (\u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0445\u044d\u0448\u0430 \u043f\u0430\u0440\u043e\u043b\u044f),<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430 \u043f\u043e &nbsp;\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u043c HTTP \u0438 HTTPS (HTTP \u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u044b\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e TLS) <\/p>\n<\/li>\n<li>\n<p>\u0427\u0442\u0435\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u0441 SD \u043a\u0430\u0440\u0442\u044b \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044f \u0441 FAT32<\/p>\n<\/li>\n<li>\n<p>\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432: GET, POST, HEAD, PUT, DELETE<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0442\u043e\u0447\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0431\u0435\u0437 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445: Content-Length<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043d\u0430 WEB \u0441\u0435\u0440\u0432\u0435\u0440 <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/rtos\/netx-duo\/netx-duo-web-http\/chapter1\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<h4>\u0422\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b WEB \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430<\/h4>\n<p>\u0421\u043f\u043e\u0441\u043e\u0431 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0439. \u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 TCP \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043e\u0442 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e <a href=\"https:\/\/ru.wikipedia.org\/wiki\/HTTP\" rel=\"noopener noreferrer nofollow\">\u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 HTTP<\/a>. <br \/> \u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u043f\u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 HTTP. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 WEB \u0441\u0435\u0440\u0432\u0435\u0440 \u0432 Azure RTOS \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f HTTP \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c. HTTP \u0441\u0435\u0440\u0432\u0435\u0440 Azure RTOS \u0441\u0440\u0430\u0437\u0443 \u0433\u043e\u0442\u043e\u0432 \u043e\u0442\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u0444\u0430\u0439\u043b\u044b \u0441 SD \u043a\u0430\u0440\u0442\u044b \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u041d\u043e \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043c\u0430\u043b\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b.<\/p>\n<p>\u0421\u0430\u043c\u043e\u0439 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0451\u043d\u043d\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0435\u0439 \u0432 WEB \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u0445 \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f <a href=\"https:\/\/en.wikipedia.org\/wiki\/Server_Side_Includes\" rel=\"noopener noreferrer nofollow\">Server Side Includes&nbsp; (SSI)<\/a>.&nbsp; \u0412 Azure WEB \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0442\u0430\u043a\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u043d\u0435\u0442. \u0412\u0438\u0434\u0438\u043c\u043e \u043e\u043d\u0430 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0435\u0439. \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, SSI \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u043b \u043f\u0440\u0438\u0434\u0430\u0442\u044c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u043d\u043e\u0441\u0442\u044c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u043c, \u043a\u043e\u0433\u0434\u0430 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u0431\u044b\u043b\u0430 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0442\u044c JavaScript. \u0422\u0435\u043f\u0435\u0440\u044c \u0436\u0435 JavaScript \u0432\u043a\u043b\u044e\u0447\u0451\u043d \u043f\u043e\u0432\u0441\u0435\u043c\u0435\u0441\u0442\u043d\u043e, \u0431\u0435\u0437 \u043d\u0435\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0441\u0442\u0438. <\/p>\n<p>\u0411\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u043c \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0441\u043f\u043e\u0441\u043e\u0431 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e<a href=\"https:\/\/www.w3schools.com\/js\/js_ajax_intro.asp\" rel=\"noopener noreferrer nofollow\"> \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 AJAX<\/a>. \u0422.\u0435. \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e JavaScript \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0442\u043e\u043a\u0435 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u0421\u0435\u0440\u0432\u0435\u0440 \u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u043d\u0430 \u043b\u0435\u0442\u0443 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0431\u043b\u043e\u043a \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0443 \u0432 \u0442\u0430\u043a\u043e\u043c \u0436\u0435 \u0432\u0438\u0434\u0435 \u043a\u0430\u043a \u043e\u043d \u043f\u043e\u0441\u044b\u043b\u0430\u043b \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0442.\u0435. \u043f\u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 HTTP.<\/p>\n<p>\u041d\u0438\u043a\u0442\u043e, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043d\u0435 \u043c\u0435\u0448\u0430\u0435\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0438 SSI \u0432 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 Azure. \u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u0438 \u0432\u044b\u043b\u044c\u0435\u0442\u0441\u044f \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0438\u0442\u043e\u0433\u0435 \u0432 \u0434\u043b\u0438\u043d\u043d\u0443\u044e \u0446\u0435\u043f\u043e\u0447\u043a\u0443 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 if else \u0441 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430\u043c\u0438 \u043d\u0430 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a-\u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432. \u041d\u043e \u0442\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0432\u044b\u0437\u043e\u0432\u0435\u0442 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0442\u0435\u0441\u043d\u0443\u044e \u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u044c \u043c\u0435\u0436\u0434\u0443 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u043c\u0438 \u0438 \u043a\u043e\u0434\u043e\u043c \u0432 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435. <\/p>\n<p>\u0413\u043e\u0440\u0430\u0437\u0434\u043e \u043f\u0440\u0438\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u0435\u0439 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 <a href=\"https:\/\/www.w3schools.com\/js\/js_ajax_intro.asp\" rel=\"noopener noreferrer nofollow\">AJAX<\/a>, \u043f\u0440\u0438\u0447\u0451\u043c \u0441 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435\u0439 \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 <a href=\"https:\/\/www.json.org\/json-en.html\" rel=\"noopener noreferrer nofollow\">JSON \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0435<\/a>. <br \/>\u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e JSON \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u043c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 JavaScript \u0432 WEB \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0445. \u041d\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0449\u0435 \u0434\u043b\u044f WEB \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0447\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0438 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 JSON. &nbsp;&nbsp;\u0412 JSON \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u0432\u0441\u0435\u0433\u043e: \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432, \u0442\u0430\u0431\u043b\u0438\u0446 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432, \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432, \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0432 \u0432\u0438\u0434\u0435 \u0432\u0438\u0434\u0436\u0435\u0442\u043e\u0432 \u0438 \u043f\u0440\u043e\u0447\u0435\u0435.<\/p>\n<p>JSON \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0430\u044f. JSON \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0441\u0447\u0451\u0442\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u0442\u0440\u043e\u043a\u0430. \u0412\u043d\u0443\u0442\u0440\u0438 \u043d\u0435\u0451 \u043d\u0435\u043b\u044c\u0437\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u0430\u0439\u0442 0, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044d\u0442\u0430 \u0441\u0442\u0440\u043e\u043a\u0430 \u043b\u0435\u0433\u043a\u043e \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a C-\u0438 \u0441\u0442\u0440\u043e\u043a\u0430. \u041e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u0436\u0435 \u043e\u0431\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0431\u0435\u0437 \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c JSON \u0432 HTTP \u0441\u0442\u0440\u043e\u043a\u0443 \u043e\u0442\u0432\u0435\u0442\u0430.<br \/>\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435 \u0434\u0435\u043b\u0430 \u043e\u0431\u0441\u0442\u043e\u044f\u0442 \u0441 \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u043e\u043c JSON. \u041f\u0430\u0440\u0441\u0438\u043d\u0433 JSON \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u043a\u043e\u0433\u0434\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043f\u0440\u0438\u0448\u043b\u0451\u0442 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0441 \u043e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438. \u041f\u0440\u043e\u0441\u0442\u044b\u0435 JSON \u0441\u0442\u0440\u043e\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u0430\u0440\u0441\u0438\u0442\u044c \u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 \u044f\u0437\u044b\u043a\u0430 C-\u0438, \u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u0435 JSON \u0441\u0442\u0440\u043e\u043a\u0438 \u0443\u0436\u0435 \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u044b\u0445 \u043f\u0430\u0440\u0441\u0435\u0440\u043e\u0432. <\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043e\u0432\u0435\u0442\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 <a href=\"https:\/\/jansson.readthedocs.io\/en\/2.11\/index.html\" rel=\"noopener noreferrer nofollow\">Jansson<\/a>. \u041d\u0430\u0434\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u043d\u0430\u0442\u044c \u0447\u0442\u043e Jansson \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c, \u0438 \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0432 JSON \u043e\u043a\u043e\u043b\u043e \u0441\u043e\u0442\u043d\u0438 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445 \u0438 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432, \u0442\u043e \u0434\u043b\u044f \u043f\u0430\u0440\u0441\u0435\u0440\u0430 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u043e\u043a\u043e\u043b\u043e 50 \u041a\u0431\u0430\u0439\u0442 \u041e\u0417\u0423, \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0434\u043b\u0438\u043d\u044b \u0438\u043c\u0451\u043d \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0438 \u0434\u043b\u0438\u043d\u044b \u0441\u0430\u043c\u0438\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445. <\/p>\n<h4>\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u044f \u043f\u043e HTTP \u0441\u0435\u0440\u0432\u0435\u0440\u0443 Azure.<\/h4>\n<p><strong><em>MIME \u0442\u0438\u043f\u044b<br \/><\/em><\/strong>\u0421\u0435\u0440\u0432\u0435\u0440 Azure HTTP \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/HTTP_pipelining\" rel=\"noopener noreferrer nofollow\">HTTP pipelining<\/a>, \u043d\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u0444\u0430\u0439\u043b\u043e\u0432 \u043e\u0434\u0438\u043d \u0437\u0430 \u0434\u0440\u0443\u0433\u0438\u043c \u0432 \u043e\u0434\u043d\u043e\u043c TCP \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0438. WEB \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0444\u0430\u0439\u043b\u044b \u0441\u0442\u0438\u043b\u0435\u0439, \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432, \u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a \u0438 \u043f\u0440\u043e\u0447\u0435\u0433\u043e. \u0412\u0441\u0435 \u044d\u0442\u0438 \u0444\u0430\u0439\u043b\u044b \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0434\u0438\u043d \u0437\u0430 \u0434\u0440\u0443\u0433\u0438\u043c \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u0430. \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0444\u0430\u0439\u043b \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043f\u043e\u0441\u044b\u043b\u0430\u0435\u0442 HTTP \u0437\u0430\u043f\u0440\u043e\u0441. \u0421\u0435\u0440\u0432\u0435\u0440 \u043d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 HTTP \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u0430\u043a\u043e\u0439:<\/p>\n<pre><code class=\"xml\">HTTP\/1.1 200 OK Content-Type: text\/html Connection: keep-alive Content-Length: 13210 Date: Sun, 17 May 2020 00:59:19 GMT Cache-Control: max-age=1 Last-Modified: Sun, 17 May 2021 00:59:19 GMT <\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u0438\u043c\u0435\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044f Content-Type. \u0415\u0441\u043b\u0438 \u0435\u0433\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443. \u0421\u0435\u0440\u0432\u0435\u0440 Azure \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 &nbsp;Content-Type \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430. \u041d\u043e \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0430\u043c\u0438\u0445 \u0442\u0430\u043a\u0438\u0445 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0445 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 \u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u0444\u0430\u0439\u043b\u0435 <strong>nx_web_http_server.c<\/strong> \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432 <strong>_nx_web_http_server_mime_maps<\/strong> \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"cpp\">\/* Define basic MIME maps. *\/ static NX_WEB_HTTP_SERVER_MIME_MAP _nx_web_http_server_mime_maps[] = {     {\"html\",     \"text\/html\"},     {\"htm\",      \"text\/html\"},     {\"txt\",      \"text\/plain\"},     {\"css\",      \"text\/css\"},     {\"js\",       \"application\/javascript\"},     {\"gif\",      \"image\/gif\"},     {\"jpg\",      \"image\/jpeg\"},     {\"png\",      \"image\/png\"},     {\"ico\",      \"image\/x-icon\"}, }; <\/code><\/pre>\n<p><strong><em>\u0421\u043f\u043e\u0441\u043e\u0431\u044b \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430<\/em><\/strong>. \u0414\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0443\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u0438 \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u0438 \u0441\u043e\u043f\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u043d\u0430 WEB \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c FTP \u0441\u0435\u0440\u0432\u0435\u0440. FTP \u0441\u0435\u0440\u0432\u0435\u0440 \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0432 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0435 Azure RTOS. \u0422\u0430\u043a\u0438\u0435 \u0441\u0440\u0435\u0434\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043a\u0430\u043a Adobe Dreamweaver \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u043d\u0430 \u0446\u0435\u043b\u0435\u0432\u043e\u043c FTP \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u043c \u043a\u043e\u043d\u0442\u0435\u043d\u0442 WEB \u0441\u0430\u0439\u0442\u0430.&nbsp;<\/p>\n<p> <strong><em>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0434\u043b\u044f WEB \u0441\u0435\u0440\u0432\u0435\u0440\u0430 Azure<\/em><\/strong>. <br \/>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0435\u0439 HTTP \u0441\u0435\u0440\u0432\u0435\u0440\u0430 Azure &nbsp;\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u0440\u043d\u0435\u0432\u0430\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f SD \u043a\u0430\u0440\u0442\u044b. <\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0441\u0435\u0440\u0432\u0435\u0440 \u043c\u043e\u0433 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u043f\u043e\u0434\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0435\u043c\u0443 \u043d\u0430\u0434\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 <strong>fx_directory_local_path_set<\/strong> \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u042d\u0442\u043e \u0443\u0434\u043e\u0431\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u0432\u044b\u0437\u043e\u0432\u0435 \u0432 callback \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442\u0447\u0438\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u0423\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 callback \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0441\u044f \u0432 \u0437\u0430\u0434\u0430\u0447\u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043f\u0440\u0438 \u0435\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <strong>nx_web_http_server_create. <\/strong>\u0412\u0435\u0441\u044c HTTP \u0441\u0435\u0440\u0432\u0435\u0440 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u043e\u0434\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0442\u0430\u043a\u043e\u0439 \u043c\u0435\u0442\u043e\u0434 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. <\/p>\n<p> <strong><em>\u0421\u0436\u0430\u0442\u0438\u0435 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430<\/em><\/strong>. \u0421\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u044b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u0438\u044e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u0438 \u0441\u043e\u043f\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432. \u041a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u0438\u044f \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0445 HTML \u0444\u0430\u0439\u043b\u043e\u0432, \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u0438 \u0441\u0442\u0438\u043b\u0435\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442 \u043e\u0431\u044a\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 3-4 \u0440\u0430\u0437\u0430. \u0421\u0435\u0440\u0432\u0435\u0440 HTTP Azure \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u0438\u044e \u043d\u0430 \u043b\u0435\u0442\u0443, \u0434\u043b\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u043c \u0447\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u043d\u0435\u0441\u0436\u0430\u0442\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430. \u0415\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u0438\u044e \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0441\u0440\u0430\u0437\u0443 \u0436\u0435 \u043f\u0440\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0435 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430. \u0418 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u043d\u0430 SD \u043a\u0430\u0440\u0442\u0435 \u0443\u0436\u0435 \u0441\u0436\u0430\u0442\u044b\u043c\u0438, \u043e\u0434\u043d\u0430\u043a\u043e HTTP \u0441\u0435\u0440\u0432\u0435\u0440 Azure \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u0435 \u0441\u0436\u0430\u0442\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432 HTTP. <\/p>\n<p>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043d\u0435 \u0442\u0430\u043a \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430 \u043a\u0430\u043a \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440&nbsp; \u043e\u0434\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043d\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0435 \u0432\u043e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430\u0445 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u044e\u0442 \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u0432\u0441\u0435\u0433\u043e \u043e\u0434\u0438\u043d \u0440\u0430\u0437, \u0438 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043a\u043e\u043d\u0442\u0435\u043d\u0442. \u0421\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0431\u044b\u0441\u0442\u0440\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0445 \u0441\u0436\u0438\u043c\u0430\u0442\u044c. \u0418 \u043c\u043e\u0436\u043d\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u0435 \u0441\u0436\u0430\u0442\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 HTTP \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c\u0438 \u0441\u0438\u043b\u0430\u043c\u0438 \u0435\u0441\u043b\u0438 \u0441\u0436\u0430\u0442\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0438\u043b\u044c\u043d\u043e \u0443\u043b\u0443\u0447\u0448\u0438\u0442 \u043e\u0442\u0437\u044b\u0432\u0447\u0438\u0432\u043e\u0441\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440\u0430.&nbsp;&nbsp; <\/p>\n<p><strong><em>\u041d\u0435\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u0445 Azure HTTP \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043f\u0440\u0438 \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438.<br \/><\/em><\/strong>\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0442\u0435\u043a\u0441\u0442\u044b \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u043d\u0435\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0432 \u0444\u0430\u0439\u043b\u0435 <strong>nx_web_http_server.c<\/strong> <a href=\"https:\/\/github.com\/azure-rtos\/netxduo\/blob\/master\/addons\/web\/nx_web_http_server.c#L3689\" rel=\"noopener noreferrer nofollow\">\u043f\u043e\u0441\u043b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 3689<\/a>. <br \/>\u0412 \u0442\u0430\u043a\u043e\u043c \u0432\u0438\u0434\u0435 \u0431\u0430\u0437\u043e\u0432\u0430\u044f \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0437\u0430\u0442\u044f\u0433\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 10 \u0441\u0435\u043a., \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043d\u0435 \u0440\u0430\u0437\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u043d\u0435\u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u0422\u0443\u0434\u0430 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442:<\/p>\n<pre><code>if (status == NX_WEB_HTTP_BASIC_AUTHENTICATE)         {           _nx_web_http_server_connection_reset(server_ptr,server_ptr -&gt; nx_web_http_server_current_session_ptr , NX_WEB_HTTP_SERVER_TIMEOUT_SEND);           return;         } <\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0442\u0430\u043a\u043e\u0433\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0441\u0440\u0430\u0437\u0443, \u0430 \u043d\u0435 \u0447\u0435\u0440\u0435\u0437 10 \u0441\u0435\u043a. \u0443\u0432\u0438\u0434\u0438\u0442 \u0434\u0438\u0430\u043b\u043e\u0433 \u0441 \u0432\u0432\u043e\u0434\u043e\u043c \u0438\u043c\u0435\u043d\u0438 \u0438 \u043f\u0430\u0440\u043e\u043b\u044f. <br \/>\u041d\u0435 \u0437\u0430\u0431\u044b\u0442\u044c \u0442\u0430\u043a\u0436\u0435 \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u0432 POST \u0438 DELETE.<\/p>\n<h4>\u0412\u044b\u0431\u043e\u0440 WEB \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430<\/h4>\n<p>\u0412\u044b\u0431\u043e\u0440 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A4%D1%80%D0%B5%D0%B9%D0%BC%D0%B2%D0%BE%D1%80%D0%BA\" rel=\"noopener noreferrer nofollow\">\u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430<\/a> \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u0435\u043d. \u0424\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0438 \u2013 \u044d\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0435 JavaScript \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0438 \u0444\u0430\u0439\u043b\u043e\u0432 \u0441\u0442\u0438\u043b\u0435\u0439 CSS. \u0411\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0434\u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430, \u043a\u0430\u043a \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <a href=\"https:\/\/jquery.com\/\" rel=\"noopener noreferrer nofollow\">jQuery<\/a>, \u0431\u044b\u0432\u0430\u0435\u0442 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0441\u043e \u0441\u0442\u0438\u043b\u044f\u043c\u0438, \u043a\u0430\u043a \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <a href=\"https:\/\/jqueryui.com\/\" rel=\"noopener noreferrer nofollow\">jQuery UI<\/a>. \u0424\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0431\u043b\u0435\u0433\u0447\u0430\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0445,<\/p>\n<\/p>\n<p><\/strong><\/p>\n<p><\/br><\/p>\n<\/p>\n<\/p>\n<\/p>\n<p><\/br><\/br><\/br><\/p>\n<\/p>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-321722","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/321722","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=321722"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/321722\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=321722"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=321722"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=321722"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}