Table of Contents

~~SLIDESHOW~~

Fundamentals of Web Applications Technology

Background for Contact Hour 2: To be discussed on Tuesday 31st January, 2012.

Lecturer: Dr Chris P. Jobling.

Setting the scene for the EG-259 Web Applications Technology module.

Fundamentals of Web Applications Technology

Setting the scene for the EG-259 Web Applications Technology module.

The slides used in this lecture are based on:

Contents of this Lecture

Learning Outcomes for this Lecture (1)

At the end of this lecture you should be able to answer this selection of lecture review questions:

Learning Outcomes for this Lecture (2)

At the end of this lecture you should be able to answer this selection of lecture review questions:

History of the Internet (Video)

<html> <object width=“400” height=“225”><param name=“allowfullscreen” value=“true” /><param name=“allowscriptaccess” value=“always” /><param name=“movie” value=“http://vimeo.com/moogaloop.swf?clip_id=2696386&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1” /><embed src=“http://vimeo.com/moogaloop.swf?clip_id=2696386&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1” type=“application/x-shockwave-flash” allowfullscreen=“true” allowscriptaccess=“always” width=“400” height=“225”></embed></object><p><a href=“http://vimeo.com/2696386”>History of the Internet</a> from <a href=“http://vimeo.com/picol”>PICOL</a> on <a href=“http://vimeo.com”>Vimeo</a>.</p> </html>


“History of the Internet” is an animated documentary explaining the inventions from time-sharing to filesharing, from Arpanet to Internet. The history is told using the PICOL icons on picol.org. You can already download a pre-release of all picol icons on blog.picol.org/downloads/icons/.

You can see the credits and more information on this movie on lonja.de/motion/mo_history_internet.html.

Origins of the Internet


Notes

What is the Internet?

Applications and Application-Layer Protocols

Application protocols act peer to peer! Figure (c) Kurose and Ross.


Network applications: some jargon

Application-layer protocol defines

Client-Server Paradigm

Client-server architecture. Figure (c) Kurose and Ross


Processes communicating across network

Processes communicating through sockets. Figure (c) Kurose and Ross


Addressing Processes

—- Notes

Domain names

Form: host-name.domain-names

Fully qualified domain name

DNS servers


Transport Services

What transport service does an application need?


Internet transport protocols services: TCP

Internet transport protocols services: UDP

Origins of the Web

The World Wide Web


Notes

The original purpose of the world-wide web was to allow scientists to have access to many databases of scientific work through their own computers.

Objects? Pages? Documents? Resources? We'll call them documents.

Web or Internet? The Web uses the application protocol, HTTP, that runs on the Internet – there are many others (telnet, ftp, email, etc.)

Web Browsers


Notes

Mosaic was the second browser to use a GUI (the first, a graphical browser that Time Berners-Lee developed at Cern, did not have a wide distribution) and led to explosion of Web use. Initially for X-Windows, under UNIX, but was ported to other platforms by late 1993

Web Servers


Notes

Web Server Configuration


Notes

Modern Web Servers

You are Invited to Update this Page by providing a link to the January 2012 results and updating the tables

Market Share for Top Servers Across All Domains November 1995 - January 2011

Netcraft Server Share Statistics


January 2011 Data

Data from Netcraft Server Share Statistics (Netcraft Survey January 2011)

Developer December 2010 Percent January 2011 Percent Change Last Year (August 2009)
Apache 151,516,152 59.35% 161,591,445 59.13% -0.23 46.30%
Microsoft 56,723,544 22.22% 57,392,351 21.00% -1.22 21.94%
nginx 16,910,205 6.62% 20,504,634 7.50% 0.88 5.09%
Google 14,933,865 5.85% 15,112,532 5.53% -0.32 6.29%
lighttpd 1,308,935 0.51% 1,866,872 0.68% 0.17 0.90%

September 2009 Data

Data from Netcraft Server Share Statistics (Netcraft Survey August 2009)

Developer July 2009 Percent August 2009 Percent Change Last Year
Apache 113,019,868 47.17% 104,611,555 46.30% -0.87 49.82%
Microsoft 55,918,254 23.34% 49,579,507 21.94% -1.39 34.88%
qq.com 30,447,369 12.71% 30,278,988 13.40% 0.69
Google 14,226,904 5.94% 14,213,976 6.29% 0.35 5.94%
nginx 10,174,573 4.25% 11,502,109 5.09% 0.84
lighttpd 2,942,469 0.55% 2,025,521 0.90% 0.34 1.65%

September 2008 Data

Data from Netcraft Server Share Statistics (Netcraft Survey August 2008)

Developer July 2008 Percent August 2008 Percent Change Last Year
Apache 86,845,154 49.49% 88,047,801 49.82% 0.33 50.48%
Microsoft 62,411,537 35.57% 61,646,837 34.88% -0.69 34.94%
Google 10,001,763 5.70% 10,502,299 5.94% 0.24 4.90%
lighttpd 2,942,469 1.68% 2,914,867 1.65% -0.03 1.12%

September 2007 Data

Data from Netcraft Server Share Statistics (September 2007)

Developer August 2007 Percent September 2007 Percent Change Last Year
Apache 65,153,417 50.96% 68,228,561 50.48% -0.49 65.52%
Microsoft 43,861,854 34.31% 47,232,300 34.94% 0.63 30.13%
Google 5,702,456 4.46% 6,616,713 4.90% 0.43 -
Sun 2,195,495 1.72% 2,212,821 1.64% -0.08 0.37%
lighttpd 1,500,126 1.17% 1,515,963 1.12% -0.05 -

A lot of the change would appear to be due to the growth of blogging and community web sites such as Microsoft Live Spaces. Google used to host the Blogger service on Apache web servers, it now uses its own server. Live Spaces is hosted on the Microsoft's IIS. Google and Microsoft are also busy competing in the ISP space which is fueling a general growth in the number of web sites.

September 2006 Data

Data from Server Share Statistics (September 2006)

Server August 2006 Percent September 2006 Percent Change 2005
Apache 57,906,817 62.52 59,699,872 61.64 -0.88 69.15%
Microsoft 27,905,439 30.13 30,272,249 31.26 -1.13 20.36%
Zeus 521,619 0.56 515,670 0.53 -0.03 0.82%
Sun 344,862 0.37 345,834 0.36 -0.01 2.61%

Some Important Web Servers


Notes

Introducing the Apache Web Server

Still the most popular web server in use today


Notes

The Apache Web Server


Apache configuration is usually done by editing configuration files with a text editor

Uniform Resource Identifier (URI)

Scheme

Object-address

URI Object Address


Notes

Multipurpose Internet Mail Extensions (MIME)


Notes

The Hyper Text Transfer Protocol

The protocol used by ALL web communications

HTTP Request and Response. Figure (c) Kurose and Ross.


Key Facts about HTTP


Details

Response Time Modeling

Response Time Modelling. Figure (c) Kurose and Ross


Calculation of Response Time

HTTP Request Phase

HTTP method domain part of URL HTTP version

  Header fields
  blank line
  Message body

GET /ugcourses/ HTTP/1.1


Notes

Most commonly used request methods:

Note that although servers support all these requests, browsers only issue GET and PUT. This has implications for so-called RESTful web applications which we will explore in a later lecture.

Four categories of header fields: General, request, response and entity.

Accept: text/plain

     Accept: text/*
     If-Modified-Since: date
    telnet www.swan.ac.uk http
    GET /ugcourses/ HTTP/1.1
    Host: www.swan.ac.uk<Return>
    <Return>

HTTP Response Phase

  Status line
  Response header fields
  blank line
  Response body
  HTTP version   status code   explanation
  HTTP/1.1  200  OK

Notes

    1 => Informational
    2 => Success
    3 => Redirection
    4 => Client error
    5 => Server error
   Content-length: 488
   Content-type: text/html
   HTTP/1.1  200  OK
   Date: Tues, 18 May 2004 16:45:13 GMT
   Server: Apache (Red-Hat/Linux)
   Last-modified: Tues, 18 May 2004 16:38:38 GMT
   Etag: "841fb-4b-3d1a0179"
   Accept-ranges: bytes
   Content-length: 364
   Connection: close
   Content-type: text/html, charset=ISO-8859-1

Web Programming

Concerned with three “layers” of the current web standards stack

The Structural Layer

HTML


Notes

XML

The Presentation Layer


Notes

CSS Level 1 has been a Recommendation since 1996 and is now fully supported by current browsers. Level 1 contains rules that control the display of text, margins and borders.

CSS Level 2 is best known for the addition of absolute positioning of web page elements. Level 2 reached Recommendation status in 1998, and the 2.1 revision is currently a Candidate Recommendation. Support for CSS 2.1 is inconsistent in current browsers.

CSS Level 3 builds on level 2 but is modularized to make future expansion simpler and to allow different devices to support logical subsets. This version is still in development but browsers are gradually supporting more and more of the standard, often with the use of browser-specific attributes.

The Behavioural Layer

Document Object Models


Notes

Scripting in JavaScript


Notes

Netscape introduced its web scripting language, JavaScript, with its Navigator 2.0 browser. It was originally called “LiveScript” but was later co-branded by Sun, and “Java” was added to the name. Microsoft countered with its own JScript while supporting some level of JavaScript in its Version 3.0 browser. The need for a cross-browser standard was clear!

The W3C is developing a standardized version of JavaScript in coordination with ECMA International, an international industry association dedicated to the standardization of information and communication systems. According to the Mozilla site, Netscape's JavaScript is a superset of the ECMAScript standard scripting language, with only mild differences from the published standard. In general practice, most developers simply refer to “JavaScript” and the standard implementation is implied.

Java

Perl


Perl is useful general purpose system administrator's tool. In fact that was Larry Wall's intention, when he originally developed the language. It can be used to manage server configuration and server logs. In many ways it is the ultimate shell programming tool with the advantage that it works on systems other than Unix!

PHP

Ruby on Rails

Summary of this Lecture

Learning Outcomes for this Lecture (1)

At the end of this session you should be able to answer this selection of review questions:

Learning Outcomes for this Lecture (2)

At the end of this lecture you should be able to answer this selection of lecture review questions:

After writing up your notes for this lecture, you also should be able to answer all the Review Questions. You should also try the Homework Exercises.

What's Next?

The Structural and Presentation Layers

Revision

New material

Previous session | Set up your web development toolkit | Home | Next session