SlideShare una empresa de Scribd logo
1 de 33
Unit 2: Web Technologies (1/2)
 Core
       Web browsers and web servers
       URIs
       HTTP

 Client-Side
       Basic: HTML, CSS
       Advanced: JavaScript, DOM, AJAX, XForms, RIA

 Server-Side technologies for Web Applications
       CGI
       PHP
       Java Servlets
       JavaServer Pages (JSPs)




dsbw 2008/2009 2q                                      1
World Wide Web
 “The World Wide Web (known as quot;WWW', quot;Webquot; or quot;W3quot;) is the
     universe of network-accessible information, the embodiment of
     human knowledge” (W3C)
 The Web was created in 1989 by Tim Berners-Lee and Robert
     Cailliau working at the European Organization for Nuclear Research
     (CERN) in Geneva.
 WWW is a technological platform build on Internet that
     encompasses components, protocols, applications, resources, ...
         Web servers
         Web browsers
         Uniform Resource Identifier (URI)
         Hypertext Transfer Protocol (HTTP)
         Hypertext Markup Language (HTML)
         Search engines
         Gateways to access non-web resources

dsbw 2008/2009 2q                                                      2
World Wide Web: Typical Interaction

     http://www.upc.edu


        Universitat Politècnica de Catalunya

                                       1



                                                                              4
                                                                                   index.html
                                                              WEB SERVER
                 BROWSER
                                                3
            2                              GET /index.html
       FTP      DNS … HTTP                                   HTTP         …
                     TCP                                            TCP            port 80
                                                     5
                                                                                  147.83.194.21
                      IP                                            IP


                                           Physical Net


dsbw 2008/2009 2q                                                                               3
The Universal Client: The Web Browser
 Web Browsers provide an –usually graphical- interface to obtain,
     interpret, format and render HTML documents (pages).
 HTML documents usually have links, hyperlinks, to other documents

 Each link is encoded through an URI (Uniform Resource Identifier)

 HTML documents may contain images, audio files, etc that are also
     referred through URIs and that are rendered jointly by the browser.
 Other features:
         Cache, bookmarks, printing, off-line operation, …
         Client-side scripting support: JavaScript/ VBscript
         RIA support
         Helper Applications
         Plug-ins



dsbw 2008/2009 2q                                                      4
The Web Server
 Web Servers “listen to” a TCP port -usually 80- waiting for a client
     (web browser) to initiate a connection.
 Once the connection is established, the web browser sends a
     request and the web server returns a response. Then the
     connection is released
 HTTP is the protocol that defines such a request/response
     communication
 Initially, requests were about “static” resources -HTML documents,
     binary pictures, etc- stored in files reachable by the web server.
 Other features:
         Logging
         Server-side scripting: CGI, FastCGI, SSI, ASP.NET, Java Web
          Containers, PHP, etc.



dsbw 2008/2009 2q                                                         5
Uniform Resource Identifier (URI)
 “The Web is an information space. Human beings have a lot of
     mental machinery for manipulating, imagining, and finding their way
     in spaces. URIs are the points in that space” (W3C)
 A URI is a compact sequence of characters that identifies an
    abstract or physical resource. Its generic syntax defines four parts:
   <scheme name> : <hierarchical part> [ ? <query> ] [ # <fragment> ]
 Example:
      http://user:pass@example.com:992/animal/bird?species=seagull#wings

                    login          host      port

                            authority               path

      scheme                  hierarchical part            query   fragment




dsbw 2008/2009 2q                                                           6
URLs, URNs and IRIs
 A quot;Uniform Resource Locatorquot; (URL) is a URI that, in addition to
     identifying a resource, provide a mean for locating the resource by
     describing its primary access mechanism. Examples:
             ftp://ftp.is.co.za/rfc/rfc1808.txt
             ldap://[2001:db8::7]/c=GB?objectClass?one
             mailto:John.Doe@example.com
             ed2k://|file|Jim%20Conallen%20-%20Building%20Web%20Applicatio
                ns%20with%20UML%202nd%20Ed.chm|6685541|74112A8EDD20
                B521B4BCB052D0416FE7|/
 A quot;Uniform Resource Namequot; (URN) refers to a URI under the quot;urnquot;
     scheme (e.g urn:isbn:1892295490) or to any other URI with the
     properties of a name
 The Internationalized Resource Identifier (IRI) is a URI that may
     contain characters from the Universal Character Set (Unicode/ISO
     10646)

dsbw 2008/2009 2q                                                          7
HyperText Transfer Protocol (HTTP)
 HTTP is the transfer protocol used throughout the Web: It specifies
     what messages web browsers may send to servers and what
     responses they get back in return.
 Typical interaction (HTTP/1.0 or lower):
       Web browser establishes a TCP/IP connection with the target Web
        server
       Web browser sends a HTTP ASCII request over the TCP/IP
        connection.
       Web server returns a HTTP MIME-like response and releases the
        TCP/IP connection
 HTTP/1.1 improvements:
       Persistent connections: several request/response interactions in a
        single connection.
       Request pipelining: multiple HTTP requests are sent without waiting for
        the corresponding responses.


dsbw 2008/2009 2q                                                             8
The HTTP Request
      <METHOD> <Resource_Path> <HTTP_Version> <CR> // Request
      ( <Attribute>: <Value> <CR> )*             // Parameters
      <CR>                                       // Blank line
      [Body]                                     // If needed


 METHOD := GET | POST | HEAD | …


 Example:
      GET /index.html HTTP/1.1
      Host: www.fib.upc.edu                // Compulsory if HTTP/1.1




dsbw 2008/2009 2q                                                 9
The HTTP Response
      <HTTP_Version> <Result_Code> [explanation] <CR>
      ( <Attribute>: <Value> <CR> )*
      <CR>
      [Body]
 Result_Code := 200 [OK] | 400 [Bad Request] | 404 [Not found] | …

 Example:
      HTTP/1.1 200 OK
      Date: Wed, 11 Feb 2009 11:46:12 GMT
      Server: Apache/2.0.52 (Red Hat)
      Last-Modified: Fri, 01 Aug 2008 08:57:22 GMT
      Etag: quot;2d6c509-31b-2d7e6080“
      Accept-Ranges: bytes
      Content-Length: 795
      Content-Type: text/html; charset=ISO-8859-1
      <HTML>… </HTML>

dsbw 2008/2009 2q                                                 10
HTTP: Two Important Remarks
 HTTP is stateless:
         The Web Server handles each HTTP request independently and there
          is no easy way to keep track of each client request and to associate it
          with a previous one.
         However, managing state is important for many applications: a single
          use case scenario often involves navigating through a number of Web
          pages. Without a state management mechanism, you would have to
          continually supply all previous information entered for each new Web
          page.


 HTTP is one-way:
         Clearly separated roles: Clients -Web browsers- make requests to -
          Web- Servers, no vice versa.




dsbw 2008/2009 2q                                                               11
HyperText Markup Language (HTML)
 HTML is the main publishing language of the Web.

 HTML is based on SGML (Standard Generalized Markup Language,
     ISO 8879)
 HTML Document = Content (mostly text) + Markup

 HTML Markup allows to define
         How content must be structured
         How to render each piece of structured content
         Links to other HTML documents
         Embedded objects: images, audio, video, forms, scripts, applets, …
 Markup is performed using tags:
      <TAG (ATRIBUTE=VALUE)*> Content </TAG>




dsbw 2008/2009 2q                                                              12
HTMLs
 Despite an strong effort for standardization …
         Hypertext Markup Language (First Version), published as an Internet
          Engineering Task Force (IETF) working draft (June 1993).
         HTML 2.0, IETF RFC 1866 November (1995)
         HTML 3.2, W3C Recommendation (January 1997)
         HTML 4.0, W3C Recommendation (December 1997)
         HTML 4.01, W3C Recommendation (December 1999)
         ISO/IEC 15445:2000, based on HTML 4.01 Strict (May 2000)
         XHTML 1.0, W3C Recommendation (Published January 2000, revised
          August 2002)
         XHTML 1.1, W3C Recommendation (May 2001)
         XHTML 2.0, W3C Working Draft (July 2006)
         (X)HTML 5.0 W3C Working Draft (February 2009)
 … HTML programmers are constantly faced with the problem of
     using HTML features that are not supported consistently, if at all,
     across all the target browser platforms.
dsbw 2008/2009 2q                                                           13
HTML Forms




dsbw 2008/2009 2q   14
HTML Forms: Processing




dsbw 2008/2009 2q        15
Cascading Style Sheets (CSS)
 Some HTML markup already defines how to render the affected
     content …
 … however, CSS is preferable because:
         provide more flexibility and control in the specification of presentational
          characteristics.
         enable a clean separation of document content from document
          presentation.
         allow the reuse of a same style sheet in different HTML documents:
          shared look and feel.
 Cascading here refers to a priority scheme to determine which style
     rules apply if more than one rule matches against a particular
     element. (≈ polymorphism rules in OO generalization hierarchies).




dsbw 2008/2009 2q                                                                  16
CSS: Ways of Use (1/2)
 Inline
     <h1 style=quot;color: red;quot;>CSS test</h1>
     <p style=quot;font-size: 12pt; font-family: Verdana, sans-
     serifquot;>This a test to show the different ways of using
     <em style=quot;color: green;quot;>Cascading Style
     Sheets</em>.</p>

 Embedded
     <html>
     <head>
     <STYLE TYPE=quot;text/cssquot;>
     H1 { color: red}
     P { font-size: 12pt; font-family: Verdana, sans-serif;}
     EM { color: green}
     </STYLE>
     </head>
     <body>
     </body>
     </html>
dsbw 2008/2009 2q                                             17
CSS: Ways of Use(2/2)
 Linked
      <html>
      <head>
      <LINK REL=quot;STYLESHEETquot; HREF=quot;prova.cssquot;
        TYPE=quot;text/cssquot;>
      </head>

 Imported
      <html>
      <head>
      <STYLE>
      @import url(http://localhost/prova.css);
      @import url(prova2.css);
      </STYLE>
      </head>



dsbw 2008/2009 2q                                18
JavaScript
 JavaScript is an interpreted programming language that allows to
     embed executable code -scripts- into a HTML document.
 Such scripts are executed by the web browser when rendering the
     HTML document.
 JavaScript is a “light” version of Java:
         Type control is not strong.
         There are “objects”, but programmers cannot define their own classes.




dsbw 2008/2009 2q                                                             19
JavaScript: What Can It Do?
 Put dynamic text into an HTML page

 Interact with the web browser: open new windows, show alerts,
     redirect to another URI, etc.
 Read and write HTML elements (e.g. form fields)

 Validate form data

 Handle events : onClick, onLoad, onMouseOver, onMouseOut,
     onSubmit, etc.
 Create/read/write cookies
         Cookie: information sent by a server to a web browser and then sent
          back unchanged by the browser each time it accesses that server.
          Cookies are used for authenticating, tracking, and keeping data about
          users.
 Interact with applets


dsbw 2008/2009 2q                                                             20
JavaScript: Example
 <html><head><title>La Data d’avui</title>
   <script language=quot;JavaScriptquot;>
     function print_todays_date()
     {   today = new Date();
         days_ca = new Array(quot;Diumengequot;, quot;Dillunsquot;, quot;Dimartsquot;,
                quot;Dimecresquot;, quot;Dijousquot;, quot;Divendresquot;, quot;Dissabtequot;);
         months_ca = new Array(quot;generquot;, quot;febrerquot;, quot;marçquot;, quot;abrilquot;,
                quot;maigquot;, quot;junyquot;, quot;juliolquot;, quot;agostquot;, quot;setembrequot;,
                quot;octubrequot;, quot;novembrequot;, quot;desembrequot;);
         document.write(days_ca[today.getDay()]+quot;, quot;);
         document.write(today.getDate()+quot; de quot;);
         document.write(months_ca[today.getMonth()]+quot; de quot;);
         document.write(today.getFullYear());}
     </script></head>
 <body>
 <hr>La data d’avui &eacute;s:<br><b>
 <script language=quot;JavaScriptquot;> print_todays_date(); </script>
 </b><hr></body></html>




dsbw 2008/2009 2q                                              21
Document Object Model / DHTML
 DOM “is a platform- and language-neutral interface that will allow
     programs and scripts to dynamically access and update the content,
     structure and style of documents. The document can be further
     processed and the results of that processing can be incorporated
     back into the presented page”. (W3C)
 HTML/XML documents and their inner elements are handled as
     objects with data and behavior (operations). The whole structure is
     represented -and accessed- as a object tree.
 Dynamic HTML (DHTML): “is a term used by some vendors to
     describe the combination of HTML, style sheets and scripts that
     allows documents to be animated” (W3C).
         Examples: www.w3schools.com/dhtml/




dsbw 2008/2009 2q                                                      22
DOM: Object tree




dsbw 2008/2009 2q   23
AJAX
 Asynchronous JavaScript And XML

 It is indeed a “mix” of – previous – technologies:

          standards-based presentation using (X)HTML and CSS;
      

          dynamic display and interaction using DOM;
      

          data interchange and manipulation using XML and XSLT;
      

          asynchronous data retrieval using XMLHttpRequest;
      

          and JavaScript binding everything together.
      




dsbw 2008/2009 2q                                                 24
AJAX: before and after
                    before                                 after
                                         
     The browser sends a request to           User interaction with the current
     the server whenever the user             page displayed by the browser
     selects a link or fills a form.          triggers presentation events
                                         
     The web browser remains idle             Event handlers may perform
     while the server is processing the       asynchronous calls to the server
     request and building the                 to request new/updated data.
     response.
                                             Such calls are sent to and
    The response – a whole HTML              processed by the server without
     page – is completely build on the        end users noticing it. The web
     server side.                             browser is not idle
                                             Server response is minimal (not a
                                              whole HTML page)
                                             The new data is incorporated
                                              dynamically on the current page
                                              with JavaScript + DOM (DHTML)
dsbw 2008/2009 2q                                                                 25
AJAX: Example

                                                                           Server Script: /validate
                                         _ajax.send()
                                                                                 Get parameters…do some work
       XMLHttpRequest                                                            Return something…
                                                                                     a text message
                                                                                     an XML document
                                                                                     an HTML snippet
      function doResp() {
                                                                                     a javascript method
        if _ajax.readyState == 4 and
                                                                                     whatever you want…
          _ajax.status != 200 {
        div=document.getElementById(‘status’)
        div.innerHTML = _ajax.responseText;

                                                         Message
                                                        status=999
            onChange event:
                                                    msg=Not a valid name
            _ajax = new XMLHTTPRequest();
            _ajax.onreadystatechange = doResp;
            url = ‘./validate?field=’
               +this.name+‘&value=’+this.value;
            _ajax.open(‘GET’, url, true )

                                                                                       Database
                    Manolito     Not a valid name
        Name:


                    Web Browser                                                      Web Server

dsbw 2008/2009 2q                                                                                       26
AJAX: uses
 Auto-complete
          Full words are suggested as the user types the first letters
      

 Progress bar

          To show the status of the “work in progress” in the server side
      

 “Real-time” validation of forms

          Without needing to fill all the form fields
      

 Updating the information displayed on the current page

          Without “refresh”
      

 Rich Internet Applications (RIA)




dsbw 2008/2009 2q                                                           27
AJAX: Some considerations
 The XMLHttpRequest object only can make requests to the same
     server that provided the web page
 AJAX Programming “from scratch” is not advised.

 Unexpected results when pressing the Back and Refresh buttons of
     the browser.
 Downloading time takes longer as AJAX-enabled pages require
     larger amounts of code.
 Debugging gets harder as code is executed in both browser and
     server sides
 AJAX code is visible, prone to be copied and hacked.

 Servers may get overloaded for abuse of asynchronous calls.

 Mature technology?



dsbw 2008/2009 2q                                                 28
XForms
 XForms is the next generation of HTML forms and will be the forms
     standard in XHTML 2.0
 Current Status:
         XForms 1.0 (Third Edition, W3C Recommendation 29 October 2007)
         XForms 1.1 (W3C Candidate Recommendation 29 November 2007)
 XForms separates data and logic from presentation

 XForms uses XML to define, store and transport form data




dsbw 2008/2009 2q                                                          29
Xforms lets you
 Check data values while the user is typing them in

 Indicate that certain fields are required.

 Integrate with Web services.

 Submit the same form to different servers.

 Save and restore values to and from a file.

 Use the result of a submit as input to a further form.

 Get the initial data for a form from an external document.

 Calculate submitted values from other values.

 Constrain values in certain ways, such as requiring them to be in a
     certain range.
 Build 'shopping basket' and 'wizard' style forms without needing to
     resort to scripting.

dsbw 2008/2009 2q                                                       30
Rich Internet Applications (RIA)
 RIA are Web applications that have the features and functionality of
     traditional desktop applications, by executing most of their - rich -
     user interfaces on the client side.
 Indeed, the RIA paradigm is a new version of the Remote User
     Interface pattern for Client/Server architectures
 RIAs typically:
         run in a Web browser with/without extra software installation
         run locally in a secure environment called a sandbox
 “First generation” RIA platforms:
         Java Applets, (Microsoft) ActiveX Controls, (Macromedia) Flash
 “Second generation” RIA platforms:
         AJAX (frameworks), Adobe Flex/AIR, JavaFX, (Microsoft) Silverlight,
          OpenLaszlo, …


dsbw 2008/2009 2q                                                               31
Java Applets: Example
 <html>
 <head>
 <title>TicTacToe v1.1</title>
 </head>
 <body>
 <center>
 <h1>TicTacToe v1.1</h1>
 <hr>
 <OBJECT
    codetype=quot;application/javaquot;

    classid=quot;java:TicTacToe.clas
    squot; width=120 height=120>
 </OBJECT>
 </center>
 </body>
 </html>




dsbw 2008/2009 2q                  32
References
 SHKLAR, Leon et al. Web Application Architecture: Principles,
     Protocols and Practices, John Wiley & Sons, 2003.
 www.w3c.org

 www.w3schools.com

 http://www-128.ibm.com/developerworks/




dsbw 2008/2009 2q                                                 33

Más contenido relacionado

La actualidad más candente

Meetup Tech Talk on Web Performance
Meetup Tech Talk on Web PerformanceMeetup Tech Talk on Web Performance
Meetup Tech Talk on Web PerformanceJean Tunis
 
CreateHTTPRequestPipelineASPNetCore
CreateHTTPRequestPipelineASPNetCoreCreateHTTPRequestPipelineASPNetCore
CreateHTTPRequestPipelineASPNetCoreNeal Pandey
 
Introduction to the World Wide Web
Introduction to the World Wide WebIntroduction to the World Wide Web
Introduction to the World Wide WebAbdalla Mahmoud
 
Introduction to AtomPub Web Services
Introduction to AtomPub Web ServicesIntroduction to AtomPub Web Services
Introduction to AtomPub Web ServicesBen Ramsey
 
Service Oriented Integration With ServiceMix
Service Oriented Integration With ServiceMixService Oriented Integration With ServiceMix
Service Oriented Integration With ServiceMixBruce Snyder
 
Rails Girls - Introduction to HTML & CSS
Rails Girls - Introduction to HTML & CSSRails Girls - Introduction to HTML & CSS
Rails Girls - Introduction to HTML & CSSTimo Herttua
 
Peculiarities of web interfaces for resource constrained embedded systems / B...
Peculiarities of web interfaces for resource constrained embedded systems / B...Peculiarities of web interfaces for resource constrained embedded systems / B...
Peculiarities of web interfaces for resource constrained embedded systems / B...egniteembedded
 

La actualidad más candente (13)

Rest Vs Soap Yawn2289
Rest Vs Soap Yawn2289Rest Vs Soap Yawn2289
Rest Vs Soap Yawn2289
 
Meetup Tech Talk on Web Performance
Meetup Tech Talk on Web PerformanceMeetup Tech Talk on Web Performance
Meetup Tech Talk on Web Performance
 
CreateHTTPRequestPipelineASPNetCore
CreateHTTPRequestPipelineASPNetCoreCreateHTTPRequestPipelineASPNetCore
CreateHTTPRequestPipelineASPNetCore
 
ICT project
ICT projectICT project
ICT project
 
Introduction to the World Wide Web
Introduction to the World Wide WebIntroduction to the World Wide Web
Introduction to the World Wide Web
 
Basics of the Web Platform
Basics of the Web PlatformBasics of the Web Platform
Basics of the Web Platform
 
Introduction to AtomPub Web Services
Introduction to AtomPub Web ServicesIntroduction to AtomPub Web Services
Introduction to AtomPub Web Services
 
Kaazing
KaazingKaazing
Kaazing
 
spdy
spdyspdy
spdy
 
Service Oriented Integration With ServiceMix
Service Oriented Integration With ServiceMixService Oriented Integration With ServiceMix
Service Oriented Integration With ServiceMix
 
Rails Girls - Introduction to HTML & CSS
Rails Girls - Introduction to HTML & CSSRails Girls - Introduction to HTML & CSS
Rails Girls - Introduction to HTML & CSS
 
REST in Practice
REST in PracticeREST in Practice
REST in Practice
 
Peculiarities of web interfaces for resource constrained embedded systems / B...
Peculiarities of web interfaces for resource constrained embedded systems / B...Peculiarities of web interfaces for resource constrained embedded systems / B...
Peculiarities of web interfaces for resource constrained embedded systems / B...
 

Destacado

Web Usability (Slideshare Version)
Web Usability (Slideshare Version)Web Usability (Slideshare Version)
Web Usability (Slideshare Version)Carles Farré
 
[DSBW Spring 2009] Unit 09: Web Testing
[DSBW Spring 2009] Unit 09: Web Testing[DSBW Spring 2009] Unit 09: Web Testing
[DSBW Spring 2009] Unit 09: Web TestingCarles Farré
 
2013 Local Search Rankings Las Vegas Michael Dorausch
2013 Local Search Rankings Las Vegas Michael Dorausch2013 Local Search Rankings Las Vegas Michael Dorausch
2013 Local Search Rankings Las Vegas Michael DorauschMichael Dorausch
 
[DSBW Spring 2009] Unit 08: WebApp Security
[DSBW Spring 2009] Unit 08: WebApp Security[DSBW Spring 2009] Unit 08: WebApp Security
[DSBW Spring 2009] Unit 08: WebApp SecurityCarles Farré
 
Local Search Mobile Las Vegas Michael Dorausch Pubcon
Local Search Mobile Las Vegas Michael Dorausch PubconLocal Search Mobile Las Vegas Michael Dorausch Pubcon
Local Search Mobile Las Vegas Michael Dorausch PubconMichael Dorausch
 
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (2/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (2/3)[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (2/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (2/3)Carles Farré
 
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)Carles Farré
 
Нетрадиційні форми виховної роботи в 5 класі як
Нетрадиційні форми виховної роботи в 5 класі якНетрадиційні форми виховної роботи в 5 класі як
Нетрадиційні форми виховної роботи в 5 класі якlydashok
 
здоровьесберегающие технологи на уроках спо в школе для детей с проблемами зр...
здоровьесберегающие технологи на уроках спо в школе для детей с проблемами зр...здоровьесберегающие технологи на уроках спо в школе для детей с проблемами зр...
здоровьесберегающие технологи на уроках спо в школе для детей с проблемами зр...lydashok
 
DSBW Final Exam (Spring Sementer 2010)
DSBW Final Exam (Spring Sementer 2010)DSBW Final Exam (Spring Sementer 2010)
DSBW Final Exam (Spring Sementer 2010)Carles Farré
 
[DSBW Spring 2009] Unit 02: Web Technologies (2/2)
[DSBW Spring 2009] Unit 02: Web Technologies (2/2)[DSBW Spring 2009] Unit 02: Web Technologies (2/2)
[DSBW Spring 2009] Unit 02: Web Technologies (2/2)Carles Farré
 
Local Search Rankings Las Vegas
Local Search Rankings Las VegasLocal Search Rankings Las Vegas
Local Search Rankings Las VegasMichael Dorausch
 
2013 Local Search & Mobile Las Vegas Michael Dorausch
2013 Local Search &  Mobile Las Vegas Michael Dorausch2013 Local Search &  Mobile Las Vegas Michael Dorausch
2013 Local Search & Mobile Las Vegas Michael DorauschMichael Dorausch
 
Local Search Hawaii Michael Dorausch PubCon SEO
Local Search Hawaii Michael Dorausch PubCon SEOLocal Search Hawaii Michael Dorausch PubCon SEO
Local Search Hawaii Michael Dorausch PubCon SEOMichael Dorausch
 
[DSBW Spring 2009] Unit 01: Introducing Web Engineering
[DSBW Spring 2009] Unit 01: Introducing Web Engineering[DSBW Spring 2009] Unit 01: Introducing Web Engineering
[DSBW Spring 2009] Unit 01: Introducing Web EngineeringCarles Farré
 
Vhitelska Prezentazia
Vhitelska PrezentaziaVhitelska Prezentazia
Vhitelska Prezentazialydashok
 
[DSBW Spring 2010] Unit 10: XML and Web And beyond
[DSBW Spring 2010] Unit 10: XML and Web And beyond[DSBW Spring 2010] Unit 10: XML and Web And beyond
[DSBW Spring 2010] Unit 10: XML and Web And beyondCarles Farré
 
сучасні проблеми виховання
сучасні проблеми вихованнясучасні проблеми виховання
сучасні проблеми вихованняlydashok
 
творча активність (Кошарська Л.Л.)
творча активність (Кошарська Л.Л.)творча активність (Кошарська Л.Л.)
творча активність (Кошарська Л.Л.)lydashok
 
[DSBW Spring 2009] Unit 03: WebEng Process Models
[DSBW Spring 2009] Unit 03: WebEng Process Models[DSBW Spring 2009] Unit 03: WebEng Process Models
[DSBW Spring 2009] Unit 03: WebEng Process ModelsCarles Farré
 

Destacado (20)

Web Usability (Slideshare Version)
Web Usability (Slideshare Version)Web Usability (Slideshare Version)
Web Usability (Slideshare Version)
 
[DSBW Spring 2009] Unit 09: Web Testing
[DSBW Spring 2009] Unit 09: Web Testing[DSBW Spring 2009] Unit 09: Web Testing
[DSBW Spring 2009] Unit 09: Web Testing
 
2013 Local Search Rankings Las Vegas Michael Dorausch
2013 Local Search Rankings Las Vegas Michael Dorausch2013 Local Search Rankings Las Vegas Michael Dorausch
2013 Local Search Rankings Las Vegas Michael Dorausch
 
[DSBW Spring 2009] Unit 08: WebApp Security
[DSBW Spring 2009] Unit 08: WebApp Security[DSBW Spring 2009] Unit 08: WebApp Security
[DSBW Spring 2009] Unit 08: WebApp Security
 
Local Search Mobile Las Vegas Michael Dorausch Pubcon
Local Search Mobile Las Vegas Michael Dorausch PubconLocal Search Mobile Las Vegas Michael Dorausch Pubcon
Local Search Mobile Las Vegas Michael Dorausch Pubcon
 
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (2/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (2/3)[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (2/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (2/3)
 
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
 
Нетрадиційні форми виховної роботи в 5 класі як
Нетрадиційні форми виховної роботи в 5 класі якНетрадиційні форми виховної роботи в 5 класі як
Нетрадиційні форми виховної роботи в 5 класі як
 
здоровьесберегающие технологи на уроках спо в школе для детей с проблемами зр...
здоровьесберегающие технологи на уроках спо в школе для детей с проблемами зр...здоровьесберегающие технологи на уроках спо в школе для детей с проблемами зр...
здоровьесберегающие технологи на уроках спо в школе для детей с проблемами зр...
 
DSBW Final Exam (Spring Sementer 2010)
DSBW Final Exam (Spring Sementer 2010)DSBW Final Exam (Spring Sementer 2010)
DSBW Final Exam (Spring Sementer 2010)
 
[DSBW Spring 2009] Unit 02: Web Technologies (2/2)
[DSBW Spring 2009] Unit 02: Web Technologies (2/2)[DSBW Spring 2009] Unit 02: Web Technologies (2/2)
[DSBW Spring 2009] Unit 02: Web Technologies (2/2)
 
Local Search Rankings Las Vegas
Local Search Rankings Las VegasLocal Search Rankings Las Vegas
Local Search Rankings Las Vegas
 
2013 Local Search & Mobile Las Vegas Michael Dorausch
2013 Local Search &  Mobile Las Vegas Michael Dorausch2013 Local Search &  Mobile Las Vegas Michael Dorausch
2013 Local Search & Mobile Las Vegas Michael Dorausch
 
Local Search Hawaii Michael Dorausch PubCon SEO
Local Search Hawaii Michael Dorausch PubCon SEOLocal Search Hawaii Michael Dorausch PubCon SEO
Local Search Hawaii Michael Dorausch PubCon SEO
 
[DSBW Spring 2009] Unit 01: Introducing Web Engineering
[DSBW Spring 2009] Unit 01: Introducing Web Engineering[DSBW Spring 2009] Unit 01: Introducing Web Engineering
[DSBW Spring 2009] Unit 01: Introducing Web Engineering
 
Vhitelska Prezentazia
Vhitelska PrezentaziaVhitelska Prezentazia
Vhitelska Prezentazia
 
[DSBW Spring 2010] Unit 10: XML and Web And beyond
[DSBW Spring 2010] Unit 10: XML and Web And beyond[DSBW Spring 2010] Unit 10: XML and Web And beyond
[DSBW Spring 2010] Unit 10: XML and Web And beyond
 
сучасні проблеми виховання
сучасні проблеми вихованнясучасні проблеми виховання
сучасні проблеми виховання
 
творча активність (Кошарська Л.Л.)
творча активність (Кошарська Л.Л.)творча активність (Кошарська Л.Л.)
творча активність (Кошарська Л.Л.)
 
[DSBW Spring 2009] Unit 03: WebEng Process Models
[DSBW Spring 2009] Unit 03: WebEng Process Models[DSBW Spring 2009] Unit 03: WebEng Process Models
[DSBW Spring 2009] Unit 03: WebEng Process Models
 

Similar a [DSBW Spring 2009] Unit 02: Web Technologies (1/2)

Similar a [DSBW Spring 2009] Unit 02: Web Technologies (1/2) (20)

Unit 02: Web Technologies (1/2)
Unit 02: Web Technologies (1/2)Unit 02: Web Technologies (1/2)
Unit 02: Web Technologies (1/2)
 
introduction to web application development
introduction to web application developmentintroduction to web application development
introduction to web application development
 
Introduction to Web Architecture
Introduction to Web ArchitectureIntroduction to Web Architecture
Introduction to Web Architecture
 
Introductiontowebarchitecture 090922221506-phpapp01
Introductiontowebarchitecture 090922221506-phpapp01Introductiontowebarchitecture 090922221506-phpapp01
Introductiontowebarchitecture 090922221506-phpapp01
 
5-WebServers.ppt
5-WebServers.ppt5-WebServers.ppt
5-WebServers.ppt
 
Unit 02: Web Technologies (2/2)
Unit 02: Web Technologies (2/2)Unit 02: Web Technologies (2/2)
Unit 02: Web Technologies (2/2)
 
02 intro
02   intro02   intro
02 intro
 
Spider Course Day 1
Spider Course Day 1Spider Course Day 1
Spider Course Day 1
 
Introduction to back-end
Introduction to back-endIntroduction to back-end
Introduction to back-end
 
dotNET_Overview.pdf
dotNET_Overview.pdfdotNET_Overview.pdf
dotNET_Overview.pdf
 
Have Some Rest Building Web2.0 Apps And Services
Have Some Rest   Building Web2.0 Apps And ServicesHave Some Rest   Building Web2.0 Apps And Services
Have Some Rest Building Web2.0 Apps And Services
 
Cs8591 Computer Networks - UNIT V
Cs8591 Computer Networks - UNIT VCs8591 Computer Networks - UNIT V
Cs8591 Computer Networks - UNIT V
 
WWW and HTTP
WWW and HTTPWWW and HTTP
WWW and HTTP
 
Web
WebWeb
Web
 
Introduction to Basic Concepts in Web
Introduction to Basic Concepts in WebIntroduction to Basic Concepts in Web
Introduction to Basic Concepts in Web
 
Webtechnologies
Webtechnologies Webtechnologies
Webtechnologies
 
Web Landscape - updated in Jan 2016
Web Landscape - updated in Jan 2016Web Landscape - updated in Jan 2016
Web Landscape - updated in Jan 2016
 
Top 10 HTML5 Features for Oracle Cloud Developers
Top 10 HTML5 Features for Oracle Cloud DevelopersTop 10 HTML5 Features for Oracle Cloud Developers
Top 10 HTML5 Features for Oracle Cloud Developers
 
Speed = $$$
Speed = $$$Speed = $$$
Speed = $$$
 
KMUTNB - Internet Programming 2/7
KMUTNB - Internet Programming 2/7KMUTNB - Internet Programming 2/7
KMUTNB - Internet Programming 2/7
 

Más de Carles Farré

Aplicacions i serveis web (ASW)
Aplicacions i serveis web (ASW)Aplicacions i serveis web (ASW)
Aplicacions i serveis web (ASW)Carles Farré
 
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (1/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (1/3)[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (1/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (1/3)Carles Farré
 
[DSBW Spring 2009] Unit 06: Conallen's Web Application Extension for UML (WAE2)
[DSBW Spring 2009] Unit 06: Conallen's Web Application Extension for UML (WAE2)[DSBW Spring 2009] Unit 06: Conallen's Web Application Extension for UML (WAE2)
[DSBW Spring 2009] Unit 06: Conallen's Web Application Extension for UML (WAE2)Carles Farré
 
[DSBW Spring 2009] Unit 05: Web Architectures
[DSBW Spring 2009] Unit 05: Web Architectures[DSBW Spring 2009] Unit 05: Web Architectures
[DSBW Spring 2009] Unit 05: Web ArchitecturesCarles Farré
 
[DSBW Spring 2009] Unit 04: From Requirements to the UX Model
[DSBW Spring 2009] Unit 04: From Requirements to the UX Model[DSBW Spring 2009] Unit 04: From Requirements to the UX Model
[DSBW Spring 2009] Unit 04: From Requirements to the UX ModelCarles Farré
 
[ABDO] Data Integration
[ABDO] Data Integration[ABDO] Data Integration
[ABDO] Data IntegrationCarles Farré
 
[ABDO] Logic As A Database Language
[ABDO] Logic As A Database Language[ABDO] Logic As A Database Language
[ABDO] Logic As A Database LanguageCarles Farré
 

Más de Carles Farré (7)

Aplicacions i serveis web (ASW)
Aplicacions i serveis web (ASW)Aplicacions i serveis web (ASW)
Aplicacions i serveis web (ASW)
 
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (1/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (1/3)[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (1/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (1/3)
 
[DSBW Spring 2009] Unit 06: Conallen's Web Application Extension for UML (WAE2)
[DSBW Spring 2009] Unit 06: Conallen's Web Application Extension for UML (WAE2)[DSBW Spring 2009] Unit 06: Conallen's Web Application Extension for UML (WAE2)
[DSBW Spring 2009] Unit 06: Conallen's Web Application Extension for UML (WAE2)
 
[DSBW Spring 2009] Unit 05: Web Architectures
[DSBW Spring 2009] Unit 05: Web Architectures[DSBW Spring 2009] Unit 05: Web Architectures
[DSBW Spring 2009] Unit 05: Web Architectures
 
[DSBW Spring 2009] Unit 04: From Requirements to the UX Model
[DSBW Spring 2009] Unit 04: From Requirements to the UX Model[DSBW Spring 2009] Unit 04: From Requirements to the UX Model
[DSBW Spring 2009] Unit 04: From Requirements to the UX Model
 
[ABDO] Data Integration
[ABDO] Data Integration[ABDO] Data Integration
[ABDO] Data Integration
 
[ABDO] Logic As A Database Language
[ABDO] Logic As A Database Language[ABDO] Logic As A Database Language
[ABDO] Logic As A Database Language
 

Último

Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 

Último (20)

Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 

[DSBW Spring 2009] Unit 02: Web Technologies (1/2)

  • 1. Unit 2: Web Technologies (1/2)  Core  Web browsers and web servers  URIs  HTTP  Client-Side  Basic: HTML, CSS  Advanced: JavaScript, DOM, AJAX, XForms, RIA  Server-Side technologies for Web Applications  CGI  PHP  Java Servlets  JavaServer Pages (JSPs) dsbw 2008/2009 2q 1
  • 2. World Wide Web  “The World Wide Web (known as quot;WWW', quot;Webquot; or quot;W3quot;) is the universe of network-accessible information, the embodiment of human knowledge” (W3C)  The Web was created in 1989 by Tim Berners-Lee and Robert Cailliau working at the European Organization for Nuclear Research (CERN) in Geneva.  WWW is a technological platform build on Internet that encompasses components, protocols, applications, resources, ...  Web servers  Web browsers  Uniform Resource Identifier (URI)  Hypertext Transfer Protocol (HTTP)  Hypertext Markup Language (HTML)  Search engines  Gateways to access non-web resources dsbw 2008/2009 2q 2
  • 3. World Wide Web: Typical Interaction http://www.upc.edu Universitat Politècnica de Catalunya 1 4 index.html WEB SERVER BROWSER 3 2 GET /index.html FTP DNS … HTTP HTTP … TCP TCP port 80 5 147.83.194.21 IP IP Physical Net dsbw 2008/2009 2q 3
  • 4. The Universal Client: The Web Browser  Web Browsers provide an –usually graphical- interface to obtain, interpret, format and render HTML documents (pages).  HTML documents usually have links, hyperlinks, to other documents  Each link is encoded through an URI (Uniform Resource Identifier)  HTML documents may contain images, audio files, etc that are also referred through URIs and that are rendered jointly by the browser.  Other features:  Cache, bookmarks, printing, off-line operation, …  Client-side scripting support: JavaScript/ VBscript  RIA support  Helper Applications  Plug-ins dsbw 2008/2009 2q 4
  • 5. The Web Server  Web Servers “listen to” a TCP port -usually 80- waiting for a client (web browser) to initiate a connection.  Once the connection is established, the web browser sends a request and the web server returns a response. Then the connection is released  HTTP is the protocol that defines such a request/response communication  Initially, requests were about “static” resources -HTML documents, binary pictures, etc- stored in files reachable by the web server.  Other features:  Logging  Server-side scripting: CGI, FastCGI, SSI, ASP.NET, Java Web Containers, PHP, etc. dsbw 2008/2009 2q 5
  • 6. Uniform Resource Identifier (URI)  “The Web is an information space. Human beings have a lot of mental machinery for manipulating, imagining, and finding their way in spaces. URIs are the points in that space” (W3C)  A URI is a compact sequence of characters that identifies an abstract or physical resource. Its generic syntax defines four parts: <scheme name> : <hierarchical part> [ ? <query> ] [ # <fragment> ]  Example: http://user:pass@example.com:992/animal/bird?species=seagull#wings login host port authority path scheme hierarchical part query fragment dsbw 2008/2009 2q 6
  • 7. URLs, URNs and IRIs  A quot;Uniform Resource Locatorquot; (URL) is a URI that, in addition to identifying a resource, provide a mean for locating the resource by describing its primary access mechanism. Examples: ftp://ftp.is.co.za/rfc/rfc1808.txt ldap://[2001:db8::7]/c=GB?objectClass?one mailto:John.Doe@example.com ed2k://|file|Jim%20Conallen%20-%20Building%20Web%20Applicatio ns%20with%20UML%202nd%20Ed.chm|6685541|74112A8EDD20 B521B4BCB052D0416FE7|/  A quot;Uniform Resource Namequot; (URN) refers to a URI under the quot;urnquot; scheme (e.g urn:isbn:1892295490) or to any other URI with the properties of a name  The Internationalized Resource Identifier (IRI) is a URI that may contain characters from the Universal Character Set (Unicode/ISO 10646) dsbw 2008/2009 2q 7
  • 8. HyperText Transfer Protocol (HTTP)  HTTP is the transfer protocol used throughout the Web: It specifies what messages web browsers may send to servers and what responses they get back in return.  Typical interaction (HTTP/1.0 or lower):  Web browser establishes a TCP/IP connection with the target Web server  Web browser sends a HTTP ASCII request over the TCP/IP connection.  Web server returns a HTTP MIME-like response and releases the TCP/IP connection  HTTP/1.1 improvements:  Persistent connections: several request/response interactions in a single connection.  Request pipelining: multiple HTTP requests are sent without waiting for the corresponding responses. dsbw 2008/2009 2q 8
  • 9. The HTTP Request <METHOD> <Resource_Path> <HTTP_Version> <CR> // Request ( <Attribute>: <Value> <CR> )* // Parameters <CR> // Blank line [Body] // If needed  METHOD := GET | POST | HEAD | …  Example: GET /index.html HTTP/1.1 Host: www.fib.upc.edu // Compulsory if HTTP/1.1 dsbw 2008/2009 2q 9
  • 10. The HTTP Response <HTTP_Version> <Result_Code> [explanation] <CR> ( <Attribute>: <Value> <CR> )* <CR> [Body]  Result_Code := 200 [OK] | 400 [Bad Request] | 404 [Not found] | …  Example: HTTP/1.1 200 OK Date: Wed, 11 Feb 2009 11:46:12 GMT Server: Apache/2.0.52 (Red Hat) Last-Modified: Fri, 01 Aug 2008 08:57:22 GMT Etag: quot;2d6c509-31b-2d7e6080“ Accept-Ranges: bytes Content-Length: 795 Content-Type: text/html; charset=ISO-8859-1 <HTML>… </HTML> dsbw 2008/2009 2q 10
  • 11. HTTP: Two Important Remarks  HTTP is stateless:  The Web Server handles each HTTP request independently and there is no easy way to keep track of each client request and to associate it with a previous one.  However, managing state is important for many applications: a single use case scenario often involves navigating through a number of Web pages. Without a state management mechanism, you would have to continually supply all previous information entered for each new Web page.  HTTP is one-way:  Clearly separated roles: Clients -Web browsers- make requests to - Web- Servers, no vice versa. dsbw 2008/2009 2q 11
  • 12. HyperText Markup Language (HTML)  HTML is the main publishing language of the Web.  HTML is based on SGML (Standard Generalized Markup Language, ISO 8879)  HTML Document = Content (mostly text) + Markup  HTML Markup allows to define  How content must be structured  How to render each piece of structured content  Links to other HTML documents  Embedded objects: images, audio, video, forms, scripts, applets, …  Markup is performed using tags: <TAG (ATRIBUTE=VALUE)*> Content </TAG> dsbw 2008/2009 2q 12
  • 13. HTMLs  Despite an strong effort for standardization …  Hypertext Markup Language (First Version), published as an Internet Engineering Task Force (IETF) working draft (June 1993).  HTML 2.0, IETF RFC 1866 November (1995)  HTML 3.2, W3C Recommendation (January 1997)  HTML 4.0, W3C Recommendation (December 1997)  HTML 4.01, W3C Recommendation (December 1999)  ISO/IEC 15445:2000, based on HTML 4.01 Strict (May 2000)  XHTML 1.0, W3C Recommendation (Published January 2000, revised August 2002)  XHTML 1.1, W3C Recommendation (May 2001)  XHTML 2.0, W3C Working Draft (July 2006)  (X)HTML 5.0 W3C Working Draft (February 2009)  … HTML programmers are constantly faced with the problem of using HTML features that are not supported consistently, if at all, across all the target browser platforms. dsbw 2008/2009 2q 13
  • 15. HTML Forms: Processing dsbw 2008/2009 2q 15
  • 16. Cascading Style Sheets (CSS)  Some HTML markup already defines how to render the affected content …  … however, CSS is preferable because:  provide more flexibility and control in the specification of presentational characteristics.  enable a clean separation of document content from document presentation.  allow the reuse of a same style sheet in different HTML documents: shared look and feel.  Cascading here refers to a priority scheme to determine which style rules apply if more than one rule matches against a particular element. (≈ polymorphism rules in OO generalization hierarchies). dsbw 2008/2009 2q 16
  • 17. CSS: Ways of Use (1/2)  Inline <h1 style=quot;color: red;quot;>CSS test</h1> <p style=quot;font-size: 12pt; font-family: Verdana, sans- serifquot;>This a test to show the different ways of using <em style=quot;color: green;quot;>Cascading Style Sheets</em>.</p>  Embedded <html> <head> <STYLE TYPE=quot;text/cssquot;> H1 { color: red} P { font-size: 12pt; font-family: Verdana, sans-serif;} EM { color: green} </STYLE> </head> <body> </body> </html> dsbw 2008/2009 2q 17
  • 18. CSS: Ways of Use(2/2)  Linked <html> <head> <LINK REL=quot;STYLESHEETquot; HREF=quot;prova.cssquot; TYPE=quot;text/cssquot;> </head>  Imported <html> <head> <STYLE> @import url(http://localhost/prova.css); @import url(prova2.css); </STYLE> </head> dsbw 2008/2009 2q 18
  • 19. JavaScript  JavaScript is an interpreted programming language that allows to embed executable code -scripts- into a HTML document.  Such scripts are executed by the web browser when rendering the HTML document.  JavaScript is a “light” version of Java:  Type control is not strong.  There are “objects”, but programmers cannot define their own classes. dsbw 2008/2009 2q 19
  • 20. JavaScript: What Can It Do?  Put dynamic text into an HTML page  Interact with the web browser: open new windows, show alerts, redirect to another URI, etc.  Read and write HTML elements (e.g. form fields)  Validate form data  Handle events : onClick, onLoad, onMouseOver, onMouseOut, onSubmit, etc.  Create/read/write cookies  Cookie: information sent by a server to a web browser and then sent back unchanged by the browser each time it accesses that server. Cookies are used for authenticating, tracking, and keeping data about users.  Interact with applets dsbw 2008/2009 2q 20
  • 21. JavaScript: Example <html><head><title>La Data d’avui</title> <script language=quot;JavaScriptquot;> function print_todays_date() { today = new Date(); days_ca = new Array(quot;Diumengequot;, quot;Dillunsquot;, quot;Dimartsquot;, quot;Dimecresquot;, quot;Dijousquot;, quot;Divendresquot;, quot;Dissabtequot;); months_ca = new Array(quot;generquot;, quot;febrerquot;, quot;marçquot;, quot;abrilquot;, quot;maigquot;, quot;junyquot;, quot;juliolquot;, quot;agostquot;, quot;setembrequot;, quot;octubrequot;, quot;novembrequot;, quot;desembrequot;); document.write(days_ca[today.getDay()]+quot;, quot;); document.write(today.getDate()+quot; de quot;); document.write(months_ca[today.getMonth()]+quot; de quot;); document.write(today.getFullYear());} </script></head> <body> <hr>La data d’avui &eacute;s:<br><b> <script language=quot;JavaScriptquot;> print_todays_date(); </script> </b><hr></body></html> dsbw 2008/2009 2q 21
  • 22. Document Object Model / DHTML  DOM “is a platform- and language-neutral interface that will allow programs and scripts to dynamically access and update the content, structure and style of documents. The document can be further processed and the results of that processing can be incorporated back into the presented page”. (W3C)  HTML/XML documents and their inner elements are handled as objects with data and behavior (operations). The whole structure is represented -and accessed- as a object tree.  Dynamic HTML (DHTML): “is a term used by some vendors to describe the combination of HTML, style sheets and scripts that allows documents to be animated” (W3C).  Examples: www.w3schools.com/dhtml/ dsbw 2008/2009 2q 22
  • 23. DOM: Object tree dsbw 2008/2009 2q 23
  • 24. AJAX  Asynchronous JavaScript And XML  It is indeed a “mix” of – previous – technologies: standards-based presentation using (X)HTML and CSS;  dynamic display and interaction using DOM;  data interchange and manipulation using XML and XSLT;  asynchronous data retrieval using XMLHttpRequest;  and JavaScript binding everything together.  dsbw 2008/2009 2q 24
  • 25. AJAX: before and after before after   The browser sends a request to User interaction with the current the server whenever the user page displayed by the browser selects a link or fills a form. triggers presentation events   The web browser remains idle Event handlers may perform while the server is processing the asynchronous calls to the server request and building the to request new/updated data. response.  Such calls are sent to and  The response – a whole HTML processed by the server without page – is completely build on the end users noticing it. The web server side. browser is not idle  Server response is minimal (not a whole HTML page)  The new data is incorporated dynamically on the current page with JavaScript + DOM (DHTML) dsbw 2008/2009 2q 25
  • 26. AJAX: Example Server Script: /validate _ajax.send() Get parameters…do some work XMLHttpRequest Return something… a text message an XML document an HTML snippet function doResp() { a javascript method if _ajax.readyState == 4 and whatever you want… _ajax.status != 200 { div=document.getElementById(‘status’) div.innerHTML = _ajax.responseText; Message status=999 onChange event: msg=Not a valid name _ajax = new XMLHTTPRequest(); _ajax.onreadystatechange = doResp; url = ‘./validate?field=’ +this.name+‘&value=’+this.value; _ajax.open(‘GET’, url, true ) Database Manolito Not a valid name Name: Web Browser Web Server dsbw 2008/2009 2q 26
  • 27. AJAX: uses  Auto-complete Full words are suggested as the user types the first letters   Progress bar To show the status of the “work in progress” in the server side   “Real-time” validation of forms Without needing to fill all the form fields   Updating the information displayed on the current page Without “refresh”   Rich Internet Applications (RIA) dsbw 2008/2009 2q 27
  • 28. AJAX: Some considerations  The XMLHttpRequest object only can make requests to the same server that provided the web page  AJAX Programming “from scratch” is not advised.  Unexpected results when pressing the Back and Refresh buttons of the browser.  Downloading time takes longer as AJAX-enabled pages require larger amounts of code.  Debugging gets harder as code is executed in both browser and server sides  AJAX code is visible, prone to be copied and hacked.  Servers may get overloaded for abuse of asynchronous calls.  Mature technology? dsbw 2008/2009 2q 28
  • 29. XForms  XForms is the next generation of HTML forms and will be the forms standard in XHTML 2.0  Current Status:  XForms 1.0 (Third Edition, W3C Recommendation 29 October 2007)  XForms 1.1 (W3C Candidate Recommendation 29 November 2007)  XForms separates data and logic from presentation  XForms uses XML to define, store and transport form data dsbw 2008/2009 2q 29
  • 30. Xforms lets you  Check data values while the user is typing them in  Indicate that certain fields are required.  Integrate with Web services.  Submit the same form to different servers.  Save and restore values to and from a file.  Use the result of a submit as input to a further form.  Get the initial data for a form from an external document.  Calculate submitted values from other values.  Constrain values in certain ways, such as requiring them to be in a certain range.  Build 'shopping basket' and 'wizard' style forms without needing to resort to scripting. dsbw 2008/2009 2q 30
  • 31. Rich Internet Applications (RIA)  RIA are Web applications that have the features and functionality of traditional desktop applications, by executing most of their - rich - user interfaces on the client side.  Indeed, the RIA paradigm is a new version of the Remote User Interface pattern for Client/Server architectures  RIAs typically:  run in a Web browser with/without extra software installation  run locally in a secure environment called a sandbox  “First generation” RIA platforms:  Java Applets, (Microsoft) ActiveX Controls, (Macromedia) Flash  “Second generation” RIA platforms:  AJAX (frameworks), Adobe Flex/AIR, JavaFX, (Microsoft) Silverlight, OpenLaszlo, … dsbw 2008/2009 2q 31
  • 32. Java Applets: Example <html> <head> <title>TicTacToe v1.1</title> </head> <body> <center> <h1>TicTacToe v1.1</h1> <hr> <OBJECT codetype=quot;application/javaquot; classid=quot;java:TicTacToe.clas squot; width=120 height=120> </OBJECT> </center> </body> </html> dsbw 2008/2009 2q 32
  • 33. References  SHKLAR, Leon et al. Web Application Architecture: Principles, Protocols and Practices, John Wiley & Sons, 2003.  www.w3c.org  www.w3schools.com  http://www-128.ibm.com/developerworks/ dsbw 2008/2009 2q 33