MIT 6.S194 | Open Source Software Project Lab  

Everything you ever wanted to know about web requests

The web presents a strange programming model because it forces you into writing an application that runs on two computers at once. This presents a number of challenges in application design and state management. All of these design issues, however, are ultimately influenced and built on top of the fundamental relationship that the browser has with the server.

The goal of this lesson is to fully describe that browser-server relationship. If you understand the details about how the browser makes requests to the server, you will be able to make better decisions when faced with higher-level design choices.

We will target:

  • What's in a web request
  • Life cycle of a web request
  • Ajax and Ajax Styles
  • The web security model
Ted's notes (no slides this time)

See Also

Journal Question

You're in charge of a five person team at a space company and have convinced your boss to let your next project, an operating system for satellites, be open source. As the technical lead of the project, you are responsible for setting the project workflow standards both for your team and for the community at large. How should code be written on your project? How, specifically, do people contribute? And just as importantly, why?

This journal should be an internal email proposing your workflow design to your team and soliciting feedback from them.

Please submit your response by class time on each Monday. Here are the Journal guidelines and submission instructions.

Geek Cred

Gopher, the Web that almost was

(from Wikipedia):

Gopher is a TCP/IP application layer protocol designed for distributing, searching, and retrieving documents over the Internet. Strongly oriented towards a menu-document design, the Gopher protocol presented an alternative to the World Wide Web in its early stages, but ultimately HTTP became the dominant protocol. The Gopher ecosystem is often regarded as the effective predecessor of the World Wide Web.

Class List

  1. Introduction (W 2/6)
  2. Bootup (M 2/11)
  3. Become a Git Master (W 2/13)
  4. Everything you ever wanted to know about Web Requests (T 2/19)
  5. Design Studio (W 2/20)
  6. Debugging (M 2/25)
  7. Design Studio (W 2/27)
  8. Open Source Business Models (M 3/3)
  9. Design Studio (W 3/6)
  10. Work Day (W 3/11)
  11. Design Studio (W 3/13)
  12. Quantifying Code (M 3/18)
  13. Design Studio (W 3/20)
  14. Spring Break (M 3/25 & 27)
  15. Quantifying Users (M 4/1)
  16. Work day (W 4/3)
  17. Remote Collaboration (M 4/8)
  18. Design Studio (W 4/10)
  19. No class - Patriot's Day (M 4/15)
  20. Design Studio (W 4/17)
  21. Work Day (M 4/22)
  22. Design Studio (W 4/24)
  23. No class - CHI (M 4/29 and W 5/1)
  24. Final Presentations (M 5/6)
  25. Final Presentations (W 5/8)
  26. No class - WWW (M 5/13 and W 5/15)
  27. *Note: Report due W 5/15*