赞
踩
stm32 esp8266 ota系列文章:
stm32 esp8266 ota-快速搭建web服务器之docker安装openresty
stm32 esp8266 ota升级-tcp模拟http
stm32 esp8266 ota升级-hex合并-烧录-bin生成
stm32 esp8266 ota升级-qt bin文件处理工具
stm32 esp8266 ota升级-自建mqtt和文件服务器动态AB面方式
stm32 esp8266 ota升级-自建mqtt和文件服务器全量升级
本文仅介绍tcp客户端模拟http,发送GET请求,为ota升级做理论基础。无有具体OTA代码讲解!!!
HTTP是超文本传输协议的英文缩写,是基于TCP/IP通讯协议之上用来传输HTML和图片文件的应用协议,原本是用来从万维网服务器传输超文本到本地浏览器。
HTTP协议主要工作于B-S架构之上,浏览器作为HTTP的客户端通过URL向HTTP的服务器(web服务器)发送所有请求,web服务器根据接收到的请求后,向客户端发送响应信息。
HTTP常用的请求方法为GET和POST方法,每种方法规定了客户端与服务器通讯方式和数据报文。
请参考https://blog.csdn.net/weixin_51351637/article/details/126218456 博文,博主讲解很透彻;
带着疑问,首先打开浏览器,按住键盘F12调出debug 窗口,然后在浏览器中地址栏输入http://alyou.langtaotech.cn:51802/1.txt 回车
说明: http://alyou.langtaotech.cn:51802 是笔者事先搭建好的文件服务器,关于文件服务器怎么搭建不是本文重点。如需了解,请参考相关博文。
可以看到页面中显示hello,you ,而且debug窗口 红色大框中,GET请求,状态200 OK,绿色小框中也有了请求头 数据;那tcp模拟时,发送这些请求头数据是不是就可以了呢。
说明:涉及到的通信猫v307,可以百度自行下载,也可以在这里下载:https://download.csdn.net/download/a554521655/87337741
打开通信猫软件,按照下图,选择 TCP客户端 ,
然后填入 服务器ip或域名,端口,勾选启用,这时服务器会连接;
填入上边从浏览器拷贝的请求头
GET /1.txt HTTP/1.1
Host: alyou.langtaotech.cn:51802
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:108.0) Gecko/20100101 Firefox/108.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,/;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1
之后点击发送
其实对于GET或POST请求,不用填写全部的请求头,只需要填写
GET /1.txt HTTP/1.1
Host: alyou.langtaotech.cn:51802
测试如下
对于文件很小,可以一次性获取。但对于嵌入式设备,一次接收不了那么多字节数据,那有没有分包获取呢?答案是有的,咱们可以通过
请求头中Range字段实现。测试如下
有了上边的认知,stm32代码中就可以进行分包下载啦
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。