什么会导致http服务器使用不同版本的http协议响应不同的客户端?

时间:2012-07-11 21:49:54

标签: http

我有一个奇怪的问题。我正在向我本地网络上的调制解调器中嵌入的Web服务器发送HTTP GET请求(嵌入式Web服务器是调制解调器“控制面板”的接口)。当我的桌面计算机或手机发送请求时,服务器会响应HTTP / 1.0响应。但是,当我从笔记本电脑发送请求时,服务器以HTTP / 0.9响应。问题是嵌入式Web服务器的HTTP / 0.9实现是错误的,因此响应头被搞砸了,因此客户端无法理解响应(头部是响应主体的一部分)。无论用于发送请求的客户端如何,都会发生此行为。所以,我的问题是:什么会导致嵌入式Web服务器使用不同的HTTP版本进行响应?

以下是详情:

  • 调制解调器:HughesNet HN7000S
  • 嵌入式网络服务器:WindWeb / 1.0
  • 桌面操作系统:Vista 64 Home Premium / SP2
  • 手机操作系统:Android 2.3.4
  • 笔记本电脑操作系统:Win7 Home Premium / SP1
  • 桌面客户端:FireFox v13.0.1,IE8和perl命令行客户端(使用标准LWP和HTTP perl模块实现
  • 手机客户端:FireFox v14.0和股票Android浏览器
  • 笔记本电脑客户端:Firefox v13.0.1,IE9和与桌面相同的perl命令行客户端
  • 桌面连接到调制解调器:以太网直接连接到调制解调器,以太网直通无线路由器 电话连接到调制解调器:通过无线
  • 笔记本电脑连接到调制解调器:以太网直接连接调制解调器,以太网直通无线路由器,无线

[注意:我家里没有收到手机信号,因此无法通过数据连接尝试手机]

我已经尝试强制桌面和笔记本电脑的IP地址相同(显然,在此过程中断开一个或另一个),以防嵌入式Web服务器以某种方式键入传入请求的IP地址以确定要响应的HTTP版本。

当然,我绝对没有HughesNet的技术支持。我曾尝试在网上查找有关WindWeb嵌入式网络服务器的文档,但没有找到任何内容。

笔记本电脑没有任何问题从任何其他网络服务器获得“合理”的回复......所以我倾向于认为问题出在调制解调器中的嵌入式网络服务器上。但是,由于嵌入式网络服务器响应错误的HTTP / 0.9响应似乎只发生在我的笔记本电脑发送请求时,无论客户端发出请求是从笔记本电脑发出的,我都要认为问题有关在笔记本电脑上有一些网络设置,但我无法想象什么设置会影响嵌入式服务器响应的HTTP版本。

任何人都可以帮忙吗?无论是直接解决方案还是其他我应该检查的东西?是否有关于3台机器,它们的连接或其他任何有助于诊断问题的信息?

1 个答案:

答案 0 :(得分:0)

大多数客户端都会发送一个客户端字符串来标识自己,例如Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.16) Gecko/20120602 Iceweasel/3.5.16 (like Firefox/3.5.16)。一些损坏的服务器使用它来调整内容。例如,我的uni文件服务器不允许我用wget下载一些css文件(这很有趣),除非我用-U ""调用wget来发送空客户端字符串。