CS526 S2008 Midterm Exam

Enter your UFP count login and the student ID with dash as password and submit the midterm before 11:59pm 3/19/2008.   You can work at home or at PC lab where you can access it through a web browser.  For multiple-choice questions, you must choose either yes or no for each answer.

Make sure your retrieve and submit this midterm web page through uccs vpn, since blanca server only accepts uccs connections.

After filled in the answers in the text areas and selected the answers, please print a copy of the web page with your answers before you hit the submit button. Note that "save file" menuitem does not save the data you enter. It only saves the HTML source file. Submit your answers by pressing the submit button at the end of this web page.  You will get a confirm web page and an email with all your answers. Save or print  the answer confirmation web page for your record. If you have problem getting the confirm web page or submitting midterm answers using the web page, just email me the answers.

Your name:
Your login on UCCS UFP account:
Your password (your SID with Dash nnn-nn-nnnn pattern):


  1. Apache
    1. Web Server Configuration
      1. Specify a barebone httpd.conf that specifies a web server listening to port 8000 and serving web pages located in /var/www/html directory.
      2. Why some CS Unix Machines run the apache web server using the nobody account instead of root?

      3. What is the advantage of using CGIWrap type software package where the apache server daemon will switch to run as a specific user account? For example when receives an url with http://blanca.uccs.edu/~chow/cgi-bin/grade/midterm.cgi the apache daemon switch to chow as user ID?

    2. Cache Server Configuration
      1. When will a client browser sends a http request with the If-Modified-Since header? Give a simple scenario.

      2. What is the main feature of Akamai's Edge Server Side Include (ESI) technique that speeds up the caching server performance? Hint: http://cs.uccs.edu/~chow/pub/conf/pdcat/tutorial.ppt#11.
      3. The access_log of an apache-based cache server show the following entry:
        128.198.174.16 - - [30/Jan/2006:17:01:41 -0700] "GET http://cyber.law.harvard.edu/blogs/ccLogo.gif HTTP/1.0" 302 321 128.198.174.16 - - [30/Jan/2006:17:02:18 -0700] "GET http://www.ibm.com/ HTTP/1.0" 302 206
        128.198.174.16 - - [30/Jan/2006:17:02:18 -0700] "GET http://www.ibm.com/us/ HTTP/1.0" 200 24158
        It is different than the normal apache web server access log such as
        128.198.174.16 - - [30/Jan/2006:15:18:32 -0700] "GET / HTTP/1.1" 200 104
        128.198.174.16 - - [30/Jan/2006:15:57:29 -0700] "GET / HTTP/1.1" 200 103
        128.198.162.63 - - [30/Jan/2006:15:58:36 -0700] "GET /eng/ HTTP/1.1" 200 252.
        What is the main difference and why?
    3. Reverse Proxy
      1. Why we need ProxyPassReverse? What happens if did not specify that in a reverse proxy?

      2. Besides shielding and load balancing the real servers, reverse proxy can install SSL hardware accelerator and terminate the SSL sessions. In that case, the web traffic between the apache-based reverse proxy and the real server will the plain http traffic. What will be the main drawback and restriction in term of that configuration and how do propose to solve it?
    4. Web hosting can be done by using "name-based Virtual Hosting" provided by apache or create a vmware virtual machine for each user. What are tradeoff in terms of 1) performance and 2) user control? Assume the same host machine is used to host all web sites.

  2. Introduction to CDN and Locally Distributed Web-Server System.
    1. Caching
      1. Mirror server can be used to improve the content delivery system performance. However selecting a mirror server with the best performance from a list is challenging. From a end user point of view, how you go about selecting a good server for downloading the Fedora core 8.0.1 released 11/4/2007 from the list of mirror servers?
      2. Http1.1 has a byte range header, http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35, allow a user to request certain ranges of bytes in a web document. It could be used to allow parallel downloading from a set of mirror servers. How you decide which subset of mirror servers will you choose to perform parallel download? You can use the same fedora8 mirror server list as an example.
    2. Taxonomy of Locally Distributed Web-Server System
      1. In page 270 of Cardellini's paper, three main classes of locally distributed architectures are identified. To what class does a content switch-based cluster belong?
      2. If we extend the taxonomy of Cardellini's paper for globally distributed web-server system, how do you classify the Akamai's cache server system?

  3. LVS
    1. LVS-NAT.
      1. The real server can be run at different port numbers than that known to the client? Yes No
      2. What guarantees that the return http response from a real server be routed through the director?
    2. LVS-Tunnel.
      What is the main disadvantage of a LVS-Tunnel configuration compared with the other two LVS configurations?

    3. LVS-Direct Routing
      What is the main reason that the DR-based cluster performs better than NAT-based cluster?
       
  4. LCS
    1. List the main reason why a content switch has more processing overhead than the LVS?

    2. What happens if the content switch does not modify the sequence numbers of the TCP segment on the return http response traffic?
    3. List two ways to speed up the content switch rule matching.

If you feel some of the questions are ambiguous, state the problem # and your assumptions on the answers.