# Final exam

due Mon May 8 at midnight, by email

We studied many web technologies in this course. This exam is an opportunity for you to reflect on the techniques we learned and how they fit together. It is worth 100 points, exactly the same as one assignment. Each question can be answered in a paragraph or two. Submit your answers in a document or PDF, to christopher.league@liu.edu.

This is a take-home exam. You may use whatever materials you like, including the source code that we have written and any notes/links provided. If you use quotes or ideas from any source other than your own mind, you must cite the source and use quotation marks appropriately.

You may not do this exam in groups. Your responses must be entirely your own. If I notice suspicious similarity between the answers of two or more students, or if your answers are copied from another source, your score will suffer.

## Questions

1. We began by looking at HTTP itself, with commands like GET and POST and response codes like 200 and 404. What we studied makes up the first version of the protocol, known as HTTP/1.0. The more popular version these days is HTTP/1.1 and now there is a new version HTTP/2.0 (aka SPDY) supported by some servers and many browsers. Summarize some of the improvements made possible by these newer versions of HTTP. Using your browser’s developer tools, how can you determine whether it is using HTTP/2 to connect to a particular web site? (Hint: when using Google Chrome to connect to google.com, it is definitely using HTTP/2 – find where this is discoverable using the developer tools.)

2. Most web applications will have some server-side components and some client-side components. Choose a web application domain (such as a social network, a blog engine, or online shopping) and break down what aspects of the service will run on the server and what runs on the client. What tools and technologies will you use on each side?

3. What was your favorite assignment in this course, and why? Describe what additional work you’d like to do to polish and publish that project as part of your web developer portfolio.