You are on page 1of 21

Trying out HTTP (client side) for yourself

1. Telnet to your favorite Web server:

telnet 80 Opens TCP connection to port 80
(default HTTP server port) at
Anything typed in sent
to port 80 at

2. Type in a GET HTTP request:

GET /university/about.php HTTP/1.1 By typing this in (hit carriage
Host: return twice), you send
this minimal (but complete)
GET request to HTTP server

3. Look at response message sent by HTTP server!

32 ©Vaide Narvaez
User-server interaction: cookies
Many major Web sites Example:
use cookies   Susan always access
Four components: Internet from home PC
  1) cookie header line of   visits specific e-commerce
HTTP response message site for first time
  2) cookie header line in
  when initial HTTP
HTTP request message
requests arrives at site,
  3) cookie file kept on user’s
site creates:
host, managed by user’s
browser   unique ID
  4) back-end database at   entry in backend database

Web site for ID

33 ©Vaide Narvaez
Cookies: keeping “state” (cont.)
client server
ebay 8734
usual http request msg
Amazon server
cookie file usual http response creates ID
Set-cookie: 1678 1678 for user create
ebay 8734 entry
amazon 1678
usual http request msg
cookie: 1678 cookie- access
one week later: usual http response msg action backend
ebay 8734
usual http request msg
amazon 1678
cookie: 1678 cookie-
usual http response msg action
34 ©Vaide Narvaez
Cookies (continued)
What cookies can bring: Cookies and privacy:
  authorization   cookies permit sites to
  shopping carts learn a lot about you
  recommendations   you may supply name and e-
mail to sites
  user session state (Web e-
How to keep “state”:
  protocol endpoints:
maintain state at sender/
receiver over multiple
  cookies: http messages
carry state

35 ©Vaide Narvaez
Web caches (proxy server)
Goal: satisfy client request without involving origin server

  user sets browser: Web origin

accesses via cache
  browser sends all HTTP Proxy
requests to cache server
  object in cache: cache
returns object
  else cache requests object
from origin server, then
returns object to client

36 ©Vaide Narvaez
More about Web caching
  cache acts as both client and Why Web caching?
server   reduce response time for
  typically cache is installed by client request
ISP (university, company,   reduce traffic on an
residential ISP) institution’s access link.
  Internet dense with caches:
enables “poor” content
providers to effectively
deliver content (but so does
P2P file sharing)

37 ©Vaide Narvaez
Conditional GET
Goal: don’t send object
if cache has up-to-date cache
cached version HTTP request msg
  cache: specify date of <date>
cached copy in HTTP
HTTP response modified
request HTTP/1.0
  If-modified-since: <date> 304 Not Modified

  server: response contains

no object if cached copy HTTP request msg
is up-to-date: <date> object
  HTTP/1.0 304 Not modified
Modified HTTP response
HTTP/1.0 200 OK
38 ©Vaide Narvaez
File Transfer: FTP
FTP: the file transfer protocol

FTP file transfer

user client server
at host remote file
local file system

  transfer file to/from remote host

  client/server model
  client: side that initiates transfer (either to/from remote)
  server: remote host

40 ©Vaide Narvaez
FTP: separate control and data connections
TCP control connection
  FTP client contacts FTP server at port 21
port 21, TCP is transport protocol
  client authorized over control TCP data connection
connection FTP port 20 FTP
client server
  client browses remote directory by
sending commands over control ❒  server opens another TCP data
connection. connection to transfer another
  when server receives file transfer file.
command, server opens 2nd TCP ❒  control connection: “out of band”
connection (for file) to client
❒  FTP server maintains “state”:
  after transferring one file, server current directory, earlier
closes data connection. authentication

41 ©Vaide Narvaez


Electronic Mail outgoing
message queue
user mailbox
Three major components: agent
  user agents mail
  mail servers server
  simple mail transfer protocol: SMTP
SMTP mail
server user
User Agent SMTP agent

  a.k.a. “mail reader/client”

  composing, editing, reading mail mail user
messages server agent
  e.g., MS Outlook, Mozilla
Thunderbird user
  outgoing, incoming messages
stored on server agent

43 ©Vaide Narvaez
Electronic Mail: mail servers
Mail Servers agent
  mailbox contains incoming mail
messages for user server
  message queue of outgoing (to be SMTP
sent) mail messages mail
server user
  SMTP protocol between mail
SMTP agent
servers to send email messages
  client: sending mail server SMTP
mail user
  “server”: receiving mail server agent

44 ©Vaide Narvaez
Electronic Mail: SMTP
  uses TCP to reliably transfer email message from client to server,
port 25
  direct transfer: sending server to receiving server
  three phases of transfer
  handshaking (greeting)
  transfer of messages
  closure
  command/response interaction
  commands: ASCII text
  response: status code and phrase

  messages must be in 7-bit ASCII

45 ©Vaide Narvaez
Scenario: Alice sends message to Bob
1) Alice uses UA to compose 4) SMTP client sends Alice’s
message to message over the TCP connection
2) Alice’s UA sends message to her 5) Bob’s mail server places the
mail server; message placed in message in Bob’s mailbox
message queue 6) Bob invokes his user agent to
3) Client side of SMTP opens TCP read message
connection with Bob’s mail

1 mail
server user
user server
2 agent
agent 3 6
4 5

46 ©Vaide Narvaez
Sample SMTP interaction
S: 220
S: 250 Hello, pleased to meet you
S: 250 Sender ok
C: RCPT TO: <>
S: 250 ... Recipient ok
S: 354 Enter mail, end with "." on a line by itself
C: Do you like ketchup?
C: How about pickles?
C: .
S: 250 Message accepted for delivery
S: 221 closing connection

47 ©Vaide Narvaez
Try SMTP interaction for yourself:
 25
  see 220 reply from server
  above lets you send email without using email client

48 ©Vaide Narvaez
SMTP: final words
  SMTP uses persistent connections Comparison with HTTP:
  SMTP requires message (header &
  HTTP: pull
body) to be in 7-bit ASCII
  SMTP: push
  SMTP server uses CRLF.CRLF to
determine end of message   both have ASCII command/
response interaction, status codes

  HTTP: each object encapsulated in

its own response msg
  SMTP: multiple objects sent in
multipart msg

49 ©Vaide Narvaez
Mail access protocols
SMTP SMTP access user
agent protocol agent

sender’s mail receiver’s mail

server server
  SMTP: delivery/storage to receiver’s server
  Mail access protocol: retrieval from server
  POP: Post Office Protocol [RFC 1939]
  authorization (agent <-->server) and download
  IMAP: Internet Mail Access Protocol [RFC 1730]
  more features (more complex)
  manipulation of stored msgs on server
  HTTP: gmail, Hotmail, Yahoo! Mail, etc.

50 ©Vaide Narvaez
telnet 110
POP3 protocol S: +OK POP3 server ready
C: user bob
S: +OK
authorization phase C: pass hungry
  client commands: S: +OK user successfully logged on
  user: declare username
C: list
  pass: password
S: 1 498
  server responses S: 2 912
  +OK S: .
  -ERR C: retr 1
S: <message 1 contents>
transaction phase, client: S: .
  list: list message numbers C: dele 1
  retr: retrieve message by C: retr 2
number S: <message 1 contents>
  dele: delete S: .
C: dele 2
  quit C: quit
S: +OK POP3 server signing off
51 ©Vaide Narvaez
POP3 (more) and IMAP
More about POP3 IMAP
  Previous example uses   Keep all messages in one
“download and delete” place: the server
mode.   Allows user to organize
  Bob cannot re-read e-mail messages in folders
if he changes client   IMAP keeps user state
  “Download-and-keep”: across sessions:
copies of messages on   names of folders and
different clients mappings between message
IDs and folder name
  POP3 is stateless across

52 ©Vaide Narvaez