Some History
  1. First, there was the Internet.
    1. First Arpanet message 1969.
    2. Evolved into the Internet, production about 1983.
    3. Connected computers around the world.
    4. Interface was purely text based.
    5. No good way to find things:
      1. Searching meant looking at a likely site you happened to know about.
      2. Or asking your friends.
      3. Try ftp ftp.sdf.org and log in as "anonymous" to try it out. (Your computer may have the ftp program, and Sandbox does.)
    6. Does allow publishing and transfer of files, once you find them.
  2. Tim Berners-Lee invented the World-Wide-Web at CERN. including HTML and HTTP
    1. Berners-Lee created HTML to express pages, and HTTP to transfer them over the existing Internet.
    2. Hypertext, the idea of linking related documents, is not new, thought to date from 1945.
    3. Berners-Lee applied this idea to Internet documents to make them more accessible.
    4. His primary purpose was helping the physics researchers at CERN share their work.
    5. The original vision of the web was of static documents, and maybe some images. Much more staid that we have today.
  3. Wild West
    1. The Web was a big hit.
    2. Early text-based browsers.
    3. Mosaic: Early graphical browser, 1992.
    4. Netscape Navigator: first widely-used graphical browser, 1994.
    5. Internet Explorer: Designed to kill Netscape, 1995.
    6. Period known as the browser wars. HTML was expanded rapidly without much reflection.
    7. Different browsers gained different and inconsistent features, making coding difficult.
  4. Standards, darn-it.
    1. HTML-2 1995, IETF RFC 1866. Much ignored.
    2. HTML-3.2 1997, by newly-formed World-Wide Web Consortium (WWWC). Too willing to just include whatever was already there.
    3. HTML-4 1999. Starts to trim the excess.
    4. Firefox 1.0, 2004. Designed to implement standards, and wake up IE which had fallen asleep after killing Netscape.
    5. HTML-5 2008 (finalized 2014).
    6. Current standardization seems to be the “living standard” from the Web Hypertext Application Technology Working Group.
  5. Language and technology changes.
    1. Appearance.
      1. The Berners-Lee original design was for tags to say what the data is for (like <em>; for emphasis), and let the browser decide how to display it.
      2. During the browser wars, HTML grew many tags that say more explicitly how to display, like <i> for italics.
      3. The eventual solution is to invent style sheets to describe appearance, and leave the tags for structure.
      4. Of course, a bunch of physical tags and attributes are still present.
    2. Media: Tags for playing sound and displaying video are added.
    3. Making server-dynamic pages
      1. The original idea was static HTML files delivered from servers.
      2. HTML adopted forms, allowing user input.
      3. Servers adopted dynamic pages to receive, process, and respond to data from the forms.
      4. Dynamic pages run and send output to the browser, rather than send an existing file.
      5. Some web pages use very little static material on the server, instead are generated on demand.
      6. We will study this process in some detail later.
    4. Making client-dynamic pages.
      1. Originally, a web page would be made of HTML. It changes when go to a different page.
      2. Brendan Eich at Netscape created Javascript
        1. Introduced NN 2.0 in 1996.
        2. Javascript code is embedded in the web page.
        3. Javascript runs in the browser and responds immediately to user actions.
        4. Javascript allows mouse clicks and such to update the page without a round trip to the server.
      3. AJAX
        1. Javascript can update the existing page, but only with user input and data it already knows. To display other information requires displaying a new page.
        2. In 2001, Microsoft introduced the ability for Javascript to request a document from the server (IE 5), eventually named XMLHttpRequest.
        3. Allows javascript to update the page with data from the server, avoiding the overhead of a page load and parsing.
        4. This technique now known as AJAX.
      4. Some web pages have very little static code, and are built entirely by Javascript.
    5. The combination of modern HTML, CSS, and Javascript with AJAX, is sometimes called Web 2.0.