web服务器

https://www.zhihu.com/question/20262642

Nginx 和 Apache无非是帮你做了网络层和HTTP协议层的解析和处理而已。现在几乎任何的语言你都可以脱离Apache/Nginx,无非自己写socket监听,处理HTTP的协议头和协议体,然后构建HTML。但是出于性能的考虑,没人这么干而已。

没玩过Node.JS,无非就是它自己内置的http server足够高效,但是多数还是需要nginx做负载均衡,像Python写的Tornado,单独性能也很好,但是有了nginx反向代理,性能要更强悍。

最早的Web处理是CGI,你可以把CGI想成即跑脚本也是容器的一体(其实是很多原生的开发语言编译连接的执行程序,通过http请求,然后给你返回符合HTML标记法的字符串),后来CGI分成了容器和开发执行脚本,比如nginx\apache\tomcat\jboss等就是容器,容器把网络连接,路径寻找、会话管理等很多原来CGI中共有的部分抽象出来了;然后php\servlet\asp等就是开发执行脚本,他们主要针对单个会话的资源请求响应。现在的Node.js如果你用来开发WEB的话,其实就是CGI,Node.js即是容器也是执行脚本,既管理会话连接路径资源,又管理每个会话资源请求响应。既然是CGI,那么就比容器+脚本的高级模式更加灵活。

作者:顾笑群
链接:https://www.zhihu.com/question/20262642/answer/27487340
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 
tomcat 与 nginx,apache的区别是什么?
https://www.zhihu.com/question/32212996
posted @ 2016-05-06 17:31  darr  阅读(147)  评论(0编辑  收藏  举报