What is a web server?
Web servers are where web content is stored and kept available for users to access at any time. Whenever you call up an internet address in your web browser, it’s always the web server that’s responsible for sending individual website components to your computer. In order for a website to be constantly available, the web server needs to be online 24/7.
To get your site online, you’re going to need a specific web server. Large companies and organizations often have their own servers that they use for both intranet as well as internet content. Most website operators, however, rent data centers offered by providers in order to host their online presences. But it doesn’t matter whether or not you’ve got your own web server or simply rent one externally: you’ll always need some sort of software in order to manage website data and keep it up and running. To this end, website operators are able to choose between different web server programs that have been set up for various applications and operating systems.
- Web server: a quick history and definition
- Web server technology: what makes them tick?
- Additional web server tasks
- Definition: web server vs. web hosting
- Web servers for web hosting: common (and free) web server software
- Find a suitable server and set up a web server
- Web server security
- An example of a web server operation
Web server: a quick history and definition
Implicit in its very name, a web server (also known as an HTTP server) is a type of server that’s responsible for serving, or providing web content on the internet or intranet. As a part of a computer network, web servers transfer documents to clients (e.g. a website to a web browser).
The term web server generally refers to two different things: either the software of a web server (i.e. the program itself) or to the computer on which the web server software is implemented. When referring to the latter definition, the computer is referred to as a host; these are able to ‘host’ multiple web server programs. In the following text, the term web server software/HTTP server software is used to refer to the actual program, while the term ‘host’ has to do with the actual physical machines that this software runs on.
The development of web servers can be largely traced back to the British physicist and computer scientist Tim Berners-Lee. Berners-Lee got the idea when working at CERN (European Organization for Nuclear Research) in 1989 and began developing the first web servers in order to make information exchange easier and quicker to design. To this end, he planned a hypertext system. In addition to the first web server, ‘CERN httpd’, Berners-Lee, together with Robert Cailliau, presented a project plan in 1990 to create some further fundamental features of the web, like HTML and HTTP. Today, Berners-Lee is considered to be the founder of the World Wide Web.
Web server technology: what makes them tick?
Web server software is first and foremost there for supplying files in order to display web content. To this end, the program communicates with a web client (generally a web browser or a search engine crawler).
If you want to call up a website, then just enter its corresponding internet address into your web browser. The browser then sends a request to the web server, which then sends an answer; this could be, for example, an HTML page. Such pages can be saved as static documents on the host or can also be dynamically generated, which means that the web server has to execute programs, like PHP or Java, prior to answering the request. The browser interprets the answer, which is then often followed by further requests to the server (e.g. requests for integrated images or CSS files).
In order to transfer data, the transfer protocol HTTP (and its encrypted variant, HTTPS) is used; this is based on the network protocols IP and TCP—in rare exceptions, UDP provides this basis for the protocol. Web servers are able to deliver a website’s content to many different computers and/or their browsers. The number of requests that are processed depends, among other things, on the hardware and capacity of the host. A website’s complexity also plays an important role: CPU-intensive processes, of course, require more resources than those that demand less computing capacity.
Choosing the right server (and simultaneously making a decision whether this should be a virtual, dedicated, or cloud-based variant) prevents web servers from becoming overloaded. But even those using servers that are ideally suited to their circumstances are not entirely protected from the risk of experiencing a server breakdown. Some typical reasons for such issues include technical malfunctions or power outages at the data center where the host is located. Even if it only happens on very rare occasions, such downtime means that a website is completely separated from the internet; or at least this is the case when the website is running on a device with a connection to a content delivery network (CDN).
Additional web server tasks
Even if transferring web content is your primary task, many web server programs offer an extensive range of additional functions:
|Encrypts communication between web servers and web clients via HTTPS
|http authentication for certain areas of a web application
|Forwarding called-up documents via rewrite engine
|Caches dynamic documents in order to answer requests quicker and prevent web servers from overloading.
|Sending and processing HTTP cookies.
In addition to web server software, hosts are also able to contain additional server software, like an FTP server, which is used for uploading files, or a database server for dynamic content (most professional hosting services already provide such hardware). Generally, many different server forms can be used for completely different purposes. Mail servers, game servers, and proxy servers are among the most commonly used options.
Definition: web server vs. web hosting
Which roles do web servers play regarding web hosting? What exactly is web hosting? Basically web servers have always been an essential part of web hosting. However, it’s not always easy to make a distinction between the two terms. We define these terms below.
Web hosting (frequently known as 'hosting') is the storage of web content and making it available. A website’s files are stored on a web space (online storage space for web projects). The web space is, so to speak, the hard drive on which web content is stored – and this storage space must be connected to a web server so that the content (e.g. a website) can be accessed online.
A host (web server computer) and the web space connected to it are obtained from a (web) host. Many internet service providers (e.g. IONOS) act as web hosts. If you have chosen a hosting service provider for a self-managed host, you have to set it up yourself. In order to do this, you need a web server program.
Web servers for web hosting: common (and free) web server software
There’s a wide range of available programs that allow users to operate web servers. Many of these can be found online for free. Of course, the applied web server software needs to be compatible with the host’s operating system. Most web servers rely on Unix or Linux (Apache, Nginx, Tomcat, etc.); and Windows presents a further option. The big exception here, however, is Microsoft IIS, which exclusively runs on Windows servers.
Here’s a list of some of the most commonly used web server programs:
- Apache HTTP server: the Apache HTTP server (or just Apache web server) is constantly developed on an open source basis and is furthermore available in many different versions. The modularly constructed program runs on almost every operating system and is the most commonly used web server. This is especially well suited for dynamic web content: script languages, like PHP, can be seamlessly integrated via CGI interfaces, and Apache is also able to execute other programs via the CGI interface. Apache’s complicated installation process can be avoided by using software packets like XAMPP or LAMP. These solutions make getting things started a much easier task. And, in addition to Apache, they also contain the required software for the database as well as various script languages.
In terms of speed, however, the Apache HTTP server has recently lost some ground to other web server software options: many competing products are characterized by shorter answering times for data transfer.
- Apache Tomcat: this is an open source web server solution from the Java environment. Those wishing to generate server-side web content with Java will find a suitable web container in the form of Apache Tomcat. Additionally, the server program can be incorporated into another web server (e.g. into the Apache HTTP server or Microsoft IIS) via AJP connecter.
- nginx: this software is also available for free, and, at the same time, it offers much more than your typical web server—nginx features, among other things, a reverse proxy, which significantly relieves the web server, increasing its speed in the process.
- Microsoft IIS: Microsoft Internet Information Services (ISS) is a server software packet, which also features a web server. Whereas IIS was once only a part of the Windows Server systems, the program is now available for installation for some Windows operating systems. Perhaps it doesn’t come as a surprise that Microsoft IIS can only be installed on Windows servers.
- LiteSpeed Web server: this is a web server software for Linux and Unix. Users are able to choose from an open source version, a free-of-charge version, and an enterprise version. The LiteSpeed web server is especially impressive due to the speed at which it’s able to transfer data.
Administrating web server software is generally carried out remotely from another computer with the help of remote maintenance software. Here, users don’t need to equip their computers with the same operating systems that are running on their hosts’ servers. This latter point is made clear by Plesk, one of the most well-known programs for remote access. Plesk allows web servers to be managed by Linux, Unix as well as Windows computers. The result of this is that users are able to control Linux servers via Windows home computers; the contrary server scheme would also be possible.
Find a suitable server and set up a web server
If you want to create a web server for your online presence, you need a host with enough web space. One of the most common options is to hire server resources from a provider. If you aren’t very familiar with server administration, you can look into the possibility of shared hosting or managed cloud hosting to set up your personal web server. In contrast to a server with root access – where you have all the access rights, but also complete responsibility for server security – with managed servers the host takes over a large part of the basic administration. You don’t have to worry about things like security and software updates and you can still use the software as you wish. With shared hosting, you aren’t responsible for software updates yourself. The downside is, however, that you only have access to the web space and the configuration options made available by the provider.
Servers can usually be rented for a monthly fee. How much this is, depends on the performance and size of the individual components – such as the performance of the computer (CPU and RAM), the web space, and the type of disk storage (SSD or HDD). If you want to keep the capacity of the web server flexible when hosting, you should consider cloud hosting. The performance of many different components can be adapted to the current requirements of any web project.
The performance of the respective host components again depends on what the web offer needs: web projects such as small blogs or online business cards do fine with cheap and less powerful hosting packages. Large online portals or internet sites with complex web content, on the other hand, require certain components to be much more powerful. In addition, some web applications require a higher data transfer volume compared to others. For example, websites that provide downloadable content have to be able to maintain a certain speed so that the rate of transferring files is as fast as possible. If you have many relatively large files on your site, such as videos or music, the available volume for traffic must suffice so that the server isn’t overloaded. To make sure of this, you can book a package with a traffic flat rate. This is available from most providers and it guarantees that there is always enough capacity for data traffic.
Once you have found the right server, you can set up your preferred HTTP server software on it. However, even when using a managed server, there are some security aspects that must be taken into account when web hosting.
Web server security
Once the web server has been created and set up, you should always ensure that it’s up-to-date. Outdated versions make it easier for criminals and hackers to attack your server, which in the worst case means they could gain control over it. When it comes to shared and managed hosting, the internet provider usually takes care of all security measures – otherwise it’s your responsibility.
In addition to constant updates, a firewall offers protection against attacks. Setting up a demilitarized zone (DMZ) also usually makes sense. There is also a framework with Fail2ban that can also protect against unauthorized access.
Another principle of web server security is for you, as the administrator, to only allow what is necessary for your server. For example, closing all unused ports and terminating all unnecessary services. Allocating secure passwords also belongs to the basic security precautions when managing a server. It’s crucial to have reliable and qualified customer support at hand for questions and emergencies – especially for less experienced administrators.
If your host is not fully responsible for protecting your server, it makes sense for you to have some expertise in server maintenance and a basic understanding of how a host works. You can also acquire this knowledge gradually – first try and learn with a server in a closed network so that you don’t have to worry about cyber criminals.
An example of a web server operation
Web servers function according to the client/server model. An example: if you want to visit IONOS’s home page and call up the domain ‘www.ionos.com’ from your browser (the client), then you’ve started the following processes:
- As soon as you have entered your address, the browser transfers it to a name server (also known as a DNS server). As one of the main components of the domain name system (DNS), the internet’s directory service, name servers have access to the complete address book of the internet. The alphanumeric domain name (www.ionos.com) is then translated into a numeric IP address and sent back to the browser.
- Then the browser makes a request regarding the site content and then sends the requested website’s URL to the received IP address. In other words, the web browser contacts the web server that contains the site content.
- The web server answers the query by sending a document from the desired website back to the browser. Upon completing this step, the browser then sends another request to the web server—this time for a different format, which is part of the requested web page. This process repeats itself until all individual components of the site are transferred and the website is then displayed in your browser window. When you click on a IONOS home page link, another page is requested by the web server, essentially starting the process over from the very beginning.
Do you feel well informed about creating your own web server and want to rent a server? Whether it’s a dedicated server, cloud server, or virtual server, IONOS has the best solutions to suit anyone. Discover our server portfolio in our IONOS store.