What is a Web Server? What is API? What is a Markup Language?

Notes from The Missing Link: An Introduction to Web Development and Programming. Document can be downloaded from here freely, free as in "free beer".

Web Servers

The diagram below represents the basic elements of a Web Server. Hardware, an Operating System, and an HTTP Server comprise the bare necessities. The addition of a database and scripting language extend a server’s capabilities and are utilized in most servers as well.



A typical Web Server today contains four elements in addition to the physical hardware. These are the operating system, web server, a database and a scripting language.

All that is ultimately required to convey static pages to an end user are the Operating System and an HTTP server.

Your Operating System is what allows you to interact with the applications and hardware that make up your computer. It facilitates resource allocation to your applications, and communication between hardware and software.

HTTP Server - Apache

The Apache HTTP Server ("httpd")  is an open source Web Server originally developed for UNIX systems. The user group around Apache developed The Apache Foundation, which maintains a library of solutions for web services. Apache and other HTTP servers allow us to share our webpages, scripts, and files with our end users.


Configuration Files
Configuration Files are typically a plain text format file with one setting on each line with comments near each value describing the setting’s use. These files will also use the same commenting delimiter for their notes to enable or disable individual settings. Typically the delimiter used is a semi colon ; or pound sign #.

Application Programming Interface

Commonly referred to as APIs, pronounced as the letters of the acronym, Application Programming Interfaces allow us to interact with features and data of a system other than its primary means, whether it is an application or website. Created to address needs of data exchange and integration between systems, APIs provide a controlled method of allowing others to use a system without having direct, unfettered access to the code or database it runs on. Examples of APIs in action are maps on non-google website that are fed from Google Maps with markers, that highlight paths and routes, automate directions, or outline places of interest. All of this is done from within their site or system without you leaving to interact with Google.

Web-based APIs are, essentially, limited websites. They allow the pages and scripts end users create to communicate with the data source by using a predetermined vocabulary and fixed amount of options. When the user’s message reaches the API, the API completes the requested task such as getting a certain piece of data, or validating credentials, and returns the results, hiding anything the developers do not want revealed, and only provides the features they are comfortable with others using. The result is that end users are free (within the limits of the API) to create their own systems exactly as they want, interfacing with their own systems, or creating all new systems the developers of the API had not thought of or decided not to pursue. APIs can cut down on the development time of your own system as you can use them to support your project, like our example of embedding Google Maps instead of creating or installing a map system.

APIs are often included as part of a software development kit (SDK) that includes the API, programming tools, and documentation to assist developers in creating applications.

Markup Languages

Document Markup is a notation method that defines how particular pieces of information are meant to be formatted.

The XML specification defines how to write a document in XML format.

In HTML and XHTML these tags are fixed, or predefined, meaning the names that can be used in the tags are limited to what browsers are able to recognize.

In XML, tags are defined by the person creating the content as they are typically used in conjunction with data sources and provide information.

Is XML itself a Markup Language? I do not know.

HTML and Document Type
HyperText Markup Language is used to aid in the publication of web pages by providing a structure that defines elements like tables, forms, lists and headings, and identifies where different portions of our content begin and end.

Every HTML page we create should declare its document type (doctype) in the first line. This will identify which spec of HTML is included so the browser knows how to interpret the tags within. Earlier version of the HTML specifcations used two defnitions for HTML: HTML 4.01 and XHTML. Both of these contained two additional properties of strict and transitional.

With HTML5, much of this has been eliminated, leaving one general doctype declaration of <!DOCTYPE html>. This should be the first line of code in any HTML page you create.

In older versions of HTML one of the differences between document types was how we closed single tag elements. HTML, for example, wanted a break written as <br> while an XHTML document wanted <br/>. HMTL5 will recognize either of these.