学习日记——ESP8266HTTP超文本传输协议(2020.7.11)

概念

读取瑞生网的485通信页面
1、HTTP的操作过程

  • HTTP协议定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。从层次的角度看,HTTP是面向事务的应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。请注意,HTTP不仅传送完成超文本跳转所必需的信息,而且也传送任何可从互联网.上得到的信息,如文本、超文本、声音和图像等。HTTP规定在HTTP客户与HTTP服务器之间的每次交互,都由一个ASCII码串构成的请求和一个类似的通用互联网扩充,即“类MIME(MIME-like)”的响应组成。HTTP报文通常都使用TCP连接传送。
  • 浏览器和服务器之间的请求和响应的交互,必须按照规定的格式和遵循一定的规则。这些格式和规则就是超文本传送协议HTTP。
  • 用户浏览页面的方法有两种。-种方法是在浏览器的地址窗口中键入所要找的页面的URL。另一种方法是在某一个页面中用鼠标点击一个可选部分,这时浏览器会自动在互联网上找到所要链接的页面。
  • HTTP使用了面向连接的TCP作为运输层协议,保证了数据的可靠传输。HTTP不必考虑数据在传输过程中被丢弃后又怎样被重传。但是,HTTP协议本身是无连接的。这就是说,虽然HTTP使用了TCP连接,但通信的双方在交换HTTP报文之前不需要先建立HTTP连接。
    2、HTTP的报文结构
    (1) 请求报文一 从客户向服务器发送请求报文,见图(a)。
    (2)响应报文一从服务器到客户的回答,见图(b)。
    在这里插入图片描述
    3、HTTP请求报文的一些方法
    在这里插入图片描述

例程

首先将8266设为STA模式同之前的例程,这里就不再说明,如果成功获取网络IP地址的话,进行网络连接初始化:

void ICACHE_ FLASH ATTR ESP8266 NetCon Init JX()
{
	ST_ NetCon. type = ESPCONL TCP ;//设置为TCP协议
	ST_ NetCon. proto. tcp = (esp_ tcp *) os_ zalloc (sizeof (esp_ tcp)); // 开辟内存
	// ESP8266作为TCP_ _Client,想要连接TCP_ Server, 必须知道TCP_ Server的IP地址
	ST NetCon. proto. tcp->local_ port = espconn_ port() ; // 本地端口[获取可用端口]
	ST_ NetCon. proto. tcp ->remote_ port = 80;//自标端口[HTTP端口号80]
	//获取域名所对应的IP地址
	// [参数1:网络连接结构体指针/参数2:域名字符串/参数3: 1P地址结构体指针/参数4:回调函数) 
	espconn_ gethostbyname (&ST_ NetCon, DN_ Server, &IP_ Server, DNS_ Over_ Cb_ _JX) ;
	//注册连接成功回调函数、异常新开回调函数
	espconn_ regist_ _connectcb (&ST NetCon. ESP8266_ TCP_ Connect. _Cb_ JX) ; // 注册TCP连接成功建立的回调函数
	espconn_ reg ist_ r econcb (&ST NetCon, ESP8266_ TCP Break_ Cb_ _Jx) ;// 注册TCP连接异常断开的回调函数
	

如果域名解析成功,那么将解析到的服务器P地址设为TCP连接的远端IP地址

os_ memcpy (T_ arg- >proto. tcp->remote_ ip, &IP_ Server. addr, 4); //设置服务器IP地址

之后将8266连接到瑞生网服务器。如果TCP连接建立成功的话,8266向瑞生网发送HTTP报文:

espconn_ send((struct espconn *)arg. HTTP Messare 485Comm, os_ str len (HTTP Message_ 485Comm)) ;

如果8266成功接收到网络数据,它会将接收到到的数据打印。

现象

由以上可知报文的请求方法。
首先打开网络调试助手。新建TCPclient
在这里插入图片描述
然后修改IP地址,将其设置为瑞生网的域名。端口为80点击连接,即可连接成功。
之后根据以上内容编写请求报文。我们需要请求行和首部行不需要实体主体。
在这里插入图片描述GET+统一资源定位符( http://www. rati onmcu. com/e1ecjo/2397. html )HTTP/1.1
主机域名:Host:www. rati onmcu. com
连接:Conecti on: closel(发送完就关闭网络连接)
然后打两个回车。
发送之后就可以接收到瑞生网向我们发送的相应报文。
在这里插入图片描述
说明我们网络调试助手成功向瑞生网HTTP请求报文。瑞生网也向我们的网络调试助手响应了HTTP响应报文。我们的网络调试助手和瑞生网建立了HTTP通信。
下载程序到ESP8266.打开串口助手,复位ESP8266。可以串口助手接收到许多数据。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
由以上图片可知串口助手接收到了HTTP200OK.说明瑞生网已经接收了ESP8266向它发送了HTTP请求报文。
在这里插入图片描述
在这里插入图片描述
对比网络调试助手接收到的数据和ESP8266接收到的数据是一样的。ESP8266成功向瑞生网HTTP请求报文。瑞生网也向我们的ESP8266响应了HTTP响应报文。我们的ESP8266和瑞生网建立了HTTP通信。

参考链接

https://www.bilibili.com/video/BV1dJ411S723?p=42

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热爱生活的fuyao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值