Differences and linkages between Web servers, Web containers, application servers, and reverse proxy servers

Source: Internet
Author: User

In web development, you often hear Web servers (Web server), Web containers (Web Container), application servers (application server), reverse proxy servers (Reverse proxies) Server) can be confusing and difficult to understand nouns. In the interview, this is also often asked. This paper introduces the understanding, difference and connection of the four people.

One, Web server (Web servers)

1. Web ServerOr HTTP Server , the basic function of a Web server is to provide a Web information browsing service, accept requests from clients, and respond, process HTTP requests, or forward requests to other servers. It only supports HTTP protocols, HTML document formats, and URLs. Mates with the client's Web browser. Because HTTP is the primary protocol supported by the Web server, the HTTP server and Web server are equal in the common case.

2. Common Web Server

Apache, Jetty, IIS, JBoss

3. Is 2017 of the most widely used Web servers in the World leaderboard (data from: Similartech)

Ii. Web container (Web Container)

1. As Web servers evolve toward enterprise-class applications, rapid business changes Force Web developers to face new challenges: How to quickly write robust, reliable, business-friendly programs and deploy smoothly? An effective way to solve this challenge is to create a WEB application development framework (including a running environment, such as an explanation of execution Jsp,web API), which solves robustness, reliability issues, and provides a fast development interface. In other words, developers only need to focus on the implementation of the business itself, and the framework can be customized and extended if there is a higher demand. Another name for this framework is the Web application container. A Web server that meets certain criteria is a web container that is part of a Web server or application and server.

2. Common Web Container

Tomcat, IIS, Jetty

The web container itself has the functionality of being a Web server, and in fact the server that typically implements the Web container function is a Web server. For example, Tomcat, IIS, Jetty.

Third, Application server (Application server)

1. Most application serve use Web server and Web container as an integral part of it, which means that the application server can do what any Web server can do. In addition, the application server has components and features to support application-level services such as connection pooling, object pooling, transactional support, messaging services, and so on.

As the Web server matures, it can handle higher loads, more concurrency, and better features, and the application server begins to add more and more HTTP-based communication capabilities. All of this leads to a narrower line between the Web server and the application server.

Currently, the line between the application server and the Web server has become blurred. But the two terms were also distinguished as an emphasis on use.

When someone says "Web server", you usually think of it as an HTTP-centric, Web-ui-guided application. When someone says "application server," You might think of "high load, enterprise features, transactions and queues, multichannel communication (HTTP and more protocols)." But it is basically the same product that provides these requirements.

You can see that the Web application server includes a Web container, with built-in support for enterprise application transactions, security, integration, communication, high availability and so on, greatly reducing the amount of duplication of development, ensuring the rapid development and deployment of business systems, and it is a Web server itself . Web application servers can choose to use a heavyweight product such as WebLogic and WebSphere, or use a web Containner like Tomcat, Jetty, and a third-party framework (spring,hibernate, etc.) To build your own application Server;. NET core platform, you can choose IIS, Apache,nginx and ASP.

2. Common Application Serve

WebLogic, WebSphere, Jetty

3. Is the market share of 2017 different application serve (data from: PLUMBR)

IV. Reverse proxy servers (Reverse proxy server)

1. The reverse proxy is one of the proxy servers. It obtains resources from back-end servers, such as Web servers, based on client requests, and then returns those resources to the client. Unlike the forward proxy, the forward proxy acts as a medium to return the resources obtained on the Internet to the associated clients, while the reverse proxy is used as a proxy on the server side (such as the Web server) instead of the client. The client can access many different resources through the forward proxy, and the reverse proxy is where many clients access resources on different back-end servers without needing to know the existence of these back-end servers, and to assume that all resources come from this reverse proxy server.

2. The main role of the reverse proxy is:

    • Encryption and SSL acceleration
    • Load Balancing
    • Caching Static Content
    • Compression
    • Slow upload
    • Security firewall
    • External network release
    • Breaking the Internet blockade
    • Troubleshoot cross-domain issues

3. Common Reverse proxy Server

Ngnix,iis,apache

Summarize:

From a conceptual perspective:

(1) The Web server is the program to provide WWW service;

(2) The Web container is the framework provided to the developer;

(3) The Web application server content is much richer, can be used by the vendors often follow certain industry standards and custom extension functions, but also the use of open source components lightweight assembly and build;

(4) The reverse proxy Server has outstanding performance in enterprise application, and it has the advantages of solving centralized security, load balancing and so on.

Now that the boundaries of these four concepts are blurred , look at this table to find out:

There are two ideas about whether Kerstrel is a Web container:

1. Since Kerstrel does not provide a framework for writing applications, it is not a container, and ASP. NET core is a container because it provides a framework for developing applications and provides a WEB application (mvc,web API) Runtime environment.

2. Kerstrel provides a running environment.

Reference:

Https://www.cnblogs.com/vipyoumay/archive/2017/08/31/7455431.html

Http://www.cnblogs.com/vipyoumay/p/5853694.html

Differences and linkages between Web servers, Web containers, application servers, and reverse proxy servers

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.