gpt4 book ai didi

javascript - 当我处理 HTML5 时,我是否必须在 node.js 中包含 res.writeHead?

转载 作者:技术小花猫 更新时间:2023-10-29 12:02:55 24 4
gpt4 key购买 nike

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

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

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

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

此外,当我完成创建并发布 Web 应用程序时,在应对仍然不支持 HTML5/CSS3 的浏览器(例如,旧版 IE)时,我应该走哪条路。

1)即使有些内容崩溃,看起来很糟糕,仍然发布它

2) 出于安全的考虑,完全屏蔽使用该浏览器的用户,并提示他们使用其他浏览器,如果可行(我不知道,但我怀疑我可以访问客户端的浏览器信息并处理相应地使用 JavaScript ......对吧?)

我不想费心让我的代码适合所有浏览器,因为我想把它作为一种爱好发布,并通过花费尽可能少的时间使用 HTML5/CSS3 构建一个好看的网站。

谢谢。

最佳答案

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

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

如果您需要证明,here's a page on GitHub, which is HTML code, but which is served with a non-HTML content-type .如您所见,浏览器将其显示为纯文本。

某些 Web 服务器可能默认为 HTML 页面发送正确的 MIME 类型,这取决于服务器配置(通常这是基于服务器查看文件扩展名来确定要发送的内容类型,但这取决于服务器配置)。

但如果服务器未配置为为您的页面发送正确的 MIME 类型,那么是的,您确实需要在您的代码中自己完成。浏览器不够聪明,无法自行解决。

您还需要为您的 CSS、JS、JSON、图像文件等提供适当的 content-type header 。同样,如果这些文件作为具有公认文件扩展名的静态文件提供,那么很可能默认服务器配置会发送正确的内容类型,而您无需考虑它。但是,如果您正在编写一个动态创建这些文件的程序,那么您很可能需要在程序中正确设置内容类型,以便浏览器能够理解并正确显示它们。

关于javascript - 当我处理 HTML5 时,我是否必须在 node.js 中包含 res.writeHead?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17003590/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com