Web Technologies — Part I

Web-Based Services (INFOSYS 290-3)

Erik Wilde, UC Berkeley iSchool
Wednesday, September 6, 2006
Creative Commons License

This work is licensed under a Creative Commons
Attribution-NonCommercial-ShareAlike 2.5 License.

Abstract

The Web assumes an underlying network infrastructure providing a reliable, connection-oriented, flow-controlled end-to-end transport service. Based on such a network service, the Web's transport protocols move data between Web servers and browsers. The two most important protocols are the Hypertext Transfer Protocol (HTTP) for regular data transfers, and HTTP over SSL (HTTPS) for encrypted data transfers.

Web Server Service

Outline (Uniform Resource Identifier (URI))

  1. Uniform Resource Identifier (URI) [7]
  2. Hypertext Transfer Protocol (HTTP) [12]
    1. HTTP Basics [7]
    2. Content Negotiation [3]
  3. HTTP in Practice [5]
    1. HTTP over SSL (HTTPS) [2]
    2. Proxies [3]
  4. Conclusions [1]

Resource Identification

URI Schemes

URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
[…] the URI syntax is a federated and extensible naming system wherein each scheme's specification may further restrict the syntax and semantics of identifiers using that scheme.

Uniform Resource Identifier (URI): Generic Syntax, RFC 3986, January 2005

Query Information

The query component contains non-hierarchical data that, along with data in the path component […], serves to identify a resource within the scope of the URI's scheme and naming authority […].

Uniform Resource Identifier (URI): Generic Syntax, RFC 3986, January 2005

Processing URIs

Resources vs. Representations

Bad Service

Popular Screen Resolutions

Outline (Hypertext Transfer Protocol (HTTP))

  1. Uniform Resource Identifier (URI) [7]
  2. Hypertext Transfer Protocol (HTTP) [12]
    1. HTTP Basics [7]
    2. Content Negotiation [3]
  3. HTTP in Practice [5]
    1. HTTP over SSL (HTTPS) [2]
    2. Proxies [3]
  4. Conclusions [1]

The Web's Protocol

DNS & HTTP

The two basic protocols which every Web browser must implement are DNS access and HTTP. However, most operating systems provide an API for DNS access, so the browser can use this service locally and only has to implement HTTP. TCP (which is required as the foundation for HTTP) is usually provided by the operating system.

Outline (HTTP Basics)

  1. Uniform Resource Identifier (URI) [7]
  2. Hypertext Transfer Protocol (HTTP) [12]
    1. HTTP Basics [7]
    2. Content Negotiation [3]
  3. HTTP in Practice [5]
    1. HTTP over SSL (HTTPS) [2]
    2. Proxies [3]
  4. Conclusions [1]

HTTP Messages

start-line
message-header *

message-body ?

HTTP Header Fields

HTTP Requests

Method Request-URI HTTP/Major.Minor
[Header]*

[Entity]?

HTTP GET

GET / HTTP/1.1
Host: ischool.berkeley.edu

HTTP Responses

HTTP/Major.Minor Status-Code Text
[Header]*

[Entity]?

HTTP Performance

HTTP Connection Handling

Outline (Content Negotiation)

  1. Uniform Resource Identifier (URI) [7]
  2. Hypertext Transfer Protocol (HTTP) [12]
    1. HTTP Basics [7]
    2. Content Negotiation [3]
  3. HTTP in Practice [5]
    1. HTTP over SSL (HTTPS) [2]
    2. Proxies [3]
  4. Conclusions [1]

What is Content Negotiation?

Three Different Variants

Server-Side Content Negotiation

Outline (HTTP in Practice)

  1. Uniform Resource Identifier (URI) [7]
  2. Hypertext Transfer Protocol (HTTP) [12]
    1. HTTP Basics [7]
    2. Content Negotiation [3]
  3. HTTP in Practice [5]
    1. HTTP over SSL (HTTPS) [2]
    2. Proxies [3]
  4. Conclusions [1]

Outline (HTTP over SSL (HTTPS))

  1. Uniform Resource Identifier (URI) [7]
  2. Hypertext Transfer Protocol (HTTP) [12]
    1. HTTP Basics [7]
    2. Content Negotiation [3]
  3. HTTP in Practice [5]
    1. HTTP over SSL (HTTPS) [2]
    2. Proxies [3]
  4. Conclusions [1]

HTTP and Security

HTTP and SSL

Outline (Proxies)

  1. Uniform Resource Identifier (URI) [7]
  2. Hypertext Transfer Protocol (HTTP) [12]
    1. HTTP Basics [7]
    2. Content Negotiation [3]
  3. HTTP in Practice [5]
    1. HTTP over SSL (HTTPS) [2]
    2. Proxies [3]
  4. Conclusions [1]

Proxies

Browsers & Proxies

A proxy is configured in the browser (manually or automatically), so that the browser sends all requests to the proxy instead of the target Web server. The proxy then forwards the request. Proxies can be chained, so that the requests and responses travel through a number of HTTP systems.

Firewalls

Outline (Conclusions)

  1. Uniform Resource Identifier (URI) [7]
  2. Hypertext Transfer Protocol (HTTP) [12]
    1. HTTP Basics [7]
    2. Content Negotiation [3]
  3. HTTP in Practice [5]
    1. HTTP over SSL (HTTPS) [2]
    2. Proxies [3]
  4. Conclusions [1]

Web Server Service