在处理HTML5时,是否需要在node.js中包含res.writeHead?

我已经开始学习HTML5 / CSS3 / JavaScript / Node.js,并且没有使用HTML4的经验,更不用说Web应用程序了。 所以这可能是一个愚蠢的问题,但是无论如何,我在网上寻找答案时看不到一个答案,因为我所读的所有例子,包括networking和书籍,都被认为是用HTML4编写的,现在在这里。

在Node.js中,当您向客户端发送响应头时,您将编写以下示例代码:

var http = require('http'); http.createServer(function(req, res){ res.writeHead(200, {'Content-Type':'text/html'}); res.write(some_data); res.end(); }); 

但是,在HTML5中,你不需要写一个头{'Content-Type':'text/html'} ,对吗? 那么我可以在我的节点应用程序文件中删除一行res.writeHead吗? 我知道一些浏览器仍然不支持HTML5,但是如果可行的话,我想让我的代码只适用于HTML5 / CSS3。

此外,当我完成创build一个Web应用程序并发布它时,我应该去哪个path,当应付浏览器仍然不支持HTML5 / CSS3(比如,旧的IE)。

1)即使有些内容崩溃,正看上去仍然出版

2)从安全angular度完全阻止使用浏览器的用户,并提示他们使用另一个浏览器,如果可行的话(我不知道,但我怀疑我可以访问客户端的浏览器信息并相应地处理使用JavaScript …对不对?)

我不打算让我的代码适用于所有的浏览器,因为我想把它作为一种爱好发布,并尽可能花费尽可能less的时间用HTML5 / CSS3构build一个漂亮的网站。

谢谢。

content-type:text/html 浏览器将页面识别为HTML 必需的。 content-type不是HTML5(或HTML4)规范的一部分; 它是HTTP标题的一部分; 这是告诉浏览器接收什么样的内容。

如果您提供了错误的内容types,浏览器很可能无法显示您的页面,或者可能只是将其收到的内容显示为原始文本。 内容types是HTTP协议的强制性部分。

如果你需要certificate, 这里是GitHub上的一个页面,这是一个 HTML代码,但是与非HTML内容types一起提供 。 正如你所看到的,浏览器显示为纯文本。

一些networking服务器可能会默认发送正确的MIMEtypes的HTML页面,这取决于服务器configuration(通常这是基于服务器查看文件扩展名来确定要发送的内容types,但这取决于服务器configuration)。

但是,如果服务器没有configuration为您的页面发送正确的MIMEtypes,那么是的,你需要在你的代码中自己做。 浏览器不够聪明,为自己工作。

您还需要为CSS,JS,JSON,图像文件等提供合适的content-type标题。同样,如果这些文件被作为具有可识别的文件扩展名的静态文件提供,则可能是默认的服务器configuration将发送正确的内容types,而不需要考虑。 但是,如果您正在编写一个程序来即时创build这些文件,那么您将很可能需要将内容types正确设置为程序的一部分,以便浏览器了解它们并正确显示它们。

但是,在HTML5中,你不需要写一个头{'Content-Type':'text / html'},对吗?

错误。 每个返回一些内容的HTTP响应都需要指定内容的内容types。