The term web server can refer to hardware or software, or both of them working together.
- On the hardware side, a web server is a computer that stores web server software and a website's component files. (for example, HTML documents, images, CSS stylesheets, and JavaScript files) A web server connects to the Internet and supports physical data interchange with other devices connected to the web.
- On the software side, a web server includes several parts that control how web users access hosted files. At a minimum, this is an HTTP server. An HTTP server is software that understands URLs (web addresses) and HTTP (the protocol your browser uses to view webpages). An HTTP server can be accessed through the domain names of the websites it stores, and it delivers the content of these hosted websites to the end user's device.
At the most basic level, whenever a browser needs a file that is hosted on a web server, the browser requests the file via HTTP. When the request reaches the correct (hardware) web server, the (software) HTTP server accepts the request, finds the requested document, and sends it back to the browser, also through HTTP. (If the server doesn't find the requested document, it returns a 404 response instead.)
To publish a website, you need either a static or a dynamic web server.
A static web server, or stack, consists of a computer (hardware) with an HTTP server (software). We call it "static" because the server sends its hosted files as-is to your browser.
A dynamic web server consists of a static web server plus extra software, most commonly an application server and a database. We call it "dynamic" because the application server updates the hosted files before sending content to your browser via the HTTP server.
For example, to produce the final webpages you see in the browser, the application server might fill an HTML template with content from a database.
Sites like MDN or Wikipedia have thousands of webpages. Typically, these kinds of sites are composed of only a few HTML templates and a giant database, rather than thousands of static HTML documents. This setup makes it easier to maintain and deliver the content.
A web server is server software, or a system of one or more computers dedicated to running this software, that can satisfy client HTTP requests on the public World Wide Web or also on private LANs and WANs.[1]
A web server can manage client HTTP requests for Web Resources related to one or more of its configured / served websites.
A web server usually receives incoming network HTTP requests and sends outgoing HTTP responses (one for each processed request), along with web contents, through transparent and / or encrypted TCP/IP connections (See also: HTTPS) which are started by client user agents before sending their HTTP request(s). Web servers may soon be able to handle other types of transport protocols for HTTP requests.
The purpose of a web server is to store and deliver web contents and / or web resources. Examples of web contents may be HTML files, XHTML files, image files, style sheets, scripts, other types of generic files that may be downloaded by clients, etc.
A user agent, commonly a web browser or web crawler, initiates communication by making a request for a specific resource using HTTP and the server responds with the content of that resource or an error message if unable to do so. The resource is typically a real file on the server's secondary storage, but this is not necessarily the case and depends on how the web server and the website are implemented.
While the major function is to serve content, a full implementation of HTTP also includes ways of receiving content from clients. This feature is used for submitting web forms, including uploading of files.
n computing, a server is a piece of computer hardware or software (computer program) that provides functionality for other programs or devices, called "clients".
This architecture is called the client–server model. Servers can provide various functionalities, often called "services", such as sharing data or resources among multiple clients, or performing computation for a client. A single server can serve multiple clients, and a single client can use multiple servers. A client process may run on the same device or may connect over a network to a server on a different device.[1] Typical servers are database servers, file servers, mail servers, print servers, web servers, game servers, and application servers.[2]
Client–server systems are today most frequently implemented by (and often identified with) the request–response model: a client sends a request to the server, which performs some action and sends a response back to the client, typically with a result or acknowledgment. Designating a computer as "server-class hardware" implies that it is specialized for running servers on it. This often implies that it is more powerful and reliable than standard personal computers, but alternatively, large computing clusters may be composed of many relatively simple, replaceable server components.
APPLICATION SERVER
An application server is a server that hosts applications.[1]
Application server frameworks are software frameworks for building application servers. An application server framework provides both facilities to create web applications and a server environment to run them.
An application server framework contains a comprehensive service layer model. It includes a set of components accessible to the software developer through a standard API defined for the platform itself. For Web applications, these components usually run in the same environment as their web server(s), and their main job is to support the construction of dynamic pages. However, many application servers do more than generate web pages: they implement services such as clustering, fail-over, and load-balancing, so developers can focus on implementing the business logic.[2]
In the case of Java application servers, the server behaves like an extended virtual machine for running applications, transparently handling connections to the database on one side, and, often, connections to the Web client on the other.[citation needed]
Java application servers[edit]
Java Platform, Enterprise Edition or Java EE (was J2EE) defines the core set of API and features of Java Application Servers.
The Java EE infrastructure is partitioned into logical containers.
- EJB container: Enterprise JavaBeans (EJB) are used to manage transactions. According to the J2EE blueprints, the business logic of an application resides in Enterprise JavaBeans—a modular server component providing many features, including declarative transaction management, and improving application scalability.
- Web container: The Web modules include servlets and JavaServer Pages (JSP).
- JCA container (Java EE Connector Architecture)
- JMS provider (Java Message Service)
Some Java Application Servers leave off many Java EE features like EJB and Java Message Service (JMS). Their focus is more on Java Servlets and JavaServer Pages.
There are many open source Java application servers that support Java EE.
Commercial Java application servers have been dominated by WebLogic Application Server by Oracle, WebSphere Application Server from IBM and the open source JBoss Enterprise Application Platform (JBoss EAP) by Red Hat.
A Java Server Page (JSP) executes in a web container. JSPs provide a way to create HTML pages by embedding references to the server logic within the page. HTML coders and Java programmers can work side by side by referencing each other's code from within their own.
The application servers mentioned above mainly serve web applications, and services via RMI, EJB, JMS and SOAP. Some application servers target networks other than web-based ones: Session Initiation Protocol servers, for instance, target telephony networks.
.NET Framework[edit]
Microsoft[edit]
Microsoft positions their middle-tier applications and services infrastructure in the Windows Server operating system and the .NET Framework technologies in the role of an application server.[4] The Windows Application Server role includes Internet Information Services (IIS) to provide web server support, the .NET Framework to provide application support, ASP.NET to provide server side scripting, COM+ for application component communication, Message Queuing for multithreaded processing, and the Windows Communication Foundation (WCF) for application communication.[5]
Third-party[edit]
- Mono (a cross platform open-source implementation of .NET supporting nearly all its features, with the exception of Windows OS-specific features), sponsored by Microsoft and released under the MIT License
PHP application servers[edit]
PHP application servers are used for running and managing PHP applications.
Zend Server, built by Zend Technologies, provides application server functionality for the PHP-based applications.
appserver.io, built by TechDivision GmbH is a multithreaded application server for PHP written in PHP.
RoadRunner, built by Spiral Scout is a high-performance PHP application server, load-balancer, and process manager written in Golang.
Mobile application servers[edit]
A mobile app server is mobile middleware that makes back-end systems accessible to mobile application to support Mobile application development. Much like a web server that stores, processes, and delivers web pages to clients, a mobile app server bridges the gap from existing infrastructure to mobile devices.
Mobile application servers vs. application servers vs. web servers[edit]
Mobile application servers, Application servers, and web servers serve similar purposes: they are pieces of middleware that connect back-end systems to the users that need to access them, but the technology in each of the three differs. Application servers—developed before the ubiquity of web-based applications—expose back-end business logic through various protocols, sometimes including HTTP, and manage security, transaction processing, resource pooling, and messaging.[8] When web-based applications grew in popularity, application servers did not meet the needs of developers, and the webserver was created to fill the gap.[citation needed]
Web servers provide the caching and scaling functionality demanded by web access and not provided by application servers. They convert requests to static content and serve only HTTP content.[9] Over time, application servers and web servers have morphed from two previously distinct categories, blended features, and arguably have merged.[citation needed]
Mobile application servers are on a similar path.[citation needed] The emergence of mobile devices presents the need for functionality not anticipated by the developers of traditional application server developers, and mobile application servers fill this gap. They take care of the security, data management and off-line requirements not met by existing infrastructure, and present content exclusively in REST.
Over time, these three categories may fully merge and be available in a single product, but the root functions differ.
Source: Wikipedia
No comments:
Post a Comment