Académique Documents
Professionnel Documents
Culture Documents
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-2
Objectives
After completing this chapter, you should be able to:
• explain what exactly happens when you click on a
link in a web page.
You should be able to write HTTP requests and interpret HTTP
responses. Why it is good to keep the TCP connection open for a
short time after the response?
Overview
' $
2. Content Negotiation
4. Caching (Proxies)
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-4
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-5
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-6
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-7
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-8
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-9
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-10
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-11
first_name=Stefan&last_name=Brass&password=abc
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-12
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-13
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-14
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-15
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-16
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-17
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-18
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-19
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-20
Proxies (1)
Response Response
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-21
Proxies (2)
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-22
• A request consists of
a command line,
zero or more headers,
an empty line,
a body (entity, data) (optional).
• A request command line consists of
A method, e.g. GET.
An identification of the resource to which the
method should be applied (e.g. absolute path).
The HTTP-version of the request, e.g. HTTP/1.1.
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-23
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-24
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-25
-
Request Header -
CRLF
-
-
Entity Header -
CRLF
-
-
CRLF
6
-
-
Data (Entity)
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-26
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-28
Methods (1)
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-29
Methods (2)
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-30
Methods (3)
• POST, continued:
The URI can name also a database relation, in
which the data should be inserted as new row.
Another possibility is that the URI names a do-
cument, to which the data should be attached
as annotation.
What exactly happens, depends on the configu-
ration of the server (and the URI). HTTP does
not prescribe a specific action.
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-31
Methods (4)
Further Methods (not always implemented):
• PUT: The data sent in the request body should be
saved on the server under the specified URI.
If a document exists under this path, it is overwritten. It depends
on the configuration of the server and the access rights of the client
whether the server actually performs the request. Not every server
understands “PUT”. The specification states that all methods except
GET and HEAD are optional. But POST is also very common.
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-32
Methods (5)
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-33
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-34
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-35
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-36
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-37
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-38
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-39
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-40
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-41
6
-
General Header -
CRLF
-
-
Request Header -
CRLF
-
-
Entity Header -
CRLF
-
-
CRLF
6
-
-
Data (Entity)
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-42
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-43
• 2xx: Successful:
200: OK
The requested operation was executed successfully. E.g. one re-
quested a web page which is successfully returned in this response.
201: Created.
The operation created a new resource (e.g. answer to a PUT re-
quest). The location of the resource is returned in the body, and
the most specific URI also in a Location header.
202: Accepted.
The requested operation will be executed later.
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-44
204: No Content
The requested operation was executed, but answer is empty. The
browser should not change the document in the browser window
if it gets a 204 answer.
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-45
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-46
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-47
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-48
401: Unauthorized.
E.g. this page is password protected. The normal reaction of the
browser is to ask the user for a user name and password, and then
try it again with a request that includes this data, see below.
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-49
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-50
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-51
410: Gone.
The web page was deleted, and is no longer offered (at least, no
forwarding address is known). Bookmarks to this URI should be
deleted.
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-53
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-54
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-55
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-56
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-57
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-58
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-59
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-61
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-62
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-63
Overview
2. Content Negotiation
& %
4. Caching (Proxies)
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-64
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-65
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-66
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-67
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-68
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-69
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-70
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-71
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-72
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-73
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-74
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-75
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-76
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-77
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-78
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-79
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-80
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-81
• Example:
Variant Client Server Product Selected
HTML 1.0 0.9 0.9 yes
PDF 0.5 1.0 0.5 no
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-82
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-83
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-84
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-85
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-86
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-87
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-88
Overview
2. Content Negotiation
' $
4. Caching (Proxies)
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-89
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-90
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-91
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-92
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-93
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-94
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-95
<HTML><HEAD><TITLE>Error</TITLE> ...
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-96
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-97
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-98
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-99
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-100
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-101
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-102
Overview
2. Content Negotiation
4. Caching (Proxies)
& %
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-104
• Goals:
Reduction of the server load.
Reduction of the network load (used bandwidth).
Faster answers on the client.
• Observation:
Relatively few pages get a relatively large per-
centage of all requests (uneven distribution).
After a page was visited, it is often visited again
after a short time.
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-105
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-107
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-108
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-109
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-110
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-111
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-112
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-113
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-114
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-115
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-116
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-117
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-118
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-119
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-120
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-121
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-122
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-123
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-124
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-125
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-126
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-127
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-128
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-129
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-130
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-131
Overview
2. Content Negotiation
4. Caching (Proxies)
' $
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-132
Stateless Protocol
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-133
Cookies (1)
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-134
Cookies (2)
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-135
Cookies (3)
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-136
Cookies (4)
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-137
Cookies (5)
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-138
Cookies (6)
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-139
Cookies (7)
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-140
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-141
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-142
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-143
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-144
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006
4. The Hypertext Transfer Protocol 4-145
Stefan Brass: Grundlagen des World Wide Web Universität Halle, 2006