Lesson 8 - Content Distribution Flashcards
What does HTTP stand for?
HyperText Transfer Protocol (HTTP)
What is a Stateless Server?
A stateless server is a server that retains no information about a client request after it has processed it
What is typically is in an HTTP Request?
- method = GET, POST, etc
- URL = index.html
- Version number
- Headers -> Referer, User Agent, etc
What does the Referer header do?
Located in the HTTP Request.
It tells what caused the page to be requested.
What does the User Agent header do?
Located in the HTTP Request.
It tells what client software (chrome, firefox, etc) the request came from.
What is typically in an HTTP Response?
- HTTP Version
- Response Code
- Location (for redirection)
- Server (indicates server software)
- Allow (indicates what HTTP methods are allowed)
- Content Encoding (if it is compressed, etc)
- Content Length (in terms of bytes)
- Expires
- Last Modified
What type of response code is 100?
Informational
What type of response code is 200?
Success
What type of response code is 300?
Redirect
What type of response code is 400?
Error
What type of response code is 500?
Server Error
What are Persistent Connections?
- Allows multiple request/response on single TCP connection
- Delimiters indicate end of request
- Content-length (so server has to know how large the thing is in advance)
What is Pipelining?
- The client sends a request as soon as it sees a referenced object
- Often combined with Persistent Connections
What two places are caches typically located?
- In the browser
* On a network
What are the benefits of caching?
- Reduced transit costs of local ISP
* Improved performance for local clients
What is a Content Distribution Network (CDN)? What is the goal of it?
The goal is to replicate content on many servers to keep content close to the clients
We are trying to overlay a network of web caches that deliver content to a client from the optimal location (not necessarily closest)
How do we choose what server replica to access?
- Typically the one with the lowest latency
What methods exist for Content Routing and how do we direct clients with it?
- Routing based (anycast) - Simple, but coarse
- Application based - causes delays
- Naming-Based system (like DNS) - provides local caches whenever you look up the name
In torrents, what is the freerider problem and how is it solved?
Where people download a resource and then don’t seed it.
The problem is resolved by restricting download access next time person tries to download
What is Chord?
- It is a scalable, distributed “lookup service” that maps keys to values
- Provable correctness
- Uses consistent hashing
What is Consistent Hashing?
- keys and nodes map to the same ID space
- Nodes hash IP address
- Keys hash the Key
What 3 ways can consistent hashing be implemented and the associated complexities?
Every node knows location of every other node
* lookups O(1) * tables O(N)
Every node knows only its sucessor
* lookups O(N) * table O(1)
Finger Table - Every node knows M other nodes in the ring
* O (log N)