lecture 7, 20-755: the internet, summer 1999 1 20-755: the internet lecture 7: web services i david...

41
Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department of Electrical and Computer Engineering Carnegie Mellon University Institute for eCommerce, Summer 1999

Post on 19-Dec-2015

216 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 1

20-755: The InternetLecture 7: Web Services I

David O’Hallaron

School of Computer Science and

Department of Electrical and Computer Engineering

Carnegie Mellon University

Institute for eCommerce, Summer 1999

Page 2: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 2

Today’s lecture

• Web history and HTTP intro (30 min)

• Break (10 min)

• HTTP/1.1 methods (50 min)

Page 3: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 3

Web history

• 1945: – Vannevar Bush, “As we may think”, Atlantic Monthly,

July, 1945.

» Describes the idea of a distributed hypertext system.

» a “memex” that mimics the “web of trails” in our minds.

• 1989:– Tim Berners-Lee (CERN) writes internal proposal to

develop a distributed hypertext system.

» connects “a web of notes with links”.

» intended to help CERN physicists in large projects share and manage information

• 1990:– Tim BL writes graphical browser for Next machines.

Page 4: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 4

Web history (cont)

• 1992– NCSA server released

– 26 WWW servers worldwide

• 1993– Marc Andreessen releases first version of NCSA Mosaic

(Feb)

– Mosaic version released for (Windows, Mac, Unix).

– Web (port 80) traffic at 1% of NSFNET backbone traffic.

– Over 200 WWW servers worldwide.

• 1994– Andreessen and colleagues leave NCSA to form "Mosaic

Communications Corp" (now Netscape).

Page 5: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 5

Web server statistics

source: Netcraft Web Survey www.netcraft.com/survey

Apache

Microsoft

Other

Mosaic

Netscape

Page 6: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 6

Web services

webclient

(browser)

webserver

HTTP request

HTTP response

• Clients and servers communicate using the HyperText Transfer Protocol (HTTP)

• Current version is HTTP/1.1

– RFC 2616, June, 1999.

Page 7: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 7

Static and dynamic content

• The content returned in HTTP responses can be either static or dynamic.

• Static content: – content stored in files and retrieved in response to an

HTTP request

» HTML files

» images

» audio clips

• Dynamic content:– content produced on-the-fly in response to an HTTP

request

» usually by CGI process executed by the server.

Page 8: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 8

Backus-Naur Form (BNF)• BNF is a way to write grammars that specify

computer languages, protocols, and command line arguments to programs (and many others)

– BNF describes the legal strings for that language or protocol

• The HTTP spec uses the following BNF constructs (among others):

– “literal”

» literal text

– rule1 | rule2

» rule 1 or rule 2 is allowed

Page 9: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 9

BNF (cont)

• HTTP BNF constructs– (rule1 rule2)

» sequence of elements: rule1 followed by rule2

» (elem (foo | bar) elem)

– “elem foo elem” or “elem bar elem” are allowed.

– <n>*<m>(element)

» at least m and at most n occurences of element.

» default values are n=0 and m=infinity.

» *(element) allows zero or more occurences of element.

» 1(element) requires at least one element.

» 1*2(element) allows one or two.

– [rule]

» rule is optional

Page 10: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 10

BNF (cont)

• Basic rules– OCTET = <any 8-bit sequence of data>

– CHAR = <any ASCI I char>

– ALPHA = <A...Z and a...z>

– DIGIT = <0…9>

– SP = <ASCII SPACE character (32)>

– CRLF = <newline \n>

– TEXT = <printable ASCII chars>

Page 11: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 11

URIs and URLs

• network resources are identified by Universal Resource Indicators (URIs)

• The most familiar is the absolute URI known as the HTTP URL:– http-url = “http:” “//” host [“:” port] [abs_path]– port defaults to “80”– abs_path defaults to “/”– abs_path ending in / defaults to …/index.html

• examples:– http://euro.ecom.cmu.edu:80/index.html– http://euro.ecom.cmu.edu/index.html– http://euro.ecom.cmu.edu

Page 12: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 12

HTTP/1.1 messages

An HTTP message is either a Request or a Response:

HTTP-message = Request | Response

Requests and responses have the same basic form:

generic-message = start-line *message-header CRLF [message body]

start-line = Request-line | Status linemessage-header = field-name “:” [field value] CRLFmessage-body = <e.g., HTML file>

Page 13: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 13

HTTP/1.1 requests

Request = Method SP Request-URI SP HTTP-VERSION CRLF *(general-header | request-header | entity header) CRLF [ message-body ]

• Method: tells the server what operation to perform– GET: retrieve file

– OPTIONS: retrieve server and access capabilities

• Request-URI: identifies the resource to manipulate– data file (HTML), executable file (CGI)

• headers: parameterize the method– Accept-Language: en-us – User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 98)

• message-body: text characters

Page 14: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 14

HTTP/1.1 responsesResponse = HTTP-Version SP Status-Code SP Reason-Phrase CRLF *(general-header | response-header | entity header) CRLF [ message-body ]

• Status code: 3-digit number

• Reason-Phrase: explanation of status code

• headers: parameterize the response– Date: Thu, 22 Jul 1999 23:42:18 GMT

– Server: Apache/1.2.5 BSDI3.0-PHP/FI-2.0

– Content-Type: text/html

• message-body:– file

Page 15: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 15

How servers interpret Request-URIs

• GET / HTTP/1.1– resolves to home/html/index.html

– action: retrieves index.html

• GET /index.html ...– home/html/index.html

– action: retrieves index.html

• GET /foo.html ...– home/html/foo.html

– action: retrieves foo.html

• GET /cgi-bin/test.pl …– home/cgi-bin/test.pl

– action: runs test.pl

• GET http://euro.ecom.cmu.edu/index.html– home/html/index.html

– action: retrieves index.html

home

cgi-bin html

test.pl index.html foo.html

Page 16: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 16

Example HTTP/1.1 conversationkittyhawk> telnet euro.ecom.cmu.edu 80Connected to euro.ecom.cmu.edu.Escape character is '^]'.

GET /test.html HTTP/1.1 ;request lineHost: euro.ecom.cmu.edu ;request hdrCRLFHTTP/1.1 200 OK ;status lineDate: Thu, 22 Jul 1999 03:37:04 GMT ;response hdrServer: Apache/1.3.3 Ben-SSL/1.28 (Unix)Last-Modified: Thu, 22 Jul 1999 03:33:21 GMTETag: "48bb2-4f-37969101"Accept-Ranges: bytesContent-Length: 79Content-Type: text/htmlCRLF<html> ;beginning of 79 byte message body<head><title>Test page</title></head><body><h1>Test page</h1></html>

Request sent by client

Response sent by server

Page 17: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 17

Break time!

Page 18: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 18

Today’s lecture

• Web history and HTTP/1.1 intro (30 min)

• Break (10 min)

• HTTP/1.1 methods (50 min)

Page 19: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 19

Example HTTP/1.1 conversationkittyhawk> telnet euro.ecom.cmu.edu 80Connected to euro.ecom.cmu.edu.Escape character is '^]'.

GET /test.html HTTP/1.1 ;request lineHost: euro.ecom.cmu.edu ;request hdrCRLFHTTP/1.1 200 OK ;status lineDate: Thu, 22 Jul 1999 03:37:04 GMT ;response hdrServer: Apache/1.3.3 Ben-SSL/1.28 (Unix)Last-Modified: Thu, 22 Jul 1999 03:33:21 GMTETag: "48bb2-4f-37969101"Accept-Ranges: bytesContent-Length: 79Content-Type: text/htmlCRLF<html> ;beginning of 79 byte message body<head><title>Test page</title></head><body><h1>Test page</h1></html>

Request sent by client

Response sent by server

Page 20: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 20

OPTIONS

• Retrieves information about the server in general or resources on that server, without actually retrieving the resource.

• Request URIs:– if request URI = “*”, then the request is about the server

in general

» Is the server up?

» Is it HTTP/1.1 compliant?

» What brand of server?

» What OS is it running?

– if request URI != “*”, then the request applies to the options that available when accessing that resource:

» what methods can the client use to access the resource?

Page 21: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 21

OPTIONS (euro.ecom)

kittyhawk> telnet euro.ecom.cmu.edu 80Trying 128.2.218.2...Connected to euro.ecom.cmu.edu.Escape character is '^]'.

OPTIONS * HTTP/1.1Host: euro.ecom.cmu.eduCRLFHTTP/1.1 200 OKDate: Thu, 22 Jul 1999 06:12:11 GMTServer: Apache/1.3.3 Ben-SSL/1.28 (Unix)Content-Length: 0Allow: GET, HEAD, OPTIONS, TRACE

Request

Response

Host is a requiredheader in HTTP/1.1 but not in HTTP/1.0

Page 22: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 22

OPTIONS (euro.ecom)

kittyhawk> telnet euro.ecom.cmu.edu 80Trying 128.2.218.2...Connected to euro.ecom.cmu.edu.Escape character is '^]'.

OPTIONS /cgi-bin/fixit.pl HTTP/1.1Host: euro.ecom.cmu.eduCRLFHTTP/1.1 200 OKDate: Thu, 22 Jul 1999 22:09:11 GMTServer: Apache/1.3.3 Ben-SSL/1.28 (Unix)Content-Length: 0Allow: GET, HEAD, POST, OPTIONS, TRACE

Page 23: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 23

OPTIONS (microsoft.com)

kittyhawk> telnet microsoft.com 80Trying 207.46.131.137...Connected to microsoft.com.Escape character is '^]'.

OPTIONS * HTTP/1.1Host: microsoft.comCRLFHTTP/1.0 200 OKServer: Microsoft-IIS/4.0Date: Thu, 22 Jul 1999 04:13:34 GMTPublic: OPTIONS, TRACE, GET, HEAD, POST, PUT, DELETEContent-Length: 0

Page 24: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 24

OPTIONS (microsoft.com)

kittyhawk> telnet microsoft.com 80Trying 207.46.130.150...Connected to microsoft.com.Escape character is '^]'.

OPTIONS / HTTP/1.1Host: microsoft.comCRLFHTTP/1.0 200 OKServer: Microsoft-IIS/4.0Date: Thu, 22 Jul 1999 22:13:46 GMTPublic: OPTIONS, TRACE, GET, HEAD, POST, PUT, DELETEAllow: OPTIONS, TRACE, GET, HEADContent-Length: 0

Page 25: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 25

OPTIONS (amazon.com)

kittyhawk> telnet amazon.com 80Trying 208.216.182.15...Connected to amazon.com.Escape character is '^]'.

OPTIONS / HTTP/1.0CRLFHTTP/1.0 405 Because I felt like it.Server: Netscape-Commerce/1.12Date: Thursday, 22-Jul-99 04:17:32 GMTAllow: GET, POSTContent-type: text/plain

Page 26: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 26

OPTIONS (etoys.com)

kittyhawk> telnet etoys.com 80Trying 206.251.23.116...Connected to etoys.com.Escape character is '^]'.

OPTIONS * HTTP/1.1Host: etoys.comCRLFHTTP/1.1 200 OKDate: Thu, 22 Jul 1999 04:52:59 GMTServer: Etoys Web server 1.0Content-Length: 0Allow: GET, HEAD, OPTIONS, TRACE

Page 27: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 27

OPTIONS (etoys.com)

kittyhawk> telnet etoys.com 80Trying 206.251.23.116...Connected to etoys.com.Escape character is '^]'.

OPTIONS /index.html HTTP/1.1Host: etoys.comCRLFHTTP/1.1 200 OKDate: Thu, 22 Jul 1999 22:04:43 GMTServer: Etoys Web server 1.0Content-Length: 0Allow: GET, HEAD, POST, OPTIONS, TRACE

Page 28: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 28

GET

• Retrieves the information identified by the request URI.

– static content (HTML file)

– dynamic content produced by CGI program

» passes arguments to CGI program in URI

• Can also act as a conditional retrieve when certain request headers are present:

– If-Modified-Since

– If-Unmodified-Since

– If-Match

– If-None-Match

– If-Range

• Conditional GETs useful for caching

Page 29: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 29

GET (euro.ecom.cmu.edu)kittyhawk> telnet euro.ecom.cmu.edu 80Connected to euro.ecom.cmu.edu.Escape character is '^]'.

GET /test.html HTTP/1.1Host: euro.ecom.cmu.eduCRLFHTTP/1.1 200 OKDate: Thu, 22 Jul 1999 03:37:04 GMTServer: Apache/1.3.3 Ben-SSL/1.28 (Unix)Last-Modified: Thu, 22 Jul 1999 03:33:21 GMTETag: "48bb2-4f-37969101"Accept-Ranges: bytesContent-Length: 79Content-Type: text/htmlCRLF<html><head><title>Test page</title></head><body><h1>Test page</h1></html>

Page 30: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 30

GET request to euro.ecom(Internet Explorer browser)

GET /test.html HTTP/1.1 Accept: */* Accept-Language: en-us Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 98) Host: euro.ecom.cmu.edu Connection: Keep-AliveCRLF

Page 31: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 31

GET response from euro.ecom

HTTP/1.1 200 OKDate: Thu, 22 Jul 1999 04:02:15 GMTServer: Apache/1.3.3 Ben-SSL/1.28 (Unix)Last-Modified: Thu, 22 Jul 1999 03:33:21 GMTETag: "48bb2-4f-37969101"Accept-Ranges: bytesContent-Length: 79Keep-Alive: timeout=15, max=100Connection: Keep-AliveContent-Type: text/htmlCRLF<html><head><title>Test page</title></head><body><h1>Test page</h1></html>

Page 32: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 32

GET request to euro.ecom (Netscape browser)

GET /test.html HTTP/1.0Connection: Keep-AliveUser-Agent: Mozilla/4.06 [en] (Win98; I)Host: euro.ecom.cmu.eduAccept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*Accept-Encoding: gzipAccept-Language: enAccept-Charset: iso-8859-1,*,utf-8CRLF

Page 33: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 33

GET response from euro.ecom

HTTP/1.1 200 OKDate: Thu, 22 Jul 1999 06:34:42 GMTServer: Apache/1.3.3 Ben-SSL/1.28 (Unix)Last-Modified: Thu, 22 Jul 1999 03:33:21 GMTETag: "48bb2-4f-37969101"Accept-Ranges: bytesContent-Length: 79Keep-Alive: timeout=15, max=100Connection: Keep-AliveContent-Type: text/htmlCRLF<html><head><title>Test page</title></head><body><h1>Test page</h1></html>

Page 34: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 34

HEAD

• Returns same response header as a GET request would have...

• But doesn’t actually carry out the request.– Some servers don’t implement this properly.

– example: espn.com

• Useful for applications that– check for valid and broken links in Web pages.

– check Web pages for modifications.

Page 35: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 35

Head (etrade.com)

kittyhawk> telnet etrade.com 80Trying 198.93.32.75...Connected to etrade.com.Escape character is '^]'.

HEAD / HTTP/1.1Host: etrade.comCRLFHTTP/1.0 200 OKServer: Netscape-Enterprise/2.01-p100Date: Fri, 23 Jul 1999 03:18:57 GMTRequestStartUsec: 780328RequestStartSec: 932699937Accept-ranges: bytesLast-modified: Tue, 20 Jul 1999 00:59:26 GMTContent-length: 15370Content-type: text/html

Page 36: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 36

HEAD (espn.com)

kittyhawk> telnet espn.com 80Trying 204.202.136.31...Connected to espn.com.Escape character is '^]'.

HEAD / HTTP/1.1Host: espn.comCRLFHTTP/1.1 301 Document MovedServer: Microsoft-IIS/4.0Date: Fri, 23 Jul 1999 03:22:32 GMTLocation: http://espn.go.com/Content-Type: text/htmlCRLF<html>Is now part of the http://espn.go.com service<br></html>

Modern browserstransparently

connect to the newespn.go.com location

Page 37: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 37

POST

• Another technique for producing dynamic content.

• Executes program identified in request URI (the CGI program).

• Passes arguments to CGI program in the message body

– unlike GET, which passes the arguments in the URI itself.

• Responds with output of the CGI program.

Page 38: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 38

POST request

POST /cgi-bin/post.pl HTTP/1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */* Referer: http://www.cs.cmu.edu/~droh/755/form.html Accept-Language: en-us Content-Type: application/x-www-form-urlencoded Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 98) Host: kittyhawk.cmcl.cs.cmu.edu:8000 Content-Length: 25 CRLFfirst=dave&last=ohallaron

Page 39: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 39

POST response

HTTP/1.1 200 OKDate: Fri, 23 Jul 1999 05:42:30 GMTServer: Apache/1.3.4 (Unix)Transfer-Encoding: chunkedContent-Type: text/html

<p>first=dave&last=ohallaronDynamic content generated by CGI script

Response header generated by server

Page 40: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 40

TRACE

• returns contents of request header in response message body.

• HTTP’s version of an echo server.

• used for debugging.

Page 41: Lecture 7, 20-755: The Internet, Summer 1999 1 20-755: The Internet Lecture 7: Web Services I David O’Hallaron School of Computer Science and Department

Lecture 7, 20-755: The Internet, Summer 1999 41

PUT and DELETE

• rarely supported functions

• PUT:– add a URI to the server’s file system

• DELETE– delete a URI from the server’s file system