Foreword
这周体会到你以前学的东西真的是不知道在什么时候就要用到,当时为什么不好好学计算机网络呢。这几周有点儿怀念小老头儿,教了我计算机网络、Linux、MATLAB,最近用到了不少,是个可爱的老头。
写这段上的时候是周四晚上,快到周五了,放了清明假之后的一周过得好快,周二开会之后意识到我得在芯片上搭个服务器,相比之下上周写html简单的都不是个事儿。几天下来虽然没能实质性地做出点东西,但还是学到了不少,补了很多知识盲区。但整个知识架构好像还没那么完善,没办法支撑我条理清晰逻辑缜密地写一篇博客,所以下次吧。打算这周划个水,写个虚拟服务器的使用吧。(没想到这篇文章到周五晚上才写完)
特别感谢「图图Tutu」STM32移植lwip之建立web服务器!
浏览器请求与服务器应答
首先了解一下客户端(也就是浏览器)和服务器之间的关系,网页是如何被访问的。
- 服务器监听客户端连接
- 打开浏览器输入IP地址或域名后,浏览器向服务器发出连接请求
- 服务器收到请求后,解析请求,根据请求找到对应的网页
- 服务器将对应的网页发送给浏览器
- 浏览器显示网页内容
虚拟服务器
使用的是山外多功能调试助手,选择的是TCP服务器这一项。
-
设置IP地址和端口号
山外调试助手会自动提取出你的本机IP,如果要查IP地址,可以cmd里敲入ipconfig。
端口可以默认配置80,也可以配其他的。
打开监听。
-
浏览器向服务器发出连接请求
在浏览器里输入你的IP地址:如果端口配置的是80,只需要输入IP地址就可以;如果配置了其他端口,例如6000,就需要输入XXX.XXX.XXX.XXX:6000
此时在调试助手里可以看到服务器收到的请求。
最重要的就是第一行"GET / HTTP/1.1",这是服务器需要解析的内容。因为现在是默认的主页index, 所以GET和HTTP中间的空的,如果是别的网页,发送过来的请求会是"GET / XXXX.htm HTTP/1.1",这样服务器就会根据XXXX.htm去查找相应的网页数据
-
拿一个简单的html代码复制到发送区
<html> <head> <meta http-equiv="Content-type" content="text/html;charset=UTF-8"> <title>Mindmotion MM32 UART to Ethernet Gateway</title> </head> <body> <h1>Uart 2 Ethernet Gateway</h1> <img src="logo.png" height=50px alt="MindMotion"> </body> </html>
将这段html代码发送给客户端
浏览器上可以看到网页,因为图片没有上传所有加载不出来。
在消息区可以看到浏览器对服务器提出了logo.png的请求
Conclusion
昨天睡觉前在小红书上看到我喜欢的一个番薯推荐了一本书,“世纪智者”罗素的《幸福之路》,里面一句话很触动我,作为这周的结尾吧。
一个人的兴趣越多,乐趣便越多,受制于命运的情况就越少,因为他若失去一样,还可以找到另一样替代。