Web服务器/容器
大约 1 分钟
1. Web容器
1.1 Web服务器
Web服务器使用HTTP协议传输数据,根据用户的请求,返回静态的网页,如Nginx、Apache等。当用户想到根据输入来获取动态页面的时候,Web服务就不能满足需求了。
1.1.1 Nginx和Apache的区别
Nginx采用了异步事件驱动的架构,可以同时处理大量并发连接,在高并发和处理静态文件时性能优越。
Apache采用了多进程、线程的架构,每个请求都会创建一个新的进程、线程,在处理动态内容时性能较好,但在高并发场景下可能会遇到瓶颈。
1.2 Servlet容器
Servelet是Server Applet的缩写,即服务端小程序。Servlet基于Java,可以生成HTML、处理HTTP请求、访问数据库等。Servelet是第一代Java Web技术,第二代为JSP。
Servlet并没有main函数无法独立运行,故需要承载他的Java应用,这个应用就称为Servlet容器。
1.3 web容器
为了简化部署流程,Web容器包含了Web服务器和Servlet容器,常见的Web容器有Tomcat、Jetty等
1.4 web容器处理请求过程
- client发送请求给web容器中的web服务器
- web服务器将静态资源直接返回,动态资源转发给servlet容器
- servlet收到请求,创建httpServletRequest和httpServletResponse对象, 并分配置一个线程中
- 调用servlet调用service方法,根据不同请求类型执行doGet和doPost
- 线程结束,容器将response转换为http响应,传回client