Held Monday, May 8, 2000
Today we conclude our consideration of application-layer protocols
by visiting one of the most popular Internet application protocols,
HTTP, the hypertext transfer protocol.
- Grading scheme:
- Drop lowest homework grade.
- Homeworks: 40%
- Final: 40%
- Best of final and homeworks: 10%
- Participation: 10%
- Anyone who showed up for at least 80% of the classes, turned in
reasonable work for every assignment, and completes the final
will get a B- or better.
- Are there questions on the final
- I'll also reserve time on Wednesday and Friday for questions.
- Schedule for this week:
- Today: Discussion of HTTP
- Wednesday: Course evaluation. Attendance required.
- Friday: Wrapup
- The HTTP RFC includes a line of the form
This requirement [that clients not cache DNS info] also improves
the load-balancing behavior of clients for replicated servers using the
same DNS name and reduces the likelihood of a user's experiencing failure
in accessing sites which use that strategy.
- We might want to think about some implications of this.
- Basic requirements:
- Textual/human-readable protocol (so we can test using telnet :-)
- Supports document transmission (of multiple kinds of documents)
- Some user verification
- Questions to elicit design goals:
- Why do we need something other than ftp?
- What makes it hypertext?
- Request/response paradigm.
- Uses TCP.
- Primarily for getting documents. (Using GET request.)
- Caching/proxies built in to protocol.
- But also support for uploading information.
- Using parameters to GET
- Using POST
- Lots of additional fields available for sending and receiving.
- Some security, but with some (noted) flaws.
- Too much complexity
- 109+ proportially-psaced pages
- Many ways to accomplish the same tasks (five+ different ways to
delimit messages; HEAD and conditional GET for checking updates)
- Too many layers rolled into one (not modular)
- Message transport
- Remote method invocation
- Some document processing stuff
- Abused: Too many things built on top of it.
- Abused: Some clients use multiple http connections to improve