Internet Technology Explained

What Is a Web Server? [MakeUseOf Explains]

Ryan Dube 29-11-2012

what is a web serverIf there is one thing that causes the most confusion for people that are new to the web design game, it’s the concept of a web server.  When most people think of a “server”, they think of a physical machine like a big computer system sitting in some chilled computer room somewhere, or at the very least some computer system sitting in the basement of some hackers house.


So what is a web server? The truth is that a server in this sense is technically software. It’s literally a service that runs on a computer and “serves” information to multiple clients. This process doesn’t require a huge server or even a single PC. A web server (or multiple web servers for that matter) can be installed on a USB using software like XAMPP How To Set Up Multiple Portable XAMPP Web Servers On A Single USB Drive For some time now, I've been trying to develop a very fast and easy way to create a virtual web server (basically a local web server), on my portable hard drive. Not just one though.... Read More and others.

Of course, the typically web server setup is web server software like Apache How To Set Up An Apache Web Server In 3 Easy Steps Whatever the reason is, you may at some point want to get a web server going. Whether you want to give yourself remote access to certain pages or services, you want to get a community... Read More running on a dedicated computer system, or you can just use the web hosting The Best Web Hosting Services: Shared, VPS, and Dedicated Looking for the best web hosting service for your needs? Here are our best recommendations for your blog or website. Read More features built into most operating systems, like IIS for Windows or just setting up Ubuntu How to Build a Linux Web Server With an Old Computer Got an old computer taking up space? Want to use it to host a website? Here's how to set up an old PC as a Linux web server. Read More as a web server.  The truth is that setting up a web server that can deliver web pages to the web browsers of other computers is actually the easy part. The slightly more complicated aspect of web servers is delivering dynamic content with forms or other page content that accepts user input, processes it, and then creates new custom pages on the fly.

Higher level websites like that can be hosted on the simple web servers you might enable using software like Apache, but the ability to process the input from users and automatically create new web pages that respond to that input is the work of web scripting languages and platforms like PHP, Java and more.

Alas, we’re getting ahead of ourselves. First, let’s take a look at the basic setup of a web server, and then we can explore some of those more advanced areas once our theoretical web server is running properly.

What is a Web Server and How Does It Work?

To understand the architecture of a web server, you need to first understand how the path of an exchange between a remote web browser and a web server actually works.


The path of communication starts when someone opens a web browser and types in the name of a website. When the user does this and hits enter, the browser goes out to the Internet in search of where that website is stored – in other words, what web server holds the web page file that will display that information.

How the browser figures that out isn’t really the scope of this article, but if you’re curious, you can learn more about it at the article Guy wrote How The Internet Works [Technology Explained] Read More about it. The bottom line is that the user’s own ISP directs the web browser to special servers on the Internet called DNS servers, which help convert that domain – like – to the address known as a unique IP address where that server can be accessed.

The browser then establishes a connection with the web server via its IP address, requests the specific web page, and the web server responds by “serving” the file. The very basic web page is an .htm or .html file. The typical default page for most websites is index.htm, which is what most web servers assume is being requested when a browser asks for just a domain. So if you look for ““, my web server will send you the index.htm file that’s stored on the first level public directory of that web server. Your browser then knows how to interpret that HTML code and properly display it to you.

Here’s what that simplified path looks like.


what is a web server

Obviously, the Internet isn’t quite that simple. If it was, there would be a whole lot more webmasters in the world. The thing is, setting up a web server that can be accessed from anywhere in the entire world over the Internet isn’t rocket science, but it isn’t for the feint of heart either.

Setting up a simple web server that can serve up simple HTML files is fairly easy. If you have a Windows 7 computer, all you have to do is open up “Programs and Features” in the Control Panel, click on “Turn Windows features on or off“, and then click the checkbox next to “Internet Information Services” – this is IIS.

what is a web service


By default, IIS will not enable an FTP server along with it, so you’ll need to click that checkbox as well if you’d like to have an FTP server also available on your computer. This is a good idea if you intend on sending files to the web server remotely via some FTP client.

Either way, the moment IIS is enabled on a Windows PC, any HTML file stored in a “c:\inetpub\wwwroot” directory will be available to any other computer to view with a web browser, so long as that computer can access your computer. You can see your default website (and create others) by going to Admin Tools, and selecting “Internet Information Service“.

what is a web service

What this means is that even if your computer isn’t on the Internet and is only on a Corporate LAN, any other user on a computer plugged into that LAN can type the IP address or name of your computer into their web browser, and access the web pages that you’ve stored on your computer. You’ve just set up a simple web server.


Running Scripts & Programs

That’s a simple web server, but what if you want to do interesting things like have the user fill out forms and access a back-end database? What if you want to host a WordPress blog? You can’t do those things on a regular, simple web server, because in order to do that you need server side scripting enabled.

A web server needs to have those actually installed on the server in order for it to work. Such languages include Ruby, Java, PHP, C++, .Net, and many more. It is actually pretty surprising how many languages you have to choose from to write web applications, but that’s exactly what you can do – write applications that can run on a web browser.

If you want to save a little bit of time, you can go through and use one of our guides to set up XAMPP How To Install A Windows Web Server On Your PC With XAMPP Read More  on your computer. This is one option – there are others – that essentially provides a working web server application that includes Apache (the web server that hosts content on your PC), the PHP programming language, the Perl programming language, and a convenient MySQL database.

Once you’ve installed these additional layers on top of your regular web server, your system now looks more like below.

what is a web server

Now, remote computers access your web server, and either get regular static files, or if your content is dynamic – such as if you’re using a WordPress blog where all the pages are dynamically created every time the page is loaded – the web server will run that language and return the content via the script output into a unique, new web page file.  If necessary, the script may even access data in your SQL Database stored on the server.

As you can see, once you start adding the additional layer of programming languages and a back-end database where you can store information, the things that you can do with a website really become nearly unlimited. And, if you back up all folders and files for your website, you can really plop down your website into any other server with the same setup. This is why USB-hosted web servers using XAMPP is so cool, because you can literally take the USB stick and host your website from just about any computer.

As you can see, a web “server” is less about the actual computer, and it’s more about the software that makes it all work. It’s web server software that lets you open up those web files to the entire world.

Have you ever thought about having your own web server, or even hosting your first website? Did this article clarify the whole thing a little more for you? Share your own thoughts and experiences with web servers. Let us know what you think in the comments section below.

Image credits: Digital World via Shutterstock

Affiliate Disclosure: By buying the products we recommend, you help keep the site alive. Read more.

Whatsapp Pinterest

Leave a Reply

Your email address will not be published. Required fields are marked *

  1. Dallas Smith
    December 21, 2012 at 11:03 pm

    Great post.

  2. Alain Pierre-Pierre
    December 13, 2012 at 7:05 pm

    Very good explanation. I feel more comfortable about web servers now.
    Thank you

  3. Vishal Mishra
    December 2, 2012 at 6:05 am

    Really great information. Thank you MakeUseOf.

  4. Sebastian Hadinata
    December 2, 2012 at 3:05 am

    Great article with clear explanation!

  5. Anonymous
    December 1, 2012 at 3:01 am

    This is what exactly I needed. Thanks Ryan!

  6. Gary Mundy
    November 30, 2012 at 6:04 pm

    That was explained so clearly that even I could understand it
    Thanks :)

  7. Lisa Santika Onggrid
    November 30, 2012 at 10:10 am

    I'd host my own blog if I have internet access 24/7. Unfortunately it's still far-fetched for now. Thank you for the post. I'm one of those thinkig of 'server' as a hardware, not software. It's a common confusion, yes?

    • Douglas Mutay
      December 4, 2012 at 10:10 am

      Laughs...yes, same for me. I have always in my mind the image of a hardware when talking about server.

  8. Christopher Miliotti
    November 30, 2012 at 6:18 am

    Great explaination

    • Giggity Goebbels
      December 8, 2012 at 8:38 am


  9. Anonymous
    November 30, 2012 at 5:10 am

    well thanks for such a nice article... loved the way you kept it simple and noob friendly

  10. vineed gangadharan
    November 30, 2012 at 4:48 am

    cleanly explained article...

  11. Joel Lee
    November 30, 2012 at 3:25 am

    This was like a flashback to my college course on introductory networking. What a fun read. :D

  12. Tarek Deeb
    November 29, 2012 at 9:58 pm

    I've had a lot of experiences with servers. My problem is, where I live I can't forward ports. And to make your web server available on the web, you need to make your computer visible to the world by opening ports. So I just use my WAMP for testing purposes.
    I've read somewhere that packages like WAMP/XAMPP/etc are not very safe. The safest was to make a secure web server is to install each software separately and combining them in Apache's httpd.conf config file via modules, but I never really got the "why" that is. Anybody has any ideas on that thought?

  13. Jagbir Sembhi
    November 29, 2012 at 9:26 pm

    nicely explained

  14. Debra Beshears
    November 29, 2012 at 7:11 pm

    Thank for this article. It cleared some things up for me.