Chapter 1 Internet and Web Protocols. Objectives Understand how the Internet developed Explain the...

26
Chapter 1 Internet and Web Protocols

Transcript of Chapter 1 Internet and Web Protocols. Objectives Understand how the Internet developed Explain the...

Chapter 1Internet and Web Protocols

Objectives

• Understand how the Internet developed

• Explain the role and function of important Internet protocols

• Explain the role and function of HTTP and interpret HTTP transaction details

• Read and write XML documents

Internet History

• Developed in the late 1960’s, as a way to interconnect diverse computer networks

• First network: the ARPAnet(Department of Defense, Advanced Research Projects Agency)

• Early uses: research and communication, in academic and laboratory environments

Internet Design Principles

• Open Architecture– based on public, non-proprietary standards

• Distributed Control– no single command center or point of failure– inherently scalable

• Simplicity– protocols are dependable, easy to implement,

inexpensive

Internet Weaknesses

• IP Addresses– initial expectations for a few thousand hosts

underestimated the growth rate of the Internet– newer protocol versions expand the address

space from about 4x109 to about 3x1038

• Security– widespread misuse of Internet applications

(spam, e-crime, etc.) were not anticipated– security features have been added

retroactively, but problems persist

World Wide Web History

• Developed around 1990 as a tool for sharing hyperlinked text documents over the Internet– Sponsor: European Center for Nuclear Research (CERN)

• Original browsers were text-mode only

• Graphical browsers and e-commerce developed soon thereafter

Internet and Web Governance

• The Internet Society (ISOC) governs Internet protocol developments– Internet Architecture Board (IAB)– Internet Engineering Task Force (IETF)

• The Internet Corporation for Assigned Names and Numbers (ICANN) controls registry of domain names by various registrars

• The World Wide Web Consortium (W3C) governs Web protocol developments

Internet Protocols

• Internet protocols govern transmission of data from one host to another– IP: Internet Protocol– TCP: Transmission Control Protocol– UDP: User Datagram Protocol

• Internet protocols depend upon the availability of a network layer, and provide services to various Internet applications

Internet Protocol Stack

Layer Purpose / Typical Implementation

Application End-user applications

e-mail, W W W, etc.

Transport Transport data between applications

TCP, UDP

Internet Transmit data packets between Internet nodes

IP

Network Transmit bits between nodes

Ethernet, WiFi, etc.

Internet Protocol Stack

• Each layer of the stack uses the services of the layer below it, and provides services to the layer above it

• For example, e-mail depends on TCP, which depends on IP, etc.

Application e-mail, WWW, etc.

Transport TCP, UDP

Internet IP

Network Ethernet, WiFi, etc.

IP (Internet Protocol)

• Sends chunks of data (packets) between Internet hosts

• IP is connectionless: there is no fixed circuit established between end points; each packet is sent individually

• Delivery is best-effort (no guarantee)

IP Addresses

• Each host on the Internet is identified by a unique IP Address, a 32-bit string

• IP addresses are typically represented as four octets (8-bit values) in decimal– e.g., 134.126.20.73

• Domain names (e.g., www.jmu.edu) are translated to IP addresses by the Internet’s Domain Name System (DNS)

• IPv4 vs. IPv6

IPv4 vs. IPv6

• IP version 4 uses 32-bit IP addresses, allowing for about 4 billion addresses

• The growth of the Internet has led to an IP address shortage (4 billion is not enough!)– various work-arounds have been developed

• IPv6 will eliminate this problem by expanding the IP address to 128 bits

TCP (Transmission Control Protocol)

• TCP breaks application data into packets and delivers it using IP

• TCP adds value to IP:– reliability: guaranteed delivery of all packets– ordering: packets arrive in the order sent– flow-control: transmission is throttled in order to

prevent recipient buffer overflows– multiplexing: the sender and receiver can maintain

multiple open application-level channels

UDP (User Datagram Protocol)

• UDP also breaks application data into packets and delivers it using IP

• UDP adds value to IP:– error-detection: the receiver can detect

transmission errors– multiplexing: the sender and receiver can

maintain multiple open application-level channels

TCP vs. UDP

• TCP guarantees correct delivery

• Better for email, WWW, and applications that depend on correctness

• UDP is faster than TCP (because it doesn’t correct errors)

• Better for streaming applications that can tolerate some noise (such as audio and video)

HTTP (HyperText Transfer Protocol)

• Allows web clients to request and receive delivery of documents and services

• Governs the format of web addresses and the exchange of information on the Web

• A client-server protocol– clients make requests, servers respond

HTTP Transaction

• One HTTP Transaction consists of two parts:

1. HTTP Request

2. HTTP Response

ClientServer

Request

Response

Statelessness

• There is no memory (preservation of state) between HTTP transactions

• Each HTTP transaction is independent of the one before it and the one after it

CLIENT

SERVER

Uniform Resource Locators

• Each web resource is identified by a unique URL

• General form for a URL:<scheme><domain name><port>

For example,http://www.mywebsite.net:80

(the port is usually omitted and a default is used)

HTTP Request Methods

• Each HTTP request contains a method attribute that identifies its purpose

• Valid methods include– GET retrieve a resource– POST submit data to be processed– CONNECT create a TCP/IP tunnel– DELETE delete a resource– HEAD get response headers only– OPTIONS get a list of supported methods– PUT replace a resource– TRACE echo the request

HTTP Response Codes

• Each HTTP response contains a response code that indicates the general outcome

• Response code categories / examples:– 1xx: Information 100 continue– 2xx: Success 200 OK– 3xx: Redirect 301 Moved Permanently– 4xx: Client Error 404 Not Found– 5xx: Server Error 500 Internal Server Error

HTTP Headers

• Each request and response message begins with header lines that provide meta-information

• Request header data examples:– method, resource, protocol version, host

• Response header data examples:– protocol version, response code, content type,

content length, date

Headers----------------------

Data

Request

Headers----------------------

Data

Response

HTTP Headers Example

HTTP Request Message

GET /hello.html HTTP/1.1Host: grove.cs.jmu.edu

HTTP Response Message

HTTP/1.1 200 OKServer: Apache-Coyote/1.1Content-Type: text/htmlContent-Length: 37Date: Fri, 07 Sep 2007 16:13:28 GMT

<html><body>Hello!</body></html>

A blank line separates message headers from message body

eXtensible Markup Language

• XML is a meta-language that is used to define other languages

• XML is used to create document types, which specify the syntax for describing an individual of that type

• For example, in a medical records system, document types might include– patient, medical test, hospital admission

• XML is also used to define XHTML, the language for writing web pages– each XHTML document defines one web page

Review

• Internet & Web History

• Internet Design

• Internet Protocols (IP, TCP, UDP)

• Web Protocol (HTTP)

• XML