Presentation is loading. Please wait.

Presentation is loading. Please wait.

Old Dominion University Department of Computer Science

Similar presentations


Presentation on theme: "Old Dominion University Department of Computer Science"— Presentation transcript:

1 Web Server Design Assignment #3: Transfer Encoding & Content Negotiation
Old Dominion University Department of Computer Science CS 495/595 Spring 2012 Michael L. Nelson

2 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 person will give a 3-4 minute status report the week before an assignment is due! If you have a question: the class list mimic the behavior of a well known Apache server (e.g.,

3 Methods to Support Same as assignments 1 & 2

4 Status Codes to Support
Same as assignments 1 & 2, plus: 206 Partial Content 300 Multiple Choice use if there are > 1 possible representations provide html list for a user to pick from 406 Not Acceptable use if there are no possible representations that match the requested q values 416 Requested Range Not Satisfiable

5 Note: I'll be testing 403 Via sudo, I'm going to remove the read permissions on one of your files on mln-web.cs.odu.edu

6 Request Headers Same as assignments 1 & 2 Add: (note: we won't do TE:)
Accept Accept-Charset Accept-Encoding Accept-Language Negotiate Range User-Agent Referer (note: we won't do TE:)

7 Response Headers Same as assignments 1 & 2, but add: Vary
Content-Language Content-Location Content-Encoding “Transfer-Encoding: chunked” Alternates TCN Accept-Range Content-Range Modified Content-type add charset after type if not ISO (ASCII) see week 8 slides for example

8 MIME Types Same as assignment #1

9 Encoding Types compress, gzip, deflate, identity, chunked
(see week 8 lecture) Use “chunked” transfer encoding for any dynamically generated server response i.e., directory listings and 3xx, 4xx, 5xx html snippets use 2 lines as the “chunk”

10 Further Guidance Support/advertise partial GET capability for all resources for all resources/responses for which you don't use Transfer-Encoding: chunked i.e.: representation == files on the file system Use these language encodings en, es, de, ja, ko, ru Use these non-ASCII charset encodings “.jis” -> “iso-2022-jp” “koi8-r” -> “koi8-r” “euc-kr” -> “euc-kr”

11 Further Guidance Build “Vary” response header as:
Vary: negotiate, header1, header2, …, headerN use the “Vary” header only if content negotiation has been performed No “default” q values in content negotiation remember: content negotiation only happens if the request would have generated a 404 without content negotiation Generate structured ETags on selected representation as per RFC-2295 (section 9.2)

12 Status Code Definition
Generate a 200: if there is only a single representation as a result of Accept headers and q values Generate a 300: if there are multiple representations that “tie” in q values OR the client sends a “Negotiate: 1.0” request header generate an HTML list showing possible options Generate a 406: if no representations are suitable given Accept headers and q values generate an HTML list showing closest options

13 Redirections Delete the previous 302 redirections
Add the 301 redirections on the next page:

14 301 Redirection # # Incoming RE 301 URI
^(.*)/dj-shadow/(.*) ^/wsdl/$ ^(.*)/3/(.*) $1/4/directory3isempty

15 Combined Log Format Basically, add Referer: and User-Agent: fields:
"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""


Download ppt "Old Dominion University Department of Computer Science"

Similar presentations


Ads by Google