HTTP and TCP
Carey Williamson
Department of Computer Science
University of Calgary
Network View: HTTP and TCP
TCP is a connection-oriented protocol
SYN
Web Client SYN/ACK Web Server
GET URL ACK
YOUR DATA HERE
FIN FIN/ACK
ACK
2
Example Web Page
Harry Potter Movies
As you all know,
the new HP book [Link]
[Link] will be out in June
and then there will
be a new movie
shortly after that…
[Link]
“Harry Potter and
the Bathtub Ring”
3
C S
TCP SYN
G
[Link]
The “classic” approach
TCP FIN in HTTP/1.0 is to use one
TCP SYN HTTP request per TCP
connection, serially.
G
[Link]
TCP FIN
TCP SYN
G
[Link]
TCP FIN 4
C S Concurrent (parallel) TCP
TCP SYN connections can be used
to make things faster.
G C S C S
[Link]
S S
TCP FIN
G G
[Link] [Link]
F F
5
C S
TCP SYN
G
[Link]
The “persistent HTTP”
G approach can re-use the
[Link] same TCP connection for
Multiple HTTP transfers,
G one after another, serially.
[Link] Amortizes TCP overhead,
but maintains TCP state
longer at server.
Timeout
TCP FIN 6
C S
TCP SYN
G
[Link]
GG The “pipelining” feature
[Link] in HTTP/1.1 allows
requests to be issued
[Link] asynchronously on a
persistent connection.
Requests must be
processed in proper order.
Can do clever packaging.
Timeout
TCP FIN 7
Summary of Web and HTTP
The major application on the Internet
— Majority of traffic is HTTP (or HTTP-related)
Client/server model:
— Clients make requests, servers respond to them
— Done mostly in ASCII text (helps debugging!)
Various headers and commands
— Too many to go into detail here
— Many web books/tutorials exist
(e.g., Krishnamurthy & Rexford 2001)