2

我正在尝试使用包装在 BufferedWriter 中的 Java 套接字发送“index.html”代码。当我打开浏览器并连接到 'localhost:port' 时,我得到:

  • 文本输出 ( <head>...</head> <body>...</body>) - firefox@linux
  • 文本输出 - chrome@linux
  • 正确的网页视图 - konqueror@linux
  • 文本输出 - firefox@windows7

如何解决此问题以获得每个浏览器的正确视图?

4

1 回答 1

3

如何解决此问题以获得每个浏览器的正确视图?

根据您的描述,听起来您的代码严重违反了 HTTP 协议,并且每个浏览器都以不同的方式处理此违规行为。您需要做的第一件事是重温 HTTP 请参阅http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6

听起来您没有发送响应状态行,包括 Content-Length 等所需的标头,然后是消息正文(您的 index.html)

在阅读 RFC2616 并了解遵守 HTTP 协议所涉及的内容之后,您可能需要重新考虑自己做这件事,并考虑使用几个框架中的任何一个来为您处理这个问题 - TomcatJetty是非常流行的基于 Java 的 HTTP 框架。 Netty也是一种选择,它是一个更轻量级的可定制框架。

于 2012-11-22T17:55:24.293 回答