c语言实现http服务器和浏览器进行数据交换

上一篇已经实现了http服务器,通过浏览器可以访问html页面。

这一篇开始通过浏览器和服务器进行通信,主要用post请求。

post请求格式如下

POST /index.html HTTP/1.1
Accept: text/html, application/xhtml+xml, image/jxr, */*
Referer: http://192.168.0.105/index.html
Accept-Language: zh-CN
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Host: 192.168.0.105
Content-Length: 12
Connection: Keep-Alive
Cache-Control: no-cache

username=hes

要想服务器处理post请求的数据,还得解析这个数据包,可以发现最后一行有我们想要的数据,

其实我们就是发送了一个hes数据给服务器。

可以看到整个数据包里面只有一个‘=’号,我们只需要截取=号后面的数据,就是我们想要的数据了

如果数据有很多个,要以此类推。

---------------------------------------------------------------------------------------------------------------------------------

上面知道post数据格式,下面要知道如何用浏览器发送post请求。

浏览器发送post请求可以通过form表单提交。

<form action="" method="post">
<input type="text" name="username"></input>
<input type="submit" value="提交">
</form>

input 标签有很多种类型,可以去看看使用需要的类型

基本只要理解这两块就可以实现浏览器发送数据给http服务器了

下面是演示结果:

浏览器登录:http://192.168.0.105/index.html

显示效果,这个页面其实就是保存在数组里面的,不是文件。因为不支持中文,也没找原因,先用英文试一下。

服务器响应

服务器可以解析到对应的数据,那个你的硬件设备就可以做出相应的处理啦。

服务器写的不是很完善,因为是属于demo实验用的,写的比较简单,花的时间也比较少,

一天时间去研究post相关的知识,和编写服务器处理代码。

源码:https://download.csdn.net/download/hes_c/10691752

猜你喜欢

转载自blog.csdn.net/HES_C/article/details/82871028