Web Server Design Assignment #2: Conditionals & Persistence

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

CP476 Internet Computing Lecture 5 : HTTP, WWW and URL 1 Lecture 5. WWW, HTTP and URL Objective: to review the concepts of WWW to understand how HTTP works.
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 #1: Basic Operations Due: 02/03/2010 Old Dominion University Department of Computer Science CS 495/595 Spring 2010 Martin.
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 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 Assignment #4: Authentication Due: 04/14/2010 Old Dominion University Department of Computer Science CS 495/595 Spring 2010 Martin Klein.
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 Assignment #3: Transfer Encoding & Content Negotiation Due: 03/24/2010 Old Dominion University Department of Computer Science CS 495/595.
Web Server Design Assignment #5: Unsafe Methods & CGI Due: 05/05/2010 Old Dominion University Department of Computer Science CS 495/595 Spring 2010 Martin.
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 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.
Web Development Web Servers.
Web Server Design Week 10 Old Dominion University
Web Server Design Week 4 Old Dominion University
Web Server Design Assignment #5: Unsafe Methods & CGI
HTTP Protocol Specification
Hypertext Transport Protocol
Web Server Design Week 1 Old Dominion University
Web Server Design Assignment #4: Authentication
Web Server Design Assignment #2: Conditionals & Persistence
Web Server Design Week 8 Old Dominion University
Web Server Design Week 11 Old Dominion University
Web Server Design Week 7 Old Dominion University
IS333D: MULTI-TIER APPLICATION DEVELOPMENT
Web Server Design Assignment #5 Extra Credit
Web Server Design Week 4 Old Dominion University
Net431:advanced net services
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
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
Web Server Design Assignment #2: Conditionals & Persistence
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
Web Server Design Week 5 Old Dominion University
Web Server Design Week 11 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
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 Assignment #2: Conditionals & Persistence Old Dominion University Department of Computer Science CS 495/595 Spring 2012 Michael L. Nelson <mln@cs.odu.edu>

Grading To be done by an automated program that will test most (all?) combinations assignment is listed under the day it is to be demoed in class each group will give a 3-4 minute status report the week before an assignment is due! If you have a question: email the class list mimic the behavior of a well known Apache server (e.g., www.cs.odu.edu)

Methods to Support Same as assignment #1 More guidance re: OPTIONS mime type response will be “message/http” with a content length of 0 (i.e., do not return an entity body) support the “*” URI from section 9.2: If the Request-URI is an asterisk ("*"), the OPTIONS request is intended to apply to the server in general rather than to a specific resource. Since a server's communication options typically depend on the resource, the "*" request is only useful as a "ping" or "no-op" type of method; it does nothing beyond allowing the client to test the capabilities of the server. A 200 response SHOULD include any header fields that indicate optional features implemented by the server and applicable to that resource (e.g., Allow), possibly including extensions not defined by this specification. The response body, if any, SHOULD also include information about the communication options. The format for such a body is not defined by this specification, but might be defined by future extensions to HTTP. Content negotiation MAY be used to select the appropriate response format. If no response body is included, the response MUST include a Content-Length field with a field-value of "0".

Methods to Support Any GET method that does not result in a 20X response code MUST have a text/html entity generated by the server explaining the response code (unless prohibited, like 304) HTTP/1.1 301 Moved Permanently Date: Mon, 16 Feb 2009 03:33:10 GMT Server: Apache/2.2.0 Location: http://www.cs.odu.edu/~mln/ Content-Length: 305 Content-Type: text/html; charset=iso-8859-1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>301 Moved Permanently</title> </head><body> <h1>Moved Permanently</h1> <p>The document has moved <a href="http://www.cs.odu.edu/~mln/">here</a>.</p> <hr> <address>Apache/2.2.0 Server at www.cs.odu.edu Port 80</address> </body></html> HTTP/1.1 400 Bad Request Date: Mon, 16 Feb 2009 03:30:12 GMT Server: Apache/2.2.0 Content-Length: 296 Connection: close Content-Type: text/html; charset=iso-8859-1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>400 Bad Request</title> </head><body> <h1>Bad Request</h1> <p>Your browser sent a request that this server could not understand.<br /> </p> <hr> <address>Apache/2.2.0 Server at www.cs.odu.edu Port 80</address> </body></html> HTTP/1.1 501 Method Not Implemented Date: Mon, 16 Feb 2009 03:34:01 GMT Server: Apache/2.2.0 Allow: GET,HEAD,POST,OPTIONS,TRACE Content-Length: 293 Connection: close Content-Type: text/html; charset=iso-8859-1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>501 Method Not Implemented</title> </head><body> <h1>Method Not Implemented</h1> <p>NOTAMETHOD to /index.shtml not supported.<br /> </p> <hr> <address>Apache/2.2.0 Server at www.cs.odu.edu Port 80</address> </body></html>

Status Codes to Support Same as assignment #1, plus: 301 Moved Permanently if “/foo” is a directory, the server should 301 redirect to “/foo/” 302 Found takes a configurable list of regular expressions and provides URIs that the server should 302 redirect to 304 Not Modified 408 Request Timeout 412 Precondition Failed

302 Redirection # # Status: Incoming RE Redirect URI 302: ^(.*)/index.html$ $1/fairlane.html 302: ^(.*)/1.[234]/(.*) $1/1.1/$2

Request Headers Same as assignment #1, but: and add: optional: Connection: close implies supporting persistent & long-lived connections and add: If-Modified-Since If-Unmodified-Since If-Match If-None-Match

Response Headers Same as assignment #1, plus: ETag Location

MIME Types Same as assignment #1

Further Guidance Only “strong” ETags need to be computed see week 3 slides for a possible implementation Use a logical “AND” when combining: If-Modified-Since If-Unmodified-Since If-Match If-None-Match be stingy: all conditions must be satisfied to send data if conditionals would yield both 304 & 412, then send only the 304 Terminate connections after 15 idle seconds

Default Files for Directory Listings Have a configurable file substitute for directory listing. e.g., on requests for “…/foo/”, Apache will substitute “…/foo/index.html” if it is present. our “special file” for A2 will be “fairlane.html” why? because we like Fairlanes

Directories as Resources If the resource is a directory and the directory does not have a default file in it, then generate and HTML entity for the directory and its contents.