Web server and Application server

Source: Internet
Author: User
Tags connection pooling microsoft iis

The most widely used free Web server on UNIX and Linux platforms is the Web server, NCSA and Apache server, while the Windows platform nt/2000/2003 uses IIS. Some of the features that you should consider when choosing to use a Web server are: Performance, security, logging and statistics, virtual hosting, proxy servers, buffering services, and integrated applications, and several common Web servers are described below.

A common Web server: (in fact, IIS and Apache also support the functionality of the underlying application server) Microsoft IIS

Microsoft's Web server product is Internet Information Server (IIS), which is a Web server that allows information to be published on the public intranet or the Internet. IIS is one of the most popular Web server products, and many well-known sites are built on the IIS platform. IIS provides a graphical interface for administrative tools, called Internet Service Manager, that you can use to monitor configuration and control Internet services.

IIS is a Web services component that includes Web servers, FTP servers, NNTP servers, and SMTP servers for Web browsing, file transfer, news services, and mail delivery, which makes it easy to publish information on the network, including the Internet and local area networks. It provides an ISAPI (Intranet server API) as a programming interface for extending Web server functionality, and it also provides an Internet database connector that enables queries and updates to the database.

Apache

Apache originates from the NCSAHTTPD server and has been modified many times to become one of the most popular Web server software in the world. Apache is free software, so there are people who are constantly developing new features, new features, and changes to their original flaws. Apache is characterized by simple, fast, stable performance, and can be used as a proxy server. Originally it was used only for small or experimental internet networks, and later gradually expanded to a variety of UNIX systems, especially Linux support is quite perfect.

Apache is a process-based structure that consumes more system overhead than threads, and is less suited to multiprocessor environments, so when you scale an Apache Web site, you typically increase the server or expand the cluster nodes instead of adding the processor. So far, Apache is still the world's most used Web server, many of the world's most famous sites are the product of Apache, its success lies mainly in its source code open, has an open development team, supporting cross-platform applications (can run on almost all UNIX, Windows, Linux system platforms) and its portability.

Second, the Common Application server: (ASP. NET is supported by IIS, Php,python and so on seems to generally do not need a separate application server OH) Tomcat

  
Tomcat is a Java-based Web application container that is open source, running Servlets, and JSP Web application software. Tomcat server is executed according to the servlet and JSP specifications, so we can say that Tomcat server also implements the Apache-jakarta specification and is better than most commercial application servers.

Tomcat is a standard implementation of Java Servlet 2.2 and JavaServer Pages 1.1 technology and is a free software developed under the Apache license. Tomcat is a fully rewritten servlet API 2.2 and JSP 1.1 compatible servlet/jsp container. Tomcat uses some code from Jserv, especially the Apache service adapter. With the advent of the Catalina Servlet engine, the performance of the Tomcat fourth version has been improved, making it a worthwhile servlet/jsp container, so many Web servers are now using Tomcat.

Third, Comparison

Understanding Web server, first you have to understand what is the Web? Web you can simply understand that the HTML page you see is the data element of the Web, and the applications that process these data elements are called Web servers, such as IIS, Apache. Web server and client to deal with the main information it is: Session, request, response, HTML, JS, CS and so on.

Application server such as JSP, processing of non-regular web page (JSP file), he dynamically generated a Web page, the generated Web page is sent to the client (in fact, when the application server finished processing a JSP request and completed JSP generated HTML after its task is finished, The rest is the process of web processing).

Web servers are generally generic, and application servers are typically private, such as tomcat handling only Java applications and not aspx or PHP. While Apache is a Web server F (HTTP server), it later connects to the Tomcat application server to support Java.

In layman's words, Web server delivery pages allow browsers to browse, whereas application servers provide methods that client applications can invoke. Specifically, the Web server is dedicated to HTTP requests (request), but the application server uses many protocols to provide (serves) business logic to applications. The application server processes the business logic, and the Web server is primarily for the client to access through the browser for processing HTML files. Web servers are typically simpler than application servers.

Web servers (Web server)

The Web server can resolve the HTTP protocol. When the Web server receives an HTTP request (request), it returns an HTTP response (response), such as sending back an HTML page. In order to process a request, the Web server can respond (response) to a static page or picture, perform a page jump (redirect), or delegate the generation of dynamic Responses (response) (delegate) Give some other programs such as CGI scripts, JSP (JavaServer Pages) scripts, servlets,asp (Active server Pages) scripts, server-side (server-side) JavaScript, or some other server-side (server-side) technology. Regardless of their purpose, these server-side (server-side) programs typically produce an HTML response (response) to allow the browser to browse.

The Web server's proxy model (delegation models) is very simple. When a request is sent to the Web server, it simply passes the request to a program that can handle the request very well. The Web server simply provides an environment that can perform server-side (server-side) programs and return (program-generated) responses (response) without exceeding the scope of the function. Server-side (server-side) programs typically have features such as transaction processing (transaction processing), database connection (DB connectivity), and messages (messaging).

Although the Web server does not support transaction processing or database connection pooling, it can configure (employ) various policies (strategies) for fault tolerance (fault tolerance) and extensibility (scalability), such as load balancing balancing), buffered (caching). Cluster features (clustering-features) are often mistaken for only the proprietary features of the application server.

Application Server (the application server)

According to our definition, as an application server, it exposes commercial logic to client applications through various protocols, including HTTP. The Web server primarily handles sending HTML to the browser for browsing, and the application server provides access to business logic for use by client applications. The application uses this business logic just as you would call a method of an object (or a function in a procedural language).

The client of the application server (which contains a graphical user interface (GUI)) may run on a PC, a Web server, or even other application servers. The information that travels back and forth between the application server and its clients is not limited to simple display tags. Instead, this information is the program logic. It is this logic that makes the form of data and method calls rather than static HTML, so that the client can use this exposed business logic as it pleases.

In most cases, the application server exposes the business logic (to the client application) through the component (component) application interface (API), for example, based on the Java 2 Platform, Enterprise Edition The EJB (Enterprise JavaBean) component model of the application server. In addition, application servers can manage their own resources, such as looking at the door's work including security, transaction processing (transaction processing), resource pool (resource pooling), and messages (messaging). Like Web servers, application servers are configured with a variety of extensible (scalability) and fault tolerant (fault tolerance) technologies.

In Java EE, for example, the Web server mainly handles static page processing and acts as a servlet container to interpret and execute servlet/jsp, while the application server runs business logic, primarily the Java EE API, such as EJB, Jndi, and JMX APIs, and includes transactional processing, Database connectivity, the application server provides more power than a Web server in an enterprise-class application.

With this definition, IIS, Apache, and Tomcat can all belong to the Web server, and Weblogic and WebSphere belong to the application server.

Apache: In a Web server, Apache is a purely Web server that is often paired with Tomcat. It has a powerful interpretation of HTML pages, but does not explain the server-side scripting code (Jsp/servlet) within the embedded page.

Tomcat: Early Tomcat was a Jsp/servlet interpretation engine embedded in Apache Apache+tomcat equivalent to iis+asp. Later Tomcat is no longer embedded in Apache, and the Tomcat process runs independently of the Apache process. Furthermore, Tomcat is already a standalone servlet and JSP container, and the business Logic layer code and interface interaction layer code can be separated. So, someone called Tomcat a lightweight application server.

IIS: Microsoft's early IIS is a purely Web server. Later, it embeds an ASP engine that interprets VBScript and JScript server-side code, which can be used concurrently as an application server. Of course, it doesn't compare with the Java EE Application Server at all, but, functionally speaking, it can be called the application server in principle. To be exact, it is a Web server with a bit of application server functionality.

Top: Apache is a purely Web server, and Tomcat and IIS have the ability to interpret server-side code as a lightweight application server or a Web server with server functionality. Weblogic, WebSphere is undoubtedly the absolute application server because it can provide the powerful Java EE function. For Tomcat in the middle, it can be used with a pure Web server Apache, or as an application server to be deployed with the application server:

1. Tomcat and Application Server

So far, Tomcat has been considered the executor of the Servlet/jsp API, as well as the so-called servlet container. However, Tomcat does not only do this, it also provides the implementation mechanism for JNDI and JMX APIs. However, Tomcat is still not an application server because it does not provide support for most of the Java EE APIs.

Interestingly, many application servers today often use Tomcat as a container for their servlet and JSP APIs. Because Tomcat allows developers to embed tomcat into their applications simply by adding a line of acknowledgements. Unfortunately, many commercial application servers do not comply with this rule.

For developers, choosing Tomcat is a great solution if you're looking to build Java Web applications using servlet, JSP, Jndi, and JMX Technologies, but to find support for other EE APIs, Finding an application server or using Tomcat as an application server is a good solution, and the third Way is to find a separate Java EE API implementation and then combine them with Tomcat. Although consolidation can bring about problems, this approach is most effective.

2. Tomcat and Web server

Tomcat is a container that provides support for Servlets and JSPs to run. Servlets and JSPs can generate dynamic Web content based on real-time needs. For Web servers, Apache only supports static web pages, and it is powerless to support dynamic Web pages, while Tomcat can serve dynamic Web pages and support static Web pages. Although it is not as fast as the usual Web server, it is not as rich as the Web server, but Tomcat is gradually expanding to support static content. Most Web servers are written in the underlying language, such as C, and take advantage of the features of the corresponding platform, so Tomcat execution speed written in plain Java is unlikely to be comparable to them.

In general, the large site is a combination of Tomcat and Apache, Apache is responsible for accepting all HTTP requests from the client, and then forwarding Servlets and JSP requests to Tomcat for processing. After Tomcat finishes processing, the response is passed back to Apache, and the final Apache returns the response to the client.

and to improve performance, a single Apache can connect multiple tomcat for load balancing.

Iv. examples

Scenario 1: A Web server without an application server

In such a scenario, a Web server independently provides the functionality of the online store. The Web server obtains your request and then sends it to the server-side (server-side) program that can process the request. This program looks for pricing information from a database or text file (flat file refers to non-binary files that have no special format, such as properties and XML files, etc.). Once found, the server-side (server-side) program represents the resulting information in the form of (formulate) HTML, and the last Web server sends it to your Web browser.

In short, the Web server simply handles HTTP requests (request) via the response (response) HTML page.

Scenario 2: A Web server with an application server

Scenario 2 and Scenario 1 are the same as the Web server or the response (response) generation Delegate (delegates) to the script. However, you can put the business logic of the lookup pricing on the application server. Because of this change, this script simply invokes the application server's lookup service (lookup services) instead of knowing how to find the data and then represent (formulate) a response (response). When the script generates an HTML response (response), it can use the return result of the service.

In this scenario, the application server provides (serves) the business logic for querying the pricing information for the product. This feature (functionality) does not indicate details about how the display and the client can use this information, whereas the client and application servers simply send data back and forth. When a client invokes the lookup service of an application server, the service simply finds and returns results to the client.

The pricing (lookup) logic is more reusable in the application by separating it from the code that generates (response-generating) HTML. Other clients, such as the cash register, can also call the same service to checkout the customer as a clerk. Instead, the pricing lookup service in Scenario 1 is not reusable because the information is embedded in the HTML page.

All in all, in the model of Scenario 2, the Web server handles HTTP requests (request) by responding to HTML pages, while the application server provides application logic by processing pricing and validity (availability) requests (request).

V. Warning

Now, XML Web Services has confused the boundaries of application servers and WEB servers. By transmitting an XML payload (payload) to the server, the Web server can now handle data and response (response) as much as the previous application server.

In addition, most application servers now contain Web servers, which means that Web servers can be treated as a subset of application servers (subset). Although the application server contains the functionality of the Web server, developers rarely deploy the application server (deploy) to this function (capacity) (Translator Note: This function refers to both the functionality of the application server and the functionality of the Web server). Conversely, if required, they will typically have a Web server configured independently, and the application server is one after the other. This separation of functionality helps improve performance (simple Web requests (request) Do not affect application servers), separate configurations (dedicated Web servers, clusters (clustering), and so on), and give the best product selection leeway.

Reference article:
51879450

Web server and Application server

Related Article

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.