Web servers are computers that deliver, or serve, web pages to internet end users. Web servers require both hardware and software to work. Every Web server has an IP address and likely also a domain name. For example, if you enter this page’s URL — http://www.webopedia.com/definitions/web-server/ — in your browser, this sends a request to the Web server whose domain name is webopedia.com. The server then fetches this web page and sends it to your browser.
Any computer can be turned into a Web server by installing server software and connecting the machine to the internet. To handle web traffic at acceptable speeds, web servers combine high-capacity storage with high-speed processing units. Computers with high-capacity storage, fast processors, high bandwidth capability, and connection to high speed internet are best suited to be web servers. Web server software applications, including public domain software and commercial packages, allow sites to be hosted on computers. The software tells the server what content to deliver to the client, how it should look on the clients browsers, and what actions it should perform or allow once the page is displayed. Web servers typically run on Linux or Unix-based systems and Windows operating systems.
- How do web servers work?
- History of web servers
- Static vs. dynamic content
- Popular web servers and market share
- Load limitations
- Kernel mode vs. user mode
How do web servers work?
- A user enters a URL—for example, this page’s URL — in their browser.
- This sends a request to the Web server whose domain name is webopedia.com. A DNS server converts the URL to a specific IP address, which is how computers locate websites and pages. Domain names, like webopedia.com, make IP addresses readable for human users.
- The server fetches this web page’s IP address and returns the page to the user’s browser.
Web servers use HTTP or HTTPS protocols. The server can either accept or deny a request from a web user.
History of web servers
Tim Berners-Lee invented the World Wide Web in 1989, but to make the Internet useful, he needed a way for users in geographically distributed locations to access web pages regardless of the physical location of the computers storing those pages. He wrote the first web server program, which ran on a Next Step operating system on a NeXT computer, in 1990. The first web server software was known as CERN httpd. The server and its computer were located in Geneva, Switzerland.
Paul Kunz and Berners-Lee collaborated and used a computer at Stanford University to retrieve a web page from the servers in Switzerland. They also developed the first US-based web server at Stanford, and Berners-Lee connected to it from Europe, demonstrating to other Europeans how the web server allowed remote access to digital information.
By 1992, multiple web servers existed; in 1993, the World Wide Web went to the public domain. By 1994, there were thousands of web servers worldwide. In 1995, a group of software developers created the Apache web server, which is open-source software that allows developers to configure and customize its code.
Static vs. dynamic web content
Web servers deliver two types of content: static and dynamic. Static content is entirely HTML- or CSS-based and doesn’t change, while dynamic content shifts regularly based on user behavior. Web servers often have to use plugins for dynamic content or work in tandem with an application server, which better hosts dynamic elements such as ecommerce fields.
Static web content doesn’t change depending on input; a static web server returns the exact same web page when it receives that page’s query. A blog article is an example of static web content: when an Internet user requests the page, it will always return the same page with the same data. Note, however, that some blog posts or other mostly-static articles do have small interactive elements on the page, such as a field for posting comments. Static web content typically loads more quickly because all of the content on the page is cached as is and doesn’t need to change.
Dynamic servers often take longer to provide content and answer requests because dynamic content has to be populated depending on the requests. For example, a content management system (CMS) like WordPress is a dynamic site; it’s consistently being edited and its pages have multiple fields that change based on user input. Dynamic web content includes interactive elements. A web server alone cannot deliver dynamic content—it requires a connection with an application server, which serves web applications.
Popular web servers and their market share
The vast majority of web servers run on one of three platforms.
Apache’s free, open source web server software supports both types of web content—static and dynamic. Its code is customizable, allowing developers to tweak the web server as they like.
Nginx is also free and open source; it was founded in 2004. Nginx caches web content quickly and efficiently and serves more static web requests at one time than Apache can.
Microsoft Internet Information Services (IIS) is Microsoft’s web server, developed to meet load and traffic demands for Microsoft’s main website. IIS is the third most popular web server according to many market statistics.
As of August 2021, web server market share worldwide was dominated by Nginx, according to Netcraft. Nginx runs on the largest number of computers.
Nginx, founded in 2001, increased in popularity the past two to three years. Microsoft IIS, in contrast, was once the second-most-used web server but now trails both Apache and Nginx, commanding about 12% of market share in total computers. Though different reports exist with varying percentages, in general, Apache and Nginx stay around a third of market share.
Web server load limits determine how much traffic, or how many requests, a server can handle before its performance decreases. Load limitations are determined by the following factors:
- Operating system and hardware specifications
- Web server settings or configuration
- Static or dynamic content (dynamic requires more bandwidth)
If a web server’s load limits are exceeded, its performance will decrease. This results in slow page load speeds, or the page will throw an error code and the server will refuse to load at all.
Technicians who maintain web servers can test load limits by downloading large files or running multiple programs on the server at once.
Web server performance is affected by:
- Heavy and unusual traffic, such as a video or news article that goes viral
- Internet connection and speed
- Viruses and worms if enough computers are infected
- Distributed denial of service (DDoS) attacks, which often occur because a virus or worm infected so many computers that requests from all those computers flood a website and overload the web server
Also Read: Top Rack Servers of 2021
Kernel mode and user mode
Web servers run in either kernel mode or user mode:
- In kernel mode, web server software runs on the operating system, or kernel, and has direct access to the computer’s memory and CPU. A web server running in kernel mode is often faster because it can immediately access computing resources and power.
- In user mode, the web server functions as an application on the computer and must request memory and CPU usage from the operating system like other programs running on the computer. User mode is typically slower because it takes time for the web server to send the request and receive resources from the operating system. Also, the web server must share computing resources with all the other programs on the computer.
Switching back and forth between kernel mode and user mode creates buffer copies of data, a form of data duplication that slows web server performance. User mode is a less reliable or efficient way to host a web server; kernel mode gives the server more direct access to computing resources.
This article was updated Sept 2021 by Jenna Phipps.