Web Servers – Introduction
This final module covers web servers and outsourcing. A key business decision includes the location and servicing of a website. Websites reside on web servers and understanding the components and options available for web servers makes business sense. Finally, this module covers considerations for insourcing and outsourcing of related web services.
This module will cover the following topics:
- web server basics
- virtualization
- outsourcing issues
By the end of this module, you should be able to answer the following questions:
- What is a web server?
- What is cloud computing?
- What is virtualization and how is it used for web servers?
- What are the different levels of outsourcing, and when is each level appropriate?
Web Server Basics
Learning Objectives
- Analyze the advantages and disadvantages of running your own web server versus using a service provider.
Now that you have gained a foundation in the phases and core design standards of web development, it is important to learn about the enabling technologies that support web-based activities. One such activity is the manner in which the World Wide Web follows specific internet protocols, where web page information is stored on a server that delivers data to the end-user (client) machine. This storage solution is provided by a web server, a machine that provides, stores, and processes all information that will be rendered by the end user’s browser. Review the graphic for further representation of the web server concept.“Web Server” © WGU 2020
Web Servers Explained
For the HTTP protocol, the web server stores the web page data, including the HTML/CSS/JS files and all other information (images, text, videos, etc.), that are rendered by the browser. The following steps describe how a typical web page is displayed:
- A request is made when an internet address is clicked.
- The page and its files are downloaded.
- The web browser uses the page resources to build the page.
- The page is then displayed to the user. (Sexton, 2015)
The web server graphic provides some visual context on how the end-user actions trigger interactivity between a variety of interconnected pieces. Now consider the following expanded explanation of this process. The end-user device is often referred to as the client machine. On the end-user device, the browser will render HTML/CSS elements and execute JS commands. The server machine, described earlier in this lesson as the web server, runs web services that respond to client requests, such as providing the HTML/CSS/JS files through the internet connection and providing access to the database management system. It is during the deployment phase of the web page development process that the web server machine has to be configured in order to provide the WWW service, as well as integrate with other application services such as the database. It is important to remember that the mandatory service in a web server is the WWW service, and the other services, if needed, may be configured either on the same machine or onto another.
Web Server Terminology
According to the specific service provided by the web server, there are a variety of web server types. Review the terms provided below for specific definitions of each type.
| Server Type | Characteristics |
|---|---|
| Domain Name System | Translates domain names into numerical addresses, making it possible for a user to access a website by typing the domain name rather than the website’s actual address |
| WWW server (web server) | Delivers HTML/CSS/JS files to the requesting user |
| Database server | Used for the storage and retrieval of data; delivers structured DBMS and unstructured data (files)A database server is not required for every website created |
| Application server | Runs specific programs and delivers output. An application server is not required for every website created. |
Cloud Computing and Hosting
As a side note, you may also be familiar with the more common current terminology of cloud computing. The overall domain of cloud computing in many ways overlaps the web server definitions provided above, since cloud services are web-based services that are provided by a pool of servers and services that are masked from the end user by a single point of access, i.e., a single URL.
A website and all associated pages and files must be stored in a centralized location that is connected to the internet. This storage process, sometimes referred to as web hosting, is the manner in which files that comprise a website (i.e. code, images, etc.) are stored on a web server that is managed by a hosting provider. The amount of space allocated on a server to a website depends on the type of hosting. They are differentiated by the kind of technology used for the server, the level of management provided, and the additional services offered (NameCheap, n.d.).
Read “What is a Web Server?” (opens new tab) from MDN Web Docs.
This article explains how web servers work, and why they are important.
As you read, consider the following questions:
- What is the difference between a static and a dynamic web server?
- static means that it is served as is and dynamic means it is processing creating data on the fly
- What is the 404 error and when is it delivered?
- it is when a html request doesn’t match up and isn’t found on the server
Watch “Working with Clients and Servers” (opens new tab) in the course Web Technology Fundamentals from LinkedIn Learning.
This video teach you about how web servers support the deployment and functionality of a web page.
As you watch, consider the following questions:
- How does a web server support a user after they enter a URL into a browser?
- passed onto DNS and translated to an IP address – then the IP locates the server and requests content – then sends the data etc.
- How do web applications support dynamic web servers?
- dynamic .net php or ruby – server needs to process the request and then the data is rendered. used on a live tickets website for airfare
Virtualization
Learning Objectives
- Analyze the advantages and disadvantages of running your own web server versus using a service provider.
As you have learned, web hosting is how files that make up a website are stored on a web server, which is managed by a hosting provider. But this elicits a question: if a hosting provider needs to host thousands of websites, does that require thousands of physical web servers? The answer is no, because hosting providers, and other organizations as well, implement a technology called server virtualization.
Physical servers are complex devices that take up a lot of space and are expensive to purchase and maintain. Historically, traditional server hardware was designed and purchased to host a single application or service. This single instance of an application or service (like a web server) can make physical servers inefficient in a business environment. If a server had excess capabilities (e.g., available processing cycles or available memory), these excesses were wasted in a single-use server configuration. Therefore, rather than purchasing dedicated server resources, it makes better financial sense to allocate those expensive server resources, such as the central processing unit (CPU), memory, and hard drives, across multiple server instances. These multiple server instances are called virtual servers. In essence, server virtualization is the process of allocating physical server resources across software-based server resources.
Virtualization accomplishes this allocation of resources by using specialized software called a hypervisor. A hypervisor “abstracts the underlying hardware from all the software that runs above” (Bigelow n.d.), meaning that the hypervisor acts as a mechanism that exists between the virtual machine (which runs as a software instance) and the physical hardware resources. This allows the hypervisor to run multiple virtual machine instances, and to have those virtual machines all access the same pool of physical server resources.
But what are virtual machines? Virtual machines are software-based server instances. The virtual server itself behaves just like its physical counterpart, meaning the virtual server runs an operating system (Like Windows or Linux) and performs certain tasks (like running as a web server). Consider server virtualization as different layers. The foundational layer is the physical server, which is comprised of hardware, including the CPU, memory, hard drives, etc. On top of the physical hardware resides the hypervisor, which is the virtualization software. Virtual servers are then built using the hypervisor software. Each virtual server acts as its own entity, meaning the virtual server has its own operating system, and runs its own set of applications (like web server services). In a virtualization environment like this, each virtual server runs independently, and is not aware of other virtual servers running on the same hardware.Server Virtualization © WGU 2021
Why Server Virtualization
Ultimately, data centers (which can host thousands of servers) are driven by cost. It is simply too expensive to run and maintain multiple single-server instances in a data center. Rather, it makes economic sense to utilize the full resources available for a given physical server instance. A website host can run multiple websites across a single physical server, rather than needing a physical server for each website. In fact, each virtual server can include multiple customers hosted on each virtual web server. This reduces the hosting providers’ costs, which ultimately translates to lower hosting expenses for the website owner. Ultimately, the ability to better utilize physical server resources allows for greater scale in web server deployments.
Outsourcing Issues
Learning Objectives
- Analyze the advantages and disadvantages of running your own web server versus using a service provider.
When setting up a web server, it is important to consider how additional, external provider services may be needed to support website functionality. This section will review the varying levels of using a service provider, as well as some of the considerations that can influence this decision.
Levels of Outsourcing
You will need an internet service provider, or ISP, and a name server or DNS. The first will provide you with a connection to the internet, while the latter will furnish your content with an internet address so the content can be referenced or located by the user. Some ISPs also have the capability to provide domain registration as well as DNS.
The levels of outsourcing are described as follows:
| Outsourcing Level | Internal Services | Provider Services |
|---|---|---|
| Fully in-house | Planning websiteDesigning website (code + media objects)Implementing websiteTesting websiteDeploying websiteWebsite maintenance | Internet service provider (ISP)Name server (DNS) |
| Web service hosting | Planning websiteDesigning website (code + media objects)Implementing websiteTesting websiteDeploying website (shared)Storage of web page filesStorage of data filesWebsite maintenance | Internet service provider (ISP)Name server (DNS)Deploying website (shared)Server-side applicationsDatabase service |
| Website hosting | Planning websiteDesigning website (code + media objects)Implementing websiteTesting websiteWebsite maintenance | Internet service provider (ISP)Name server (DNS)Deploying websiteStorage of web page filesStorage of data filesServer-side applicationsDatabase service |
| Fully outsourced | Planning websiteDesigning website (code + media objects) | Internet service provider (ISP)Name server (DNS)Physical web serverDeploying websiteStorage of web page filesStorage of data filesServer-side applicationsDatabase serviceImplementing websiteTesting websiteWebsite maintenanceWebsite support |
Selecting a Provider
The pros and cons of each of those options concern:
- cost: pricing for services
- degree of Control: ability to view data and make adjustments
- security: ensuring the safe storage of all content and data
- reliability: consistent functioning of all web page assets and server-side technologies
- support: assistance for end users as needed
In addition, you may need to further consider the physical aspects of server hosting locations; as is the case with colocation, a server provider might also allot space for equipment. What this means is that the organization would purchase all the necessary hardware (e.g., servers, networking equipment) to configure that hardware, and then ship that hardware to the service provider to incorporate into the provider’s data center.
In order to properly evaluate your outsourcing needs, it is worth it to evaluate the complexity of your website and the ability of your organization to handle its complexity. For example, if your website does not require any form of server-side application, and it has a fixed internet address, the fully in-house option may provide the best solution because it is low cost, provides complete control over the content, has a low security risk, and minimal reliability issues. However, if your website uses a large database and your organization has low computational infrastructure, it may be wiser to select website hosting to avoid the costs related to building your own infrastructure.
Read section “PHP and web hosting” (opens new tab) of Chapter 5 in Practical Web Development.
This section teaches you about web hosting, domain names, and server-side setup.
As you read, consider the following questions:
- What are some services offered by web hosting companies?
- php, mysqlserver, and phpmyadmin
- What is FTP?
- file transfer protocol
Read “Outsourcing Web Hosting Support: 6 Reasons Why It Makes Sense” (opens new tab) from Arress Support.
This article provides important factors to consider in the web outsourcing decision-making process.
As you read, consider the following questions:
- Why is website support an important issue when deciding to outsource or not?
- because if something happens, clients need to be assited at all times
- In this context, what is business continuity?
- always having a running website
Web Servers – Summary
During this module, you were introduced to the server technologies that support website functionality and performance. You explored the terminology describing different types of web servers, as well as the storage solutions offered within the context of cloud computing and hosting services. Next, you read about virtualization and how virtual servers reduce costs for web servers by spreading the high cost of server hardware across multiple software-based virtual machines. Finally, you read about the key considerations when finalizing a decision to outsource specific web hosting capabilities, as well as the expected service levels for each type of outsourcing.
During this module you learned the following:
- Web servers provide, store, and process all information that will be rendered on the end user’s browser.
- You reviewed web server terminology.
- Cloud computing refers to applications and services offered over the internet.
- Virtual machines are software-based server instances.
- There are four levels of outsourcing:
- fully in-house
- web service hosting
- website hosting
- fully outsourced
Unit 2: Summary
In this unit, you expanded your technical skills while exploring topics that directly impact the key decisions associated with website development. Successful web development includes a mastery of coding skills but it also includes the:
- usage of project management techniques
- consideration of legal and copyright issues
- selection of appropriate back-end enabling technology
- development of effective multimedia file types
- design of an optimal front-end user experience
- identification of hosting needs and responsibilities
These topics influence the web development process in significant ways. As you combine technical coding with an understanding of the contextual factors within your organization, your web development skills will lead you toward more comprehensive, business-related decisions.
Appendix A – Module Resource Library
The resources in this library are organized by module and section.
Module 1: Website Fundamentals
- A brief history of the World Wide Web
- History of the web timeline infographic: Celebrating 30 years of the World Wide Web
- About W3C
- Anatomy of a URL (Video)
- Introducing HTML (Video)
- HTML essential training: what is HTML? (Video)
- Markup language
- HTML basics (Video)
- HTML essential training: the role of HTML (Video)
- HTML tutorial
- HTML and CSS (Video)
- CSS tutorial
- XML formatting (Video)
- Introduction to XML
- XML syntax rules
- HTML vs XML
- HTML element reference
Module 2: Hypertext Markup Language (HTML)
- HTML essential training: the syntax of HTML elements (Video)
- HTML basic examples
- HTML comments
- HTML essential training: bold and italics (Video)
- HTML essential training: code, pre, and br (Video)
- HTML essential training: headlines (Video)
- HTML essential training: paragraphs (Video)
- HTML essential training: links (Video)
- HTML essential training: URL paths (Video)
- HTML essential training: navigation (Video)
- HTML essential training: chapter quiz (Video)
- HTML links
- HTML essential training: lists (Video)
- HTML lists
- HTML essential training: building table rows (Video)
- HTML essential training: when to use tables (Video)
- HTML tables
- HTML block and inline elements
- HTML entities
Module 3: Cascading Style Sheets (CSS)
- CSS syntax and terminology (Video)
- CSS introduction
- CSS values and units (Video)
- Referencing CSS (Video)
- CSS syntax
- Specificity
- Inheritance and specificity (Video)
- The cascade and importance (Video)
- CSS colors (Video)
- The color and property values (Video)
- Project: adding colors (Video)
- Colors RGB
- HTML color names
- HTML color picker
- Understanding text in HTML (Video)
- Project: typography styles (Video)
- Typography for the web (Video)
- Introduction to the box model
- The box model properties
- Introduction to float
- Position
- The float and clear properties
- Project: styling links
- Pseudo-class selectors and links
Module 4: User Input
- CAPTCHA (Video)
- What does CAPTCHA mean
- 10 Most common web security vulnerabilities
- <input>: the input (form input) element
- HTML form basics (Video)
- HTML <input> tag
- HTML input types
- Understanding HTML forms (Video)
- HTML essential training: more on forms (Video)
- HTML essential training: additional form element types (Video)
- What is JavaScript? (Video)
Module 5: Extending HTML5
- Document Object Model (DOM)
- What is the Document Object Model?
- Document Object Model (DOM) (Video)
- Applying DHTML effects (Video)
- AJAX introduction
- Making your forms great (Video)
- Graphical user interface
- APIs in plain English (Video)
- HTML5 APIs (Video)
- What is an API (Video)
- You are here (and so is everyone else)
- What is geocoding?
- Adding a Google map with a marker to your website
- Using the geolocation API
- Does Firefox share my location with websites?
- How geolocation works (Video)
Module 6: Importing Media
- Adding media
- Video and audio content
- HTML essential training: video (Video)
- Information and technical assistance on the Americans with disabilities act
- Accessibility basics
- Image file type and format guide
- HTML essential training: images (Video)
- HTML images
- HTML canvas
- HTML canvas tutorial
- Basic usage of canvas
- The canvas drawing context (Video)
- Canvas API
- CanvasRenderingContext2D.ellipse()
- Basic animations
- CanvasRenderingContext2D
- HTML audio
- Learning web audio and video: specify an audio source (Video)
- Learning web audio and video: specify multiple audio sources (Video)
- Learning web audio and video: specify height and width (Video)
- Learning web audio and video: use a poster image (Video)
- HTML essential training: audio (Video)
Module 7: Industry Standards & Best Practices
- W3C standards
- The 8 different types of websites and how to design them
- HTML <!DOCTYPE> declaration
- HTML style guide and coding conventions
- Organizing your CSS
- Information literacy: copyright and fair use (Video)
- Information literacy: image appropriation (Video)
Module 8: Stages of Website Development
- Waterfall model: what is it and when should you use it?
- SDLC – waterfall model
- Web project manager job description
- 5 eCommerce technology trends that will shape the future
- 9 E-commerce website design tips and best practices in 2020
- Four traditional types of ecommerce business models
- How to deploy a website
- What is website maintenance? [beginner’s guide]
- How to integrate data privacy concerns with web design!
- HTML responsive web design
- Introduction to copyright law (Video)
Module 9: Website Performance
- 7 Common web application performance problems (and how to solve them)
- Web performance optimization (Video)
- 3 top ways to build a website prototype
Module 10: Technology & Strategies
- A brief history of weird scripting languages on the web
- What are scripting languages?
- Compression in HTTP
- Databases 101: SQL vs. NoSQL: which fits your data better?
- Dealing with data (Video)
- Top 5 databases for web developers
- What are databases? (Video)
- Vital things to consider when choosing a database for your app
Module 11: Web Servers
- What is a web server?
- What is web hosting?
- Working with clients and servers (Video)
- What is server virtualization? the ultimate guide
- Outsourcing web hosting support: 6 reasons why it makes sense
Appendix B – HTML Tags
<!-- | comment |
<!DOCTYPE> | defines document type |
<a> | hyperlink |
<aside> | content aside from the page content |
<audio> | embedded sound content |
<b> | bold text |
<body> | web page body text |
<canvas> | draw graphics using JavaScript |
<caption> | table caption |
<div> | section in document |
<dl> | description list |
<dt> | term or name in description list |
<em> | emphasized text |
<footer> | document or section footer |
<form> | HTML form for user input |
<h1>, <h2>, <h3>, <h4>, <h5>, <h6> | HTML headings |
<head> | information for the web page |
<html> | root of HTML document |
<iframe> | inline frame |
<img> | image |
<li> | list item |
<main> | main document content |
<meta> | metadata about an HTML document |
<ol> | ordered list |
<p> | paragraph |
<pre> | preformatted text |
<script> | client-side script |
<section> | section in document |
<span> | section in document |
<strong> | important text |
<style> | style information |
<svg> | SVG graphics |
<table> | defines table |
<tbody> | body content in a table |
<td> | cell in a table |
<textarea> | multiline input control |
<tfoot> | table footer |
<th> | header cell in table |
<thead> | header content in a table |
<title> | web page title |
<tr> | row in table |
<ul> | unordered list |
<var> | variable |
<video> | embedded video content |
For more information about these tags, as well as a list of more HTML tags, refer to the HTML Element Reference document.