STM32H743-ARM例程29-HTTP

目录

实验平台

硬件:银杏科技GT7000双核心开发板-ARM-STM32H743XIH6,银杏科技iToolXE仿真器

软件:最新版本STM32CubeH7固件库STM32CubeMX v6.10.0,开发板环境MDK v5.35

HTTP

HTTP 是 HyperText Transfer Protocol(超文本传输协议)的简写,它是 TCP/IP 协议集中的一个应用层协议,是客户端与服务端进行交互时必须遵循的规则。它用于定义 Web 浏览器与 Web 服务器之间交换数据的过程以及数据本身的格式,底层是靠 TCP 进行可靠地信息传输。

从互联网七层模型中我们可以看到,HTTP属于应用层,应用层决定了向用户提供应用服务时通信的活动,它构建于 TCP 协议之上,HTTP 协议也处于该层。TCP/IP 协议族内预存了各类通用的应用服务。比如,FTP(File Transfer Protocol,文件传输协议)和 DNS(Domain Name System,域名系统)服务就是其中两类。HTTP工作流程如下图所示

HTTP 协议工作于客户端-服务端架构上。

HTTP 工作过程通常如下:

  1. 客户端发起请求:用户通过客户端(如浏览器)输入 URL,客户端向服务器发起一个 HTTP 请求。
  2. 服务器处理请求:服务器接收到请求后,根据请求的类型(如GET、POST等)和请求的资源,进行相应的处理。
  3. 服务器返回响应:服务器将处理结果包装成HTTP响应消息,发送回客户端。
  4. 客户端渲染页面:客户端接收到响应后,根据响应内容(如HTML、图片等)渲染页面,展示给用户。

Web 服务器有:Nginx 服务器,Apache 服务器,IIS 服务器(Internet Information Services)等。HTTP 默认端口号为 80,但是你也可以改为 8080 或者其他端口。

HTTP 三点注意事项:

• HTTP 是无连接:无连接的含义是限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接,采用这种方式可以节省传输时间。

• HTTP 是媒体独立的:这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送,客户端以及服务器指定使用适合的 MIME-type 内容类型。

• HTTP 是无状态:HTTP 协议是无状态协议,无状态是指协议对于事务处理没有记忆能力,缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大,另一方面,在服务器不需要先前信息时它的应答就较快。

HTTP作为互联网的基础协议之一,对于Web开发和使用至关重要。理解HTTP的工作原理、请求和响应结构,以及相关的安全性问题,可以帮助开发者和用户更好地利用Web技术。随着技术的不断演进,HTTP协议也在不断适应新的需求,未来的发展将更加注重性能和安全。

有关HTTP更详细的介绍可以参考HTTP协议此文档。

STM32CubeMX生成工程

我们参考前面章节STM32H743-结合CubeMX新建HAL库MDK工程,打开CubeMX软件,重复步骤不再展示。我们来看配置MPU配置、以太网部分和Lwip部分配置如下图所示:
配置以太网。选用RMII(精简的独立于介质接口)模式




MPU配置

LWIP配置


选择PHY芯片型号。LAN8742向下兼容LAN8720

实验代码

  1. 主函数
相关推荐
!停2 分钟前
数据结构时间复杂度
c语言·开发语言·算法
程序猿编码10 分钟前
深入浅出Linux内核级防火墙:IP/端口黑白名单的高性能实现
linux·c语言·c++·tcp/ip·内核
!停17 分钟前
数据结构空间复杂度
java·c语言·算法
一路往蓝-Anbo17 分钟前
第 4 篇:策略模式 (Strategy) —— 算法的热插拔艺术
网络·驱动开发·stm32·嵌入式硬件·算法·系统架构·策略模式
定偶20 分钟前
C语言操作MYSQL
c语言·mysql·adb
molaifeng23 分钟前
从 Stdio 到 HTTP:用 Go 打造按需加载的 SQLite MCP Server
http·golang·sqlite·mcp
张海森-16882026 分钟前
防止3.3v数字电源干扰到模拟电源3.3v 需做隔离,这里怎么实现
单片机
梵刹古音29 分钟前
【C语言】 定义变量
c语言·开发语言·嵌入式
我能坚持多久32 分钟前
D19—C语言动态内存管理全解:从malloc到柔性数组
c语言·开发语言·柔性数组
代码无bug抓狂人35 分钟前
C语言之宝石组合(蓝桥杯省B)
c语言·开发语言·蓝桥杯