LWIP网页服务器火狐,遨游浏览不正常

[复制链接]
4074|16
 楼主| logokfu 发表于 2012-3-22 17:10 | 显示全部楼层 |阅读模式
本帖最后由 **kfu 于 2012-3-22 17:19 编辑

LWIP做的网页服务器,IE可以正常访问,但是火狐和遨游浏览器访问返回的却是网页的源码。

网页属性变成了text/plain



我网页代码写的不规范?我感觉我的代码写的没问题啊,我复制21IC的网页源码也不行
啊。还是程序哪里出了问题?


你们的有这种情况吗。大家都是用什么浏览器测试STM32的http啊。我很郁闷啊。
aozima 发表于 2012-3-22 17:22 | 显示全部楼层
发送内容前先发送 head
 楼主| logokfu 发表于 2012-3-22 17:34 | 显示全部楼层
本帖最后由 **kfu 于 2012-3-22 17:36 编辑

2# aozima

我的网页是这样写的,有问题吗,你看看。


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ST MCU</title>
<meta http-equiv="MSThemeCompatible" content="Yes" >
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
</head>
<body>
<div>
123
</div>
</body>
</html>
 楼主| logokfu 发表于 2012-3-22 22:25 | 显示全部楼层
本帖最后由 **kfu 于 2012-3-22 22:34 编辑

来人:'(

我判断不是我的网页源码问题。
为什么这么说呢,情况是这样子的,我之前把我的工程复制了两份,结果改来该改去,现在A工程是必须用80端口,不然换了其他端口以后ie浏览是正常的,火狐和遨游就是显示的网页源码。而B工程呢,不管用哪个端口,包括80端口,火狐和遨游都是显示的网页源码。 给人的感觉就是服务器返回的http头不正确似的。正常情况下应该返回的是
text/html可是这里火狐和遨游怎么总是判断是text/plain,结果网页就被误显示为源码了。
我用firebug看了下报头发现人家百度网站的是正确的有正常回应
20120322222322.jpg
20120322222430.jpg

但是我的这个服务器怎么没有响应呢,没有响应但是却返回了网页的源码过来。


我 在这里想问问大家,你们除了在IE上测试过在火狐上测试是什么情况呢。

我总觉得是我的http程序哪里出了问题(除了网页源码,网页源码因该没问题),苦恼。
网络转接 发表于 2012-3-23 13:42 | 显示全部楼层
"<meta http-equiv='Content-Type' content='text/html; charset=gbk'>"
 楼主| logokfu 发表于 2012-3-23 14:07 | 显示全部楼层
本帖最后由 **kfu 于 2012-3-23 14:20 编辑

我写的网页的兼容性肯定没有问题,为什么这么说呢,因为我用我的电脑搭建apache本地服务器,我用火狐和遨游都是可以正常浏览的。另外我自己有个远程服务器,我ftp把网页传上去也是可以正常访问的。另外我分别用了网页源码和网页数组(将html转换为数组)两种方式。得到的结果都一样的。我得到的结论是服务器那端的问题,客户端请求数据,服务器那端返回的数据出现了差错,导致原本正常的网页被浏览器解析错了类型(text/html被错误解析成text/plain)。我用firebug看了下http报头,发现居然只有客户端的请求头,没有返回头。硬件应该也没问题,觉得还是lwip的问题(不清楚是lwip的bug还是,还是我自身代码问题)。还得花些时间熟悉下lwip。
 楼主| logokfu 发表于 2012-3-23 14:10 | 显示全部楼层
根本不是网页编码(gbk或者utf-8)的问题,这个网页编码在W3都是可以验证通过的。实际在电脑上搭建的服务器都是正常的。
 楼主| logokfu 发表于 2012-3-23 14:16 | 显示全部楼层
另外我在用ie的时候,我把端口换成84端口,或者其他端口,会出现ie直接访问不了,ie提示说是"不能识别的协议"。因为之前工程我复制过几份,后来改来改去就出现了有些工程的非80端口不能识别的协议的问题。
网络转接 发表于 2012-3-23 14:53 | 显示全部楼层
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
把这个去掉 直接换成<html >试试
 楼主| logokfu 发表于 2012-3-23 15:33 | 显示全部楼层
在你说这个之前我已经都试过了,还是一个样儿,难不成原本标准的html到了这里还得裁剪下?可是裁剪了也不行。我觉得还是没有找到问题的根本。就拿家用路由器来说吧,路由器本身也是带有一个网页管理界面的。看了看人家的网页源码也是带有W3的头的。也是完整的源码。人家的就可以兼容非ie浏览器。我觉得这里不应该是网页源码的问题。而是服务器那边环境的问题。导致返回过来的数据报出了问题,这个问题比较复杂,这里没有找到事物的根本。

另外ie毕竟是主流浏览器,浏览器市场占有率最大。兼容性自然好点。很多不标准的网页也能马马虎虎解析出来,火狐就不同了,比较挑剔,严格解析各种网页,一般作为网页开发人员调试的工具。


这个东西先搁这吧,lwip毕竟我还没了解透测,回头再说吧。到时候说不定就有结果了。呵呵。
 楼主| logokfu 发表于 2012-3-23 15:39 | 显示全部楼层
我问这个东西的目的,第一我是想知道大家的服务器在火狐下有这种情况吗。第二,如果没有就算了,如果有请问你是怎么解决的。
aozima 发表于 2012-3-23 15:45 | 显示全部楼层
head是在发送html源码之前由web server发送的。
相信哥咯 发表于 2012-3-23 16:25 | 显示全部楼层
我想知道这个怎么搞的LWIP做的网页服务器,
我会建立个TCP服务器,我直接用tcp发送电脑,用浏览器看都可以,http头不发也可以,
网页服务器怎么实现的啊.
 楼主| logokfu 发表于 2012-3-23 16:52 | 显示全部楼层
我想知道这个怎么搞的LWIP做的网页服务器,
我会建立个TCP服务器,我直接用tcp发送电脑,用浏览器看都可以,http头不发也可以,
网页服务器怎么实现的啊. ...
相信哥咯 发表于 2012-3-23 16:25


LWIP其实就是个精简版的TCP/IP。专门用于嵌入式系统。比如路由器一般都会有个网页管理界面,里面的那个网页可以是基于asp,perl或者其他语言的,等等或者内容比较复杂,一时半会儿我也说不清。
bingye1086 发表于 2012-5-2 14:27 | 显示全部楼层
正在学习LWIP下的HTTP,敢问图片中的软件是什么?

4# **kfu
bingye1086 发表于 2012-5-2 15:32 | 显示全部楼层
晕死,firebug,看到了
4# **kfu
 楼主| logokfu 发表于 2012-5-2 16:14 | 显示全部楼层
正在学习LWIP下的HTTP,敢问图片中的软件是什么?

4# **kfu
bingye1086 发表于 2012-5-2 14:27


火狐浏览器,装个插件firebug就好了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

76

主题

2646

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部