-
Clients and Servers - Overview
Clients and Servers - Overview
- The client-server model describes a pattern of communication in a distributed application (e.g. an application on the Internet)
- This pattern is used by the majority of Internet applications today, including the WWW and email
- In applications that follow the client-server model there are two roles played by participating network nodes:
- server
- always connected to the network
- listens for requests and carries out some action based on the request, for example
- returns the content of a URL (WWW server)
- receives an email message and adds it to the recipients inbox (mail server)
- carries out a back-end action such as a bank transaction and returns a status update in the form of a web page (WWW+application server)
- client
- connects to the network as required
- makes requests and receives responses
- presents response to the user or processes it in some other way
- many clients connect to one server
- server
-
Web Servers and Clients
Web Clients and Servers
- On the World Wide Web (WWW), clients and servers communicate using the Hypertext Transfer Protocol (HTTP)
- The WWW client is typically a browser
- Browsers
- implement the HTTP protocol
- know how to interpret HTML, CSS and Javascript
- display information to users based on the interpretation of documents in those languages
- They were initially text based but very quickly became GUI-able
-
There are may browser implementations (for a timeline of browser 'lives' see the very detailed graphical information in this Wikipedia article), such as:
- Mozilla Firefox
- Microsoft Internet Explorer
- Apple Safari (based on the opensource WebKit project)
- Google Chrome (also originally based on the WebKit project)
- Browsers
- A WWW server or web server is a type of software application that
- may be implemented to run on any platform (MS Windows, Linux, Mac OS)
- when operational, runs continuously, waiting for client requests and responding to them
- currently has many implementations (see netcraft for details of market share), the most popular of which are
- Apache
- originally developed by the National Center for Supercomputing Applications (NCSA), University of Illinois, Urbana/Champaign
- now an opensource project by the Apache Software Foundation (apache.org)
- the market leader
- available for almost any platform
- Microsoft Internet Information Server
- implements a number of Internet applications: FTP, SMTP, NNTP, and HTTP/HTTPS
- nginx
- at first based on Apache
- can also be used as reverse proxy and load balancer
- Apache
-
Web Servers - A Closer Look
Web Servers - A Closer Look
- Apart from denoting the web server as a type of application, term 'web server' is used for the entire hardware-platform-application stack of a deployed server. This consists of
- hardware, which can vary greatly
- typically high-end multi-processor PCs, with large amounts of memory and disk space
- blade servers (many multi-processor boards, placed into rack-mounted frames)
More about blade servers
- any sort of PC for hobby deployments
- platform
- examples
- Windows
- Linux
- Mac OS (has an inbuilt server)
- may act as a virtual server, where multiple servers are hosted on one machine (how does this work from the point of view of domains and subdomains?)
- examples
- web server application (Apache, MS IIS, nginx)
- hardware, which can vary greatly
- Apart from denoting the web server as a type of application, term 'web server' is used for the entire hardware-platform-application stack of a deployed server. This consists of
-
Cloud Computing
Cloud Computing
- Cloud computing employs a special form of web server, which is
- carries out the functionality of a conventional application
- provides a user interface to the application using the web client-server communication mechanism
-
With cloud computing
- resources such as processing power, disk storage and memory are all harnessed on the server, rather than client, side
- users have access to high-end security, reliability, accessibility and other categories of features
- cost is reduced for users
-
Services are offered at different levels:
- Infrastructure as a Service (IaaS) - virtual machines Amazon Elastic Compute Cloud (EC2)
- Platform as a Service (PaaS) - development environment Heroku, Google App Engine
- Software as a Service (SaaS) - cloud applications Google Docs, Dropbox
- Backend as a Service (BaaS) - database, authentication, push notifications (mostly for mobile apps) Google Firebase, OAuth
- Container as a Service (CaaS) - containers GKE, Amazon EC2
- Function as a Service (FaaS) - functions in any language Amazon Lambda, Google Cloud Functions
-
Providers of cloud computing are, for example
- Amazon Web Services
- Microsoft Azure
- Microsoft Office 365
- Google Drive, Cloud etc.
- web hosting companies
- Cloud computing employs a special form of web server, which is