Web Server Design Week 7 Old Dominion University

Slides:



Advertisements
Similar presentations
Web Server Design Week 5 Old Dominion University Department of Computer Science CS 495/595 Spring 2010 Martin Klein 2/10/10.
Advertisements

TCP/IP Protocol Suite 1 Chapter 22 Upon completion you will be able to: World Wide Web: HTTP Understand the components of a browser and a server Understand.
Web Server Design Week 8 Old Dominion University Department of Computer Science CS 495/595 Spring 2010 Martin Klein 3/3/10.
Web Server Design Week 4 Old Dominion University Department of Computer Science CS 495/595 Spring 2010 Martin Klein 2/03/10.
Web Server Design Assignment #2: Conditionals & Persistence Due: 02/24/2010 Old Dominion University Department of Computer Science CS 495/595 Spring 2010.
Web Server Design Week 2 Old Dominion University Department of Computer Science CS 495/595 Spring 2010 Martin Klein 1/20/10.
Web Server Design Week 7 Old Dominion University Department of Computer Science CS 495/595 Spring 2010 Martin Klein 2/24/10.
Web Server Design Week 13 Old Dominion University Department of Computer Science CS 495/595 Spring 2010 Martin Klein 4/7/10.
Web Server Design Week 6 Old Dominion University Department of Computer Science CS 495/595 Spring 2010 Martin Klein 2/17/10.
Web Server Design Week 5 Old Dominion University Department of Computer Science CS 495/595 Spring 2012 Michael L. Nelson 02/07/12.
Web Programming Week 1 Old Dominion University Department of Computer Science CS 418/518 Fall 2007 Michael L. Nelson 8/27/07.
Web Server Design Week 1 Old Dominion University Department of Computer Science CS 495/595 Spring 2006 Michael L. Nelson 1/09/06.
Web Server Design Week 3 Old Dominion University Department of Computer Science CS 495/595 Spring 2006 Michael L. Nelson 1/23/06.
Web Server Design Week 6 Old Dominion University Department of Computer Science CS 495/595 Spring 2006 Michael L. Nelson 2/13/06.
What’s Really Happening
HTTP – An overview.
The Hypertext Transfer Protocol
HTTP Headers.
Web Server Design Week 10 Old Dominion University
Chapter 22 Web Hosting and Internet Servers
COMP2322 Lab 2 HTTP Steven Lee Feb. 8, 2017.
Web Server Design Week 4 Old Dominion University
HTTP Protocol Specification
Web Server Design Week 1 Old Dominion University
Web Server Design Assignment #2: Conditionals & Persistence
Web Server Design Week 8 Old Dominion University
Web Server Design Week 11 Old Dominion University
HTTP Protocol.
Web Server Design Week 4 Old Dominion University
Hypertext Transfer Protocol
HTTP Request Method URL Protocol Version GET /index.html HTTP/1.1
Hypertext Transfer Protocol
Web Server Design Week 15 Old Dominion University
Web Server Design Week 5 Old Dominion University
Hypertext Transfer Protocol
Group 3: Olena Hunsicker and Divya Josyula
CS 5565 Network Architecture and Protocols
Web Server Design Assignment #2: Conditionals & Persistence
Web Server Design Week 2 Old Dominion University
Web Server Design Week 15 Old Dominion University
Web Server Design Week 8 Old Dominion University
Web Server Design Week 1 Old Dominion University
Web Server Design Week 8 Old Dominion University
Old Dominion University Department of Computer Science
Web Server Design Week 6 Old Dominion University
Web Server Design Week 10 Old Dominion University
Web Server Design Week 8 Old Dominion University
Web Server Design Week 3 Old Dominion University
Web Server Design Week 11 Old Dominion University
Hypertext Transfer Protocol
Kevin Harville Source: Webmaster in a Nutshell, O'Rielly Books
The HTTP Protocol COSC 2206 Internet Tools The HTTP Protocol
Web Server Design Week 5 Old Dominion University
Web Server Design Week 3 Old Dominion University
Web Server Design Week 4 Old Dominion University
HTTP Hypertext Transfer Protocol
Web Server Design Week 16 Old Dominion University
Web Server Design Week 12 Old Dominion University
Web Server Design Week 12 Old Dominion University
Web Server Design Week 14 Old Dominion University
Web Server Design Assignment #1: Basic Operations
Hypertext Transfer Protocol
Web Server Design Week 6 Old Dominion University
Web Server Design Assignment #5 Extra Credit
Web Server Design Week 3 Old Dominion University
Web Server Design Week 3 Old Dominion University
Old Dominion University Department of Computer Science
Web Server Design Week 7 Old Dominion University
Web Programming Week 1 Old Dominion University
Web Server Design Week 7 Old Dominion University
Presentation transcript:

Web Server Design Week 7 Old Dominion University Department of Computer Science CS 495/595 Spring 2012 Michael L. Nelson <mln@cs.odu.edu> 02/21/12

Encodings gzip extension: .gz (sometimes seen as x-gzip) compress extension: .Z (sometimes seen as x-compress) deflate extension: .zip identity no encoding at all chunked breaks the body into a series of server-chosen “chunks” optimization for dynamically produced content

Identity Encoding The default, “no transformation” encoding “applying the identity encoding to a resource is an _________ operation”

Content Encoding vs. Transfer Encoding GET /bottle1 HTTP/1.1 Transfer-Encoding Origin Server Client HTTP/1.1 200 OK Content-Encoding images from: http://www.madeirawineguide.com/madeira_v300/

Content-Encodings “Content-Encoding is primarily used to allow a document to be compressed without losing the identity of its underlying media type.” section 14.11

Content-Encoding Example (Correct) AIHT:~/Desktop/cs595-s06 mln$ telnet www.cs.odu.edu 80 Trying 128.82.4.2... Connected to xenon.cs.odu.edu. Escape character is '^]'. HEAD /~mln/pubs/bollenj_adaptive.ps.gz HTTP/1.1 Host: www.cs.odu.edu Connection: close HTTP/1.1 200 OK Date: Mon, 20 Feb 2006 04:30:25 GMT Server: Apache/1.3.26 (Unix) ApacheJServ/1.1.2 PHP/4.3.4 Last-Modified: Thu, 25 Jul 2002 16:58:58 GMT ETag: "1c16-139ea-3d402e52" Accept-Ranges: bytes Content-Length: 80362 Content-Type: application/postscript Content-Encoding: x-gzip Connection closed by foreign host.

Content-Encoding Example (Incorrect) AIHT:~/Desktop mln$ telnet www.cs.odu.edu 80 Trying 128.82.4.2... Connected to xenon.cs.odu.edu. Escape character is '^]'. HEAD /~mln/pubs/bollenj_adaptive.ps.gz HTTP/1.1 Host: www.cs.odu.edu Connection: close HTTP/1.1 200 OK Date: Mon, 26 Feb 2007 02:06:25 GMT Server: Apache/2.2.0 Last-Modified: Thu, 25 Jul 2002 16:58:58 GMT ETag: "1c16-139ea-92cab880" Accept-Ranges: bytes Content-Length: 80362 Content-Type: application/x-gzip Connection closed by foreign host. Wrong, Wrong, Wrong!!!!!!!

Why is it incorrect? the encodings are the same, % telnet www.cs.odu.edu 80 Trying 128.82.4.2... Connected to xenon.cs.odu.edu. Escape character is '^]'. HEAD /~mln/adl98.ppt.gz HTTP/1.1 Host: www.cs.odu.edu Connection: close HTTP/1.1 200 OK Date: Mon, 20 Feb 2012 02:21:29 GMT Server: Apache/2.2.17 (Unix) PHP/5.3.5 mod_ssl/2.2.17 OpenSSL/0.9.8q Last-Modified: Mon, 25 Mar 2002 17:15:44 GMT ETag: "33e94-39d06961d5000" Accept-Ranges: bytes Content-Length: 212628 Content-Type: application/x-gzip the encodings are the same, the types are different

Compress % telnet www.cs.odu.edu 80 Trying 128.82.4.2... Connected to xenon.cs.odu.edu. Escape character is '^]'. HEAD /~mln/ntrs.tar.Z HTTP/1.1 Host: www.cs.odu.edu Connection: close HTTP/1.1 200 OK Date: Mon, 20 Feb 2012 02:31:45 GMT Server: Apache/2.2.17 (Unix) PHP/5.3.5 mod_ssl/2.2.17 OpenSSL/0.9.8q Last-Modified: Thu, 12 Jun 2003 18:45:46 GMT ETag: "7fffffff-3bfeb99a3ca80" Accept-Ranges: bytes Content-Length: 2147483647 Content-Type: application/x-compress

Zip % telnet www.cs.odu.edu 80 Trying 128.82.4.2... Connected to xenon.cs.odu.edu. Escape character is '^]'. HEAD /~mln/michael-hany.zip HTTP/1.1 Host: www.cs.odu.edu Connection: close HTTP/1.1 200 OK Date: Mon, 20 Feb 2012 03:16:35 GMT Server: Apache/2.2.17 (Unix) PHP/5.3.5 mod_ssl/2.2.17 OpenSSL/0.9.8q Last-Modified: Fri, 17 Feb 2012 20:43:13 GMT ETag: "223e5a1-4b92efe4dfc40" Accept-Ranges: bytes Content-Length: 35906977 Content-Type: application/zip

Transfer Encodings “Transfer-Encoding is a property of the message, not of the entity, and thus MAY be added or removed by any application along the request/response chain.” section 4.5

Chunked Encoding “The chunked encoding modifies the body of a message in order to transfer it as a series of chunks, each with its own size indicator, followed by an OPTIONAL trailer containing entity-header fields. This allows dynamically produced content to be transferred along with the information necessary for the recipient to verify that it has received the full message.” sections 3.6.1, 19.4.6

Chunked Encoding Example AIHT:~/Desktop/cs595-s06 mln$ telnet www.cs.odu.edu 80 Trying 128.82.4.2... Connected to xenon.cs.odu.edu. Escape character is '^]'. GET /~mln HTTP/1.1 Connection: close Host: www.cs.odu.edu Connection closed by foreign host. HTTP/1.1 301 Moved Permanently Date: Mon, 09 Jan 2006 19:32:24 GMT Server: Apache/1.3.26 (Unix) ApacheJServ/1.1.2 PHP/4.3.4 Location: http://www.cs.odu.edu/~mln/ Connection: close Transfer-Encoding: chunked Content-Type: text/html; charset=iso-8859-1 12e <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <HTML><HEAD> <TITLE>301 Moved Permanently</TITLE> </HEAD><BODY> <H1>Moved Permanently</H1> The document has moved <A HREF="http://www.cs.odu.edu/~mln/">here</A>.<P> <HR> <ADDRESS>Apache/1.3.26 Server at www.cs.odu.edu Port 80</ADDRESS> </BODY></HTML> 0

Chunked Encoding Example 2 AIHT:~/Desktop/cs595-s06 mln$ telnet www.cs.odu.edu 80 Trying 128.82.4.2... Connected to xenon.cs.odu.edu. Escape character is '^]'. GET / HTTP/1.1 Host: www.cs.odu.edu HTTP/1.1 200 OK Date: Tue, 21 Feb 2006 03:54:31 GMT Server: Apache/1.3.26 (Unix) ApacheJServ/1.1.2 PHP/4.3.4 Transfer-Encoding: chunked Content-Type: text/html 5f6 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <!-- saved from url=(0036)http://www.cs.odu.edu/newcssite/new/ --> <!-- saved from url=(0019)http://sci.odu.edu/ --> <HTML xmlns:st1 = "urn:schemas-microsoft-com:office:smarttags"> <HEAD><TITLE>Department Of Computer Science</TITLE> [lots of html deleted] [demo this example to see the various “chunks”]

TE Request Header & Transfer-Encoding Response Header Client specifies preferences for transfer encoding in the “TE:” header section 14.39 Server marks the encoding used with the “Transfer-Encoding” header section 14.41 Both headers use the same encoding values available with “Content-Encoding”, plus the special “chunked” encoding and the “Trailers” keyword

TE Example (Almost) dhcp65-74-196-93:~/Desktop/cs595-s06 mln$ telnet www.cs.odu.edu 80 Trying 128.82.4.2... Connected to xenon.cs.odu.edu. Escape character is '^]'. GET / HTTP/1.1 TE: gzip;q=1.0, Trailers Host: www.cs.odu.edu HTTP/1.1 200 OK Date: Mon, 27 Feb 2006 15:52:33 GMT Server: Apache/1.3.26 (Unix) ApacheJServ/1.1.2 PHP/4.3.4 Transfer-Encoding: chunked Content-Type: text/html 5f6 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <!-- saved from url=(0036)http://www.cs.odu.edu/newcssite/new/ --> <!-- saved from url=(0019)http://sci.odu.edu/ --> [more html deleted]

Time / Space Tradeoff Hard to find examples of compression used in transfer encoding http://www.webreference.com/internet/software/servers/http/compression/2.html http://www-128.ibm.com/developerworks/web/library/wa-httpcomp/ idea: for very heavy volume web servers, answering the request quickly is more important than preserving bandwidth Complexity of management seems to be the limiting factor in compression with content encodings

Trailer Response Header The “Trailer” response header lets the client know that additional headers will appear at the end of the chunked response section 14.40 headers can be reconstructed by downstream servers headers that can never be trailers: Transfer-Encoding Content-Length Trailer

Trailer Example HTTP/1.1 200 OK Date: Mon, 22 Mar 2004 11:15:03 GMT Content-Type: text/html Content-Length: 129 Expires: Sat, 27 Mar 2004 21:12:00 GMT <html><body><p>The file you requested is 3,400 bytes long and was last modified: Sat, 20 Mar 2004 21:12:00 GMT. </p></body></html> HTTP/1.1 200 OK Date: Mon, 22 Mar 2004 11:15:03 GMT Content-Type: text/html Transfer-Encoding: chunked Trailer: Expires 29 <html><body><p>The file you requested is 5 3,400 23 bytes long and was last modified: 1d Sat, 20 Mar 2004 21:12:00 GMT 13 .</p></body></html> Expires: Sat, 27 Mar 2004 21:12:00 GMT “Expires:” response header covered in section 14.21 Examples from: http://www.tcpipguide.com/free/t_HTTPDataLengthIssuesChunkedTransfersandMessageTrai-3.htm

Two More Request Headers to Process

User-Agent Request Header section 14.43 “This is for statistical purposes, the tracing of protocol violations, and automated recognition of user agents for the sake of tailoring responses to avoid particular user agent limitations. User agents SHOULD include this field with requests.” examples: User-Agent: CERN-LineMode/2.15 libwww/2.17b3 User-Agent: CS 495/595 Spring 2006 Automated Checker (A3)

Referer Request Header section 14.36 “The Referer[sic] request-header field allows the client to specify, for the server's benefit, the address (URI) of the resource from which the Request-URI was obtained (the "referrer", although the header field is misspelled.) The Referer request-header allows a server to generate lists of back-links to resources for interest, logging, optimized caching, etc. It also allows obsolete or mistyped links to be traced for maintenance. The Referer field MUST NOT be sent if the Request-URI was obtained from a source that does not have its own URI, such as input from the user keyboard.” examples: Referer: http://www.w3.org/hypertext/DataSources/Overview.html Referer: /opening-page.php