【发布时间】:2019-02-17 16:48:46
【问题描述】:
我有点老派,我看到的第一个网络编程语言是 PHP,每个人都将它与 Apache 一起使用。那时,我还知道 ASP,它与 Microsoft IIS 一起使用,后来也知道了运行在 IIS 上的 ASP.NET。
时间过去了,我去了 ERP 世界,当我回来时(几个月前),我知道 Golang 和 Node.js,令我惊讶的是,它们拥有自己的 Web 服务器。
我可以看到内置 Web 服务器的许多优点,但是,每个应用程序都需要重写其 Web 服务器规则(我最近在需要使用 Express.js 设置 HTTPS 服务器时遇到了这个问题)。
在努力理解 HTTP 协议的所有细微差别之后,我问自己:如果我做错了?如果我在开发服务器中创建的所有许可规则都用于生产?也许这是一个无用的担忧。但也许我正在创建一个脆弱的服务器,可能会被天真的黑客利用。
使用像 Apache 这样的服务器更难滥用安全规则,因为开发和生产环境的设置是明确的。如果规则是硬编码的(就像在 Node 或 Go 中一样),不知情的开发人员可以在生产中使用开发规则,而在事情发生之前没有人会看到它。
有什么想法吗?
【问题讨论】:
-
你在比较两个不同的东西。如果您想使用像 nginx 或 apache 这样的全功能 Web 服务器,那么请继续。许多语言都有实现 http 协议的库,因为它很有用,而不是因为您应该始终使用它们来排除其他一切。
标签: node.js apache go webserver