Version 0.1 - 0.2
Copyright © 2010 - 2013
Table of Contents
In a web server architecture you have a web client (browser) taking to a web server.
A web server takes a client request, process the request and send the result back to the client. The web server may return a HTML page, a picture or an error message.
Web server and web client communicate over a protocol usually the HTTP protocol.
Popular web servers are the Apache HTTP web server.
A web client issues requests (via the user) to the web server and displays (renders) the result. A web client is typically a browser, e.g. Firefox.
HTML is a markup language which contains content and describes the structure how this content will be displayed. The current version of HTML is HTML5 (which is still work in process). The article explains how to develop HTML5 pages.
HTTP (HyperText Transfer Protocol) is the protocol usually used for the communication between web server and web client. HTTP is based on TCP/IP. TCP is responsible for making sure that a file is received as a whole and IP is responsible for moving the individual data packages between within the network.
A HTTP conversion follow a Request / Response sequence. The web client issues a request to the web server and the web server responses to this request.
The HTTP request support methods, e.g. HEAD, GET, PUT, DELETE etc. Via these methods the web client indicates what the web server should do. For example the method GET indicates that the web client would like to receive a resource, e.g. file from the web server without any modification. The PUT method indicates that the web server should change something.
The HTTP response consists of a response header, and a response body. The HTTP header contains the status of the response, e.g. Ok and indicates what type of data is included in the body. The type of data is also called "Content-Type" or "MIME-type". For example the "Content-Type: text/htmL" indicates that the response body contains text or HTML.
A resource in the web (and on the web server) can get identified via the URL. A URL is what is usually displayed in the browser, e.g. http://www.vogella.com is a URL.
A URL consists of the following parts:
protocol:server:[port:][path][resource] For example: http://www.vogella.com:80/articles/HTML/article.html protocol: http:// server: www.vogella.com [port:] 80 (optional) path: articles/HTML/ resource: article.html
A DNS server is responsible for identifying resources in the Internet based on domain names. The provide which hosts and URL can specify which DNS server should be used and if someone requests a resource with this URL, the name server is contacted to which IP address the domain belongs.
To check which entries for a certain domain name is returned, you can use the
digg command on the command line. f
# return the IP address of vogella.com from the named nameserver dig @robotns3.second-ns.com vogella.com
This tutorial is Open Content under the CC BY-NC-SA 3.0 DE license. Source code in this tutorial is distributed under the Eclipse Public License. See the vogella License page for details on the terms of reuse.
Writing and updating these tutorials is a lot of work. If this free community service was helpful, you can support the cause by giving a tip as well as reporting typos and factual errors.
Please consider a contribution if this article helped you. It will help to maintain our content and our Open Source activities.
If you find errors in this tutorial, please notify me (see the top of the page). Please note that due to the high volume of feedback I receive, I cannot answer questions to your implementation. Ensure you have read the vogella FAQ as I don't respond to questions already answered there.
http://de.selfhtml.org/ Selfhtml - German
http://www.whatwg.org/specs/web-apps/current-work/ HTML5 Specification
http://www.ibm.com/developerworks/library/x-html5/ IBM developer works article about HTML5 from Elliotte Rusty Harold
http://html5demos.com/ HTML5 demos
http://eclipse-info.blogspot.com/2010/01/new-web-of-life-html-5.html Blog about HTML5 and Eclipse
http://validator.w3.org Checkpage of the WWW Consortium
http://htmlhelp.com/tools/valet Check is links are valid