Lesson 8 - Content Distribution Flashcards

1
Q

What does HTTP stand for?

A

HyperText Transfer Protocol (HTTP)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is a Stateless Server?

A

A stateless server is a server that retains no information about a client request after it has processed it

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is typically is in an HTTP Request?

A
  • method = GET, POST, etc
  • URL = index.html
  • Version number
  • Headers -> Referer, User Agent, etc
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What does the Referer header do?

A

Located in the HTTP Request.

It tells what caused the page to be requested.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What does the User Agent header do?

A

Located in the HTTP Request.

It tells what client software (chrome, firefox, etc) the request came from.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is typically in an HTTP Response?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What type of response code is 100?

A

Informational

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What type of response code is 200?

A

Success

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What type of response code is 300?

A

Redirect

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What type of response code is 400?

A

Error

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What type of response code is 500?

A

Server Error

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What are Persistent Connections?

A
  • 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)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is Pipelining?

A
  • The client sends a request as soon as it sees a referenced object
  • Often combined with Persistent Connections
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What two places are caches typically located?

A
  • In the browser

* On a network

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are the benefits of caching?

A
  • Reduced transit costs of local ISP

* Improved performance for local clients

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is a Content Distribution Network (CDN)? What is the goal of it?

A

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)

17
Q

How do we choose what server replica to access?

A
  • Typically the one with the lowest latency
18
Q

What methods exist for Content Routing and how do we direct clients with it?

A
  • Routing based (anycast) - Simple, but coarse
  • Application based - causes delays
  • Naming-Based system (like DNS) - provides local caches whenever you look up the name
19
Q

In torrents, what is the freerider problem and how is it solved?

A

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

20
Q

What is Chord?

A
  • It is a scalable, distributed “lookup service” that maps keys to values
  • Provable correctness
  • Uses consistent hashing
21
Q

What is Consistent Hashing?

A
  • keys and nodes map to the same ID space
  • Nodes hash IP address
  • Keys hash the Key
22
Q

What 3 ways can consistent hashing be implemented and the associated complexities?

A

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)