Web Basics and Protocols CS 502 – 20020129 Carl Lagoze
description
Transcript of Web Basics and Protocols CS 502 – 20020129 Carl Lagoze
Cornell CS502
Web Basics and Protocols
CS 502 – 20020129Carl Lagoze
Acks to McCrackenSyracuse Univ.
Cornell CS502
In the beginning….
Cornell CS502
In the beginning…
Cornell CS502
ARPANET
• DoD funded through leadership of Licklider
• Inspired by move from batch to timesharing
• Allowed remote login
Cornell CS502
Packet Switching
• Invented in early 1960’s by Baran, Davies, Kleinrock
• digital, redundant, efficient, upgradeable (software)
• 1969 ARPANET first network implementation
Cornell CS502
Packet Switching
• Network messages broken up into packets• Each pocket has a destination address• Pass and forward model – router gets packet,
examine, decides where to send next• Message reassembled on other end
Cornell CS502
Layered Protocol Model
Cornell CS502
TCP/IP Protocol Suite
• IP – packet delivery• TCP – virtual circuits, packet
reassembly• ARP/RARP – address
resolution
Cornell CS502
Protocol Layers
Cornell CS502
Internet Issues (Internet 2)
• Demands of multimedia applications• Virtual circuit reservations – bandwidth and
quality of service guarantees• Real time streaming protocols• State saving
Cornell CS502
Internet Governance
• Internet Society (ISOC) – Evolution, social & political issues
• Internet Architecture Board (IAB) – Oversees standards process
• Internet Engineering Task Force (IETF) – standards development
• Internet Assigned Names Authority (IANA) – protocol # assignment
• Internet Corporation for Assigned Names and Numbers (ICANN) – IP and DNS addresses
• World Wide Web Consortium (W3C) – web standards and evolution
Cornell CS502
Internet Documents
• STD’s – Official IETF Internet standards– http://www.rfc-editor.org/rfcxx00.html
• RFC’s – “Requests for Comments” to IETF community for information, standardization– http://www.ietf.org/rfc.html
• Internet Drafts – IETF working documents– http://www.ietf.org/ID.html
• W3C Reports (recommendations, drafts, notes)– http://www.w3.org/TR/
Cornell CS502
Well-Known Protocols
• Telnet – external terminal interface, RFC 854 (1983)
• FTP – file transfer, RFC 959 (1985)• SMTP – mail transport, RFC 821 (1982)• HTTP – distributed, collaborative hypermedia
systems, RFC 1945 (1.0 1996), RFC 2616 (1.1 1999)
Cornell CS502
Daemons and Ports
23
80
21
telnetd
httpd
ftpd
Socket(Virtual Circuit)
Cornell CS502
Basic Socket ServerProgramming
Cornell CS502
HTTP
• HTTP is…– Designed for document transfer– Generic
• not tied to web browsers exclusively• can serve any data type
– Stateless• no persistent client/server connection
Cornell CS502
HTTP Session
• An HTTP session consists of a client request followed by a server response
• Requests and responses:– are sent in plain text– conform to the HTTP syntax– consist of start line, headers, blank line, and
message body
Cornell CS502
HTTP Request
• Start line– Consists of method, URL, versionGET index.html HTTP/1.1– Valid methods include:
• GET, POST, HEAD, PUT, DELETE• Headers
– HTTP/1.1 requires a Host: header• Body content
Cornell CS502
HTTP Request Methods
• Methods include– GET: retrieve information identified by the URL– HEAD: same as get but don't get message body
(content)– POST: accept the request content and send it to the
URL– PUT: store the request content as the given URL
Cornell CS502
HTTP Response
• Start line– consists of HTTP version, status code, and
descriptionHTTP/1.1 200 OKHTTP/1.1 404 Not Found
• HeadersContent-type: text/html
• Content
Cornell CS502
HTTP Response Codes
• Respose coded by first digit– 1xx: informational, request received– 2xx: success, request accepted– 3xx: redirection– 4xx: client error– 5xx: server error
Cornell CS502
HTTP Content Body
• Header fields can affect content interpretation– required header field: Content-type– others: Content-Encoding, Content-Length, Expires,
Last-Modified– added by web server - we will configure some of
these later
Cornell CS502
Serving a Page
• User of client machine types in a URL
client( N etscape)
server( Apache)
http: / / www.sm allco.com / index.h tm l
Cornell CS502
Serving a Page
• Server name is translated to an IP address via DNS
client( N etscape)
server( Apache)
http: / / www.sm allco.com / index.htm l
192.22.107.5
Cornell CS502
Serving a Page
• Client connects to server using IP address and port number
client( N etscape)
server( Apache)
http: / / www.sm allco.com / index.htm l
192.22.107.5
192.22.107.5port 80
Cornell CS502
Serving a Page
• Client determines path and file to request
client( N etscape)
server( Apache)
http: / / www.sm allco.com / index.h tm l
Cornell CS502
Serving a Page
• Client sends HTTP request to server
client( N etscape)
server( Apache)
http: / / www.sm allco.com / index.h tm l
GET index .html HTT P/ 1.1
Cornell CS502
Serving a Page
• Server determines which file to send
client( N etscape)
server( Apache)
http : / / ww w.sm allco.com / index.htm l"index.htm l" is really/ etc/ httpd / htdocs/ index.htm l
Cornell CS502
Serving a Page
• Server sends response code and the document
client( N etscape)
server( Apache)
http : / / w ww.sm allco.com / index.htm l
HTTP/ 1.1 200 OKContent- type: text/ htm l
[ contents of index.h tm l]
Cornell CS502
Serving a Page
• Connection is broken
client( N etscape)
server( Apache)