1. Web框架与服务器区别
web服务器:典型Web服务器Apache、Nginx、Tomcat,作用是接受客户端(浏览器)发送的请求,做相应处理后返回给客户端。简单来说就是与客户端通信用的。
它有几个作用:
缓存机制:将一些经常被访问的页面缓存起来,提高响应速度;
安全:防止黑客的攻击,比如SYN Flood攻击;
并发处理:如何响应不同客户端同时发起的请求;
日志:记录访问日志,方便做一些分析;
web应用服务器:应用程序可以用各种语言编写(Java、PHP、Python等),这个应用程序会从上面的应用服务器(如Apache)接受客户端请求,处理完成后,再返回给web服务器。
web框架:如Django包含各种方便调用的库,如连接数据库,渲染页面等(MVC)。
web服务器网关接口:对齐web框架和web服务器标准的中间件,如Python的是WSGI(Web Server Gateway Interface),Java的是(Servlet API)解耦web服务器和web框架。
参考文章 <https://blog.csdn.net/qq_37860930/article/details/86518730
2.Tomcat和Apache区别
Apache支持静态页,tomcat支持动态页,比如servlet。虽然两者都可以作为web服务器运行,但Apache是web服务器,而Tomcat偏向于应用服务器,主要解析JSP/Servlet侧重于Servlet引擎。tomcat虽然也支持静态页,但效率没有Apache高。可以使用Apache+Tomcat,各自负责擅长领域。
参考文章:https://blog.csdn.net/sinat_29048381/article/details/88310107
参考文章:https://cloud.tencent.com/developer/article/1343865
3.Apache和Nginx
两者最核心区别在于apcha是同步多进程模型,一个连接对应一个进程,Nginx是异步的多连接对应一个进程。一般来说需要性能的web服务,需要nginx。如不需要性能而是更注重稳定则选用apache。
一般方案是前端nginx抗并发,后端apache集群,配合会更好。