我正在尝试使用包装在 BufferedWriter 中的 Java 套接字发送“index.html”代码。当我打开浏览器并连接到 'localhost:port' 时,我得到:
- 文本输出 (
<head>...</head> <body>...</body>
) - firefox@linux - 文本输出 - chrome@linux
- 正确的网页视图 - konqueror@linux
- 文本输出 - firefox@windows7
如何解决此问题以获得每个浏览器的正确视图?
如何解决此问题以获得每个浏览器的正确视图?
根据您的描述,听起来您的代码严重违反了 HTTP 协议,并且每个浏览器都以不同的方式处理此违规行为。您需要做的第一件事是重温 HTTP 请参阅http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6
听起来您没有发送响应状态行,包括 Content-Length 等所需的标头,然后是消息正文(您的 index.html)
在阅读 RFC2616 并了解遵守 HTTP 协议所涉及的内容之后,您可能需要重新考虑自己做这件事,并考虑使用几个框架中的任何一个来为您处理这个问题 - Tomcat和Jetty是非常流行的基于 Java 的 HTTP 框架。 Netty也是一种选择,它是一个更轻量级的可定制框架。