住房城乡建设局网站专业制作网站电脑

news/2025/9/23 10:41:26/文章来源:
住房城乡建设局网站,专业制作网站电脑,wordpress 模块,wordpress搜索结果页ESP32-Web-Server编程-建立第一个网页 HTTP 简述 可能你每天都要刷几个短视频#xff0c;打开几个网页来娱乐一番。当你打开一个网络上的视频或者图片时#xff0c;其实际发生了下面的流程#xff1a; 其中客户端就是你的浏览器啦#xff0c;服务器就是远程一个存放视频或…ESP32-Web-Server编程-建立第一个网页 HTTP 简述 可能你每天都要刷几个短视频打开几个网页来娱乐一番。当你打开一个网络上的视频或者图片时其实际发生了下面的流程 其中客户端就是你的浏览器啦服务器就是远程一个存放视频或者图片的电脑啦。他们之间传输数据时需要一个约定的标准就像两个设备约定共同用一种语言说话一样目前使用较多的就是 HTTP协议啦。 本系列博客基于乐鑫最流行的开源 ESP-IDF 开发环境。ESP-IDF 中 HTTP Server 组件提供了在 ESP32 上运行轻量级 Web 服务器的功能。 HTTP 的基础的方法 http 1.0定义了3种方法GETPOSTHEAD http 1.1新增了6种方法PUTDELETEOptionsTraceConnectPatch 作为新手我们主要理解两种方法 GET、POST 方法就可以了。 GET 方法GET方法用于使用给定的URI从给定服务器中检索信息即从指定资源中请求数据。使用GET方法的请求应该只是检索数据不应对数据产生其他影响。相当与从服务器接收数据。 POST方法用于将数据发送到服务器以创建或更新资源。POST请求永远不会被缓存且对数据长度没有限制我们无法从浏览器历史记录中查找到POST请求。目前几乎所有的提交操作都是通过该方法完成。相当于向服务器发送数据。 HTTP 的 URL、URI 服务器上的文件资源很多访问哪个资源用 URI\URL 来指定要访问的资源。 URI Universal Resource Identifier 统一资源标志符用来标识抽象或物理资源的一个紧凑字符串。 URL Universal Resource Locator 统一资源定位符一种定位资源的主要访问机制的字符串一个标准的URL必须包括protocol、host、port、path、parameter、anchor。 一个典型的 URL 标识 协议://主机[:端口]URI举个栗子先大致理解下他们的含义就可以了随着学习的深入大家会慢慢理解的更多的。 https://www.baidu.com:8080/iot-wang/readme.html?userxmhid1#test 通过解析上述 URL 可以得到各部分的值如下所示。协议https。也可以是 ftp、tftp 服务器主机域名www.baidu.com 服务器端口号8080 要查询的目标资源路径/iot-wang/readme.html 客户端传递给服务器的附带参数? 号开始后的内容即 userxmhid1多个参数之间用 标识。 目标资源中可能有多个可以访问的资源比如一个文章有多个段落指定更详细的段落参数# 号后的内容即 test也可以使用 连接多个锚点。HTTP 的返回码 打开网页时显示 404使用手机或者电脑的童鞋可能遇到过这种情况。 客户端发起一个请求后服务器可以返回一个数字代表此次请求是否成功。数字 200 代表此次通信成功其他数字代表此次通信有点问题 11xx提示信息 1xx 类状态码属于提示信息是协议处理中的一种中间状态实际用到的比较少。 22xx正确 2xx 类状态码表示服务器成功处理了客户端的请求常见的有 「200 OK」是最常见的成功状态码表示一切正常。如果是非 HEAD 请求服务器返回的响应头都会有 body 数据。 「204 No Content」也是常见的成功状态码与 200 OK 基本相同但响应头没有 body 数据。 33xx重定向 3xx 类状态码表示客户端请求的资源发送了变动需要客户端用新的 URL 重新发送请求获取资源也就是重定向。 「301 Moved Permanently」表示永久重定向说明请求的资源已经不存在了需改用新的 URL 再次访问。 「302 Moved Permanently」表示临时重定向说明请求的资源还在但暂时需要用另一个 URL 来访问。 「304 Not Modified」不具有跳转的含义表示资源未修改重定向已存在的缓冲文件也称缓存重定向用于缓存控制。 301 和 302 都会在响应头里使用字段 Location指明后续要跳转的 URL浏览器会自动重定向新的 URL。 44xx客户端错误 4xx 类状态码表示客户端发送的报文有误服务器无法处理也就是错误码的含义。 「400 Bad Request」表示客户端请求的报文有错误但只是个笼统的错误。 「403 Forbidden」表示服务器禁止访问资源并不是客户端的请求出错。 「404 Not Found」表示请求的资源在服务器上不存在或未找到所以无法提供给客户端。 [408 Request Timeout]该响应状态码意味着服务器想要关闭这个未使用的连接。 55xx服务器错误 5xx 类状态码表示客户端请求报文正确但是服务器处理时内部发生了错误属于服务器端的错误码。 「500 Internal Server Error」与 400 类型是个笼统通用的错误码服务器发生了什么错误我们并不知道。 「501 Not Implemented」表示客户端请求的功能还不支持类似“即将开业敬请期待”的意思。 「502 Bad Gateway」通常是服务器作为网关或代理时返回的错误码表示服务器自身工作正常访问后端服务器发生了错误。 「503 Service Unavailable」表示服务器当前很忙暂时无法响应服务器类似“网络服务正忙请稍后重试”的意思。 ESP32 上如何实现网页的发送 前端代码 前端代码负责呈现网页上的特效、网页的布局、图片、视频等内容。网站前端工程师的工作内容就是将美工设计的效果图的设计成浏览器可以运行的网页并和后端开发工程师配合做网页的数据显示和交互。 在本系列课程中前端代码主要是HTMLCSSJAVASCRIPT。 注意服务器只是提供前端代码的设计文本客户端如何解释即显示由客户端决定。 后端代码 后端代码就是网站的逻辑部分主要是数据的处理以及如何响应客户端的请求。比如客户端发起一个不支持的请求后端代码经过判断会返回一个错误码。 在本系列课程中前端代码主要是C语言代码感兴趣的也可以了解下可能涉及的数据库。 需求及功能解析 本节演示如何在 ESP32 上使用 wifi并使用一个 html 文件。 示例解析 目录结构 ├── CMakeLists.txt ├── main │ ├── CMakeLists.txt │ └── main.c User application ├── components │ └── fs_image└── index.html└── ... | └── url_handlers└── url_handlers.c└── ... └── README.md This is the file you are currently reading目录结构主要包含主目录 main以及组件目录 components. 其中组件目录components中包含了用于存储网页文件的 fs_image 目录即前述前端文件以及用于记录 ESP32 上接收来自服务器的请求并作出响应的 url_handlers 目录即后端文件。如前所述浏览器可以通过 URL 请求服务器端的资源包括数据和文件每个 URL 到来时都可以设计一个函数来决定如何响应该 URL 请求这便是 url_handlers 要完成的功能。 建立前后端代码 为了保存 html 文件以及图片文件到 ESP32 上url_handlers 目录的 CMakeLists.txt 使用内嵌数据的方式将 fs_image目录的 index.html 和 favicon.ico 文件保存在 ESP32 中此外前端代码 idf_component_register(SRCS url_handlers.cINCLUDE_DIRS includePRIV_REQUIRES esp_http_serverEMBED_FILES ../fs_image/favicon.ico ../fs_image/index.html)为了在打开网页时显示 index.html 中的内容在 url_handlers.c 中实现了 一个处理函数 index_html_get_handler()。这部分是后端代码。 /* Handler to redirect incoming GET request for /index.html to /* This can be overridden by uploading file with same name */ static esp_err_t index_html_get_handler(httpd_req_t *req) {extern const char html_start[] asm(_binary_index_html_start);extern const char html_end[] asm(_binary_index_html_end);const size_t html_size (html_end - html_start);httpd_resp_set_type(req, text/html);/* Add file upload form and script which on execution sends a POST request to /upload */httpd_resp_send_chunk(req, (const char*) html_start, html_size);/* Respond with an empty chunk to signal HTTP response completion */return httpd_resp_send_chunk(req, NULL, 0); }在实现了 html 文件以及 对应的 handles 后可以在 main.c 中注册对应的 handler: static httpd_handle_t start_webserver(void) {httpd_handle_t server NULL;httpd_config_t config HTTPD_DEFAULT_CONFIG();config.lru_purge_enable true;// Start the httpd serverESP_LOGI(TAG, Starting server on port: %d, config.server_port);if (httpd_start(server, config) ESP_OK) {// Set URI handlersESP_LOGI(TAG, Registering URI handlers);for (int i 0; i sizeof(httpd_uri_array) / sizeof(httpd_uri_t); i) {if (httpd_register_uri_handler(server, httpd_uri_array[i]) ! ESP_OK) {ESP_LOGE(TAG, httpd register uri_array[%d] fail, i);}}ESP_LOGI(TAG, Success starting server!);return server;}ESP_LOGI(TAG, Error starting server!);return NULL; }如此当打开网页时浏览器会自动请求名为 index.html 的文件并显示其中的内容。 编译并烧录固件到设备中 1在工程目录打开配置菜单 idf.py menuconfig主要是配置 wifi 连接的名称和密码 2编译烧录固件到设备中 idf.py -p PORT build flash monitor(Replace PORT with the name of the serial port to use.) (To exit the serial monitor, type Ctrl-].) 如果你是新手请参考 Getting Started Guide 搭建编译环境。 3网页显示 设备烧录固件后启动该设备从 log 中查看设备的 IP地址 I (3288) app_wifi: got ip:192.168.47.100 I (3288) esp_netif_handlers: sta ip: 192.168.47.100, mask: 255.255.255.0, gw: 192.168.47.1 I (3288) example_main: Starting server on port: 80 I (3298) example_main: Registering URI handlers I (3298) example_main: Success starting server!这里假设设备 IP 地址是 192.168.47.100. 让手机或者电脑与 ESP32 连接同一个路由器然后打开手机或者电脑上电浏览器输入上述IP地址即可打开网页 上述示例网页即是本例程 fs_images 目录的 index.html 文件在该浏览器中所程序的样子。 4功能演示 本节主要是呈现一个网页给用户。 讨论 1输入网址后浏览器会自动请求 favicon.ico(即上述网页中第一行显示的图标)。 默认情况下当请求一个网站的 “/” 目录内容时会默认打开该目录的 index.html 文件。 同样的默认情况下浏览器会自动请求 /目录下的 favicon.ico 文件用作网址栏的一个标识图像。 2如何设计 index.html 文件中的内容使之在网页上呈现合适的内容 这正是本系列博客主要介绍的内容。以试验促进理解在测试实践中学习敬请参考后续章节。 总结 1本节主要是介绍 HTTP 协议、Web 编程的基础知识包括HTTP 的基础的方法什么是 URL、URIHTTP 的返回码 2本节还介绍了 ESP32 上 HTTP 编程的要点包括如何建立前端、后端代码它们如何相互作用以实现一个 Web 应用。 资源链接 1ESP32-Web-Server ESP-IDF系列博客介绍 2对应示例的 code 链接 点击直达代码仓库 3下一篇ESP32-Web-Server编程-HTML 基础 (码字不易感谢点赞或收藏)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/912246.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

冠县网站建设多少钱网站开发手机模拟器

推荐阅读时间:8min~15min主要内容:卷积神经网络《Convolutional Neural Networks》是Andrw Ng深度学习专项课程中的第四门课。这门课主要介绍卷积神经网络(CNN)的基本概念、模型和具体应用。该门课共有4周课时,所以我将…

做影视网站须要注意什么网站上做旅游卖家要学什么软件

lambda体中有受检异常,为什么不能在lambda表达式外层try catch,只能在lambda里面try catch xxx.getUpdateList().forEach((map) ->{xxxVO vo new xxxVO();BeanUtils.populate(vo,map); // populate方法往外抛了异常list.add(vo);});因为lambda表达式本身没有处理异常的机制…

百度站长 添加网站深圳龙华邮政编码是多少

MrDoc知识文档平台是一款基于Python开发的在线文档系统,适合作为个人和中小型团队的私有云文档、云笔记和知识管理工具,致力于成为优秀的私有化在线文档部署方案。我现在主要把markdown笔记放在上面,因为平时老是需要查询一些知识点&#xff…

网站建设网页与数据库连接中国建设银行官网招聘

1,其实自来水石出来的水是干净的,但是在运输到我们家的过程中      是不排除会造成二次污染的,比如管道材料故障,小区二次加压等环节      都可能带来虫卵,铁锈,泥沙等污染物,      2,不光咱们的自来水会有这种情况,很多欧美国家的饮用水,      也都需要自己 再…

怎么做网站8uftpwordpress 安全选项

一、需要自己安装PHP和MYSQL服务器环境。 二、务必设置伪静态规则,否则将无法访问文章栏目页面。 三、启用伪静态功能,请在站点设置中选择使用thinkphp的伪静态规则。 四、在域名的根目录下找到”data/config.php”文件,填入数据库的账号和…

石家庄自适应网站建设wordpress房地产插件

通讯网关 api网关这些年来,API网关正在经历一些身份危机 。 它们是否是集中的共享资源,从而促进了API对外部实体的公开和治理? 它们是集群入口哨兵,可以严格控制哪些用户流量进入或离开集群吗? 还是他们根据自己拥有…

日志清理脚本模板 - 一叶舟

日志清理脚本模板日志清理脚本模板 cat /data_log_back_bak/move_old_logs.sh #!/bin/bash# 日志源目录和备份目录LOG_DIR="/data/logs/back" TMP_DIR="/tmp" BAK_DIR="/data_log_back_bak&q…

11.备库出现gap处理方法

备库检查是否有日志缺失: select * from v$archive_gap; THREAD# LOW_SEQUENCE# HIGH_SEQUENCE#1 99 109 从上面的信息可以看出,备库中缺失了99到109的日志。…

网站开发江西网站推广软文是什么

前言算法为王。想学好前端,先练好内功,内功不行,就算招式练的再花哨,终究成不了高手;只有内功深厚者,前端之路才会走得更远。强烈推荐 GitHub 上值得前端学习的数据结构与算法项目,包含 gif 图的…

完整教程:2020年_408统考_数据结构41题

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

[原创]《C#高级GDI+实战:从零开发一个流程图》第10章:鼠标拖动完成连线、拖动时实时显示半透明虚线连线效果、自定义连接点样式

一、前言 上节课程我们实现了连接形状不同的连接点,但在实际使用中会发现很繁琐,需要分别指定开始形状和结束形状的连接点,这明显不符合操作经验逻辑。我们本节课程就来实现鼠标拖动完成连线,拖到哪个连接点就对哪…

修改Abp中Auto API Controllers中 默认生成的 Put、Delete请求

在做公家的项目,有个奇葩的规定,Http请求 不能用Put和Delete。 怎么在使用Abp,自动生成的Api,全局修改原有规则,将修改、删除都改成Post呢? 只需要,在Host项目的XXXModule类中,重写的PreConfigureServices方法…

dedecms做网站网站界面设计分析

一、文件的基本权限权限:r, w, x对于文件来讲,r::可读,可以使用类似cat等命令查看文件内容;w:可写,可以编辑或删除此文件;x:可执行,exacutable,可以命令提示符下当作命令…

博物馆网站微信公众号建设方案网站未备案 打不开

先安装MMEdu库! MMEdu安装:https://blog.csdn.net/zyl_coder/article/details/132483865 下面的代码请在Jupyter上运行,并自己准备数据集。若模型还未训练,请先在本地训练完模型后再进行模型推理。 import cv2 capture cv2.Vi…

公司和公司网站的关系男孩子和男孩子在一起怎么做网站

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 单片机家电产品–OC门电路 前言 记录学习单片机家电产品内容 已转载记录为主 一、知识点 1OC门电路和OD门电路的区别 OC门电路和OD门电路的区别 OC门:三极管…

红叶网站建设方案广州建立网站的公司网站

智能优化算法应用:基于非洲秃鹫算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于非洲秃鹫算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.非洲秃鹫算法4.实验参数设定5.算法结果6.…

传媒免费网站建设易语言做网站教程

随着人工智能技术不断深入实际应用场景,加速各行各业场景应用落地,边缘计算的重要性越发凸显。相较于传统的集中式云计算,边缘计算在距离数据源或用户更近的地方提供计算能力,不仅满足了对实时性要求较高的场景应用需求&#xff0…

免费创建企业网站阿里云 两个网站

1,将一个字符串转换为整数 在C语言中,可以使用库函数 atoi() 将字符串转换为整数。 atoi() 函数接受一个字符串作为参数,并返回其对应的整数。 以下是一个示例代码,演示如何使用 atoi() 函数将字符串转换为整数: #i…

河北网站备案 多长时间通过网站建设中项目经理的职责

目前 前言HarmonyOS 应用/服务发布的重要性使用HarmonyOS 构建跨设备的应用生态前期准备工作简述发布流程生成签名文件配置签名信息编译构建.app文件上架.app文件到AGC结束语 前言 随着智能设备的快速普及和多样化,以及编程语言的迅猛发展,构建一个无缝…

电阻-温度数据拟合工具(最小二乘法)

代码(html)<!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=…