What is a server? 

Now a server is basically a dedicated   computer that provides services on behalf of clients, such as ordinary desktop computers   or workstations. So it's a centralized machine where multiple clients connect to, either over   the Internet or in a local area network, and they connect to a server for a specific service. So   for example, that service could be to retrieve a website, to access data, or email, and so on. Now   a server could be dedicated to handle one of these services only, where you would have one server it dedicated for a website, one server for data storage, and a server for email. And this model is   what larger organizations use. Or you can also set up a server to handle each of these services on   the same machine which is what typically happens in smaller organizations. So depending upon which   setup is used it all depends on the needs of an organization. 

Now when people talk about a server   generally they are referring to a powerful centralized computer that clients connect to   over a network, and they would be correct on that. However a server is not just a physical computer.   A server is actually a role that a computer takes. Because any ordinary desktop computer can be set   up as a server and it doesn't necessarily have to be a powerful computer. So for example you can set  up a network in your home where you can have an ordinary desktop computer serve as a file server. 


The computer would have those files in a shared folder and then other computers can connect to   it to access those files. Or you can also use a desktop computer to serve as a web server,   where you would install the website data on that computer and then the other computers can connect   to it and retrieve the webpage.  However desktop computers do have their limitations because they   are not designed to handle a large workload and they can't handle a lot of incoming connections   from users.  And this is not only because of their inferior hardware, but it's also because of software.   Because desktop operating systems are only able to handle a limited amount of concurrent connections.   Now servers need to be up and running 24/7 because they are vital to an organization.  And if a server   does go down then that could jeopardize a business or an organization.  


So this is why servers need to   be more reliable.  They need to be built with robust hardware that's able to run non-stop with little to no downtime.  So for example, a desktop would use a processor that's designed obviously for   desktops, such as the Intel core series processors. And a server would use a processor designed for   servers such as the Intel Xeon processor.  A server processor needs to be fast and had the ability to   perform a lot of tasks simultaneously.  Now both of these processors are powerful but there are  some differences.


  So for example, Xeon processors support a multi processing environment.  So they   are designed to work with other processors.  Which means you can put two or more Xeon processors on   a motherboard designed for servers, which is what a lot of servers need to handle a large workload.


  But desktop processors do not support this, they are only designed to work by themselves and not   with other processors.  And another difference is that Xeon processors support ECC RAM, which   is error code correcting memory.  And this type of memory is what's mainly used in servers. 


Now   servers need to be up and running at all times and memory errors could bring down a server and   what ECC does is that it detects if the data was correctly processed by the RAM module and it makes   a correction if it needs to to prevent memory errors.  So using ECC memory in servers is just   an extra precaution to guard against any errors to prevent a server from shutting down and Intel Core   processors do not support ECC Ram, however AMD processors do so support it.  Xeon processors can also support a larger amount of RAM. 


They would have a larger cache memory.  And they would also have   a higher core count than desktop processors.  And a server should also have hot swappable hard drives   in a RAID configuration because if a hard drive were to fail then no data loss what happened and   the server would still be up and running because of RAID.  RAID is what copies that data on multiple   disks and if a hard drive were to fail then it can be removed and replaced without shutting   down the server.  And then RAID would rebuild the data on the new hard drive automatically. And a server should also have redundant power supplies to   keep the server up and running in case of a power supply failure. And a server also needs to use a server operating system, such as Linux, Windows Server, mac OS server   and so on. 


Server operating systems are robust and stable and they are designed to run non-stop and   are able to handle thousands of concurrent connections.  Now there are many different   types of servers and when I mean types I'm talking about the type of service that the   server provides.  So for example, a web server.   A web server is what hosts a website.  So any   website that you go to with your web browser, you are connecting over the Internet to that   web server to pull up the web site you want.  The web server will contain all of the website's  data, including the HTML code and graphics and it will also be running the web server software, another type of server is an email server an email server is what facilitates the sending   And receiving of email and you would access the email using your web browser or you can use an   email client such as Outlook or Thunderbird using email protocols such as IMAP,, POP, and   SMTP.  And a database server is another type of server.  This type of server stores data   on the backend and then it's retrieved from computers on the front end, for example using   queries such as SQL.  So these are just a few examples of what servers do but there is a lot  more.