Trusted answers to developer questions
Trusted Answers to Developer Questions

Related Tags

web
webserver
container
servlet
communitycreator

What is the difference between a web server and a web container?

Tarun Telang

Grokking Modern System Design Interview for Engineers & Managers

Ace your System Design Interview and take your career to the next level. Learn to handle the design of applications like Netflix, Quora, Facebook, Uber, and many more in a 45-min interview. Learn the RESHADED framework for architecting web-scale applications by determining requirements, constraints, and assumptions before diving into a step-by-step design process.

There are two types of software servers: web servers and web containers. This shot discusses the differences between the two types.

Web Server Architecture

Web Server

  • A web server can be characterized as software that receives HTTP requests, processes them, and sends back responses.

  • A web serveralso known as HTTP Server is a software program that, as its name implies, serves websites to users. It does this by responding to HTTP requests from the user’s computer. The response includes HTML content that is sent over the internet and displayed in the user’s browser.

  • Examples of web servers include Apache, Nginx, Microsoft Internet Information Server (IIS).

  • Web servers typically run on dedicated machines.

  • One of their most important features is that they act as a gateway between the internet and private applications. They also allow you to secure your application by protecting it with passwords or SSL certificates.

  • Traditional web servers only allow one transaction at once.

  • Traditional web servers always regenerate the data from scratch each time it’s accessed or updated. This can be time-consuming.

  • Traditional web servers provide a bare minimum ability to accept HTTP connections from the clients and forward those requests as HTTP messages to other resources identified within those messages as targets.

Web Container

  • A web container, on the other hand, is an application that includes a web server as well as additional components like a servlet container, Enterprise JavaBean (EJB) container, and so forth.

  • Examples of web containers include Tomcat, Glassfish, JBoss Application Server, or Wildfly.

  • The benefit of using a web container is that there are fewer applications to maintain and configure. For instance, if your application requires an EJB, you can use the JBoss Application Server instead of Tomcat. If you are using the Spring framework, you can choose between SpringSource tc Server or JBoss Application Server to host your Spring apps.

  • Web containers typically run on dedicated machines.

  • Another benefit is that the web container has many different components included in one package. This may improve your application’s security, stability, and performance since everything is configured out of the box.

  • Web containers typically support more than one transaction running at the same time.

  • Web containers are designed to generate cacheable content on the fly, so it never has to be regenerated when it’s requested again.

  • Web containers also provide several flexible, pluggable interfaces for caching and persistence.

RELATED TAGS

web
webserver
container
servlet
communitycreator

Grokking Modern System Design Interview for Engineers & Managers

Ace your System Design Interview and take your career to the next level. Learn to handle the design of applications like Netflix, Quora, Facebook, Uber, and many more in a 45-min interview. Learn the RESHADED framework for architecting web-scale applications by determining requirements, constraints, and assumptions before diving into a step-by-step design process.

Keep Exploring