CChhaapptteerr 2222 
WWoorrlldd WWiiddee WWeebb:: 
HHTTTTPP 
Objectives 
Upon completion you will be able to: 
• Understand the components of a browser and a server 
• Understand the function of the URL and cookies 
• Understand how HTML is related to static documents 
• Understand how CGI is related to dynamic documents 
• Understand how Java is related to active documents 
• Know how HTTP accesses data on the WWW 
TCP/IP Protocol Suite 1
22.1 ARCHITECTURE 
The WWW is a distributed client-server service, in which aa cclliieenntt uussiinngg aa 
bbrroowwsseerr ccaann aacccceessss aa sseerrvviiccee uussiinngg aa sseerrvveerr.. TThhee sseerrvviiccee pprroovviiddeedd iiss 
ddiissttrriibbuutteedd oovveerr mmaannyy llooccaattiioonnss ccaalllleedd ssiitteess.. 
TThhee ttooppiiccss ddiissccuusssseedd iinn tthhiiss sseeccttiioonn iinncclluuddee:: 
CClliieenntt ((BBrroowwsseerr)) 
SSeerrvveerr 
UUnniiffoorrmm RReessoouurrccee LLooccaattoorr ((UURRLL)) 
CCooookkiieess 
TCP/IP Protocol Suite 2
Figure 22.1 Architecture of WWW 
TCP/IP Protocol Suite 3
Figure 22.2 Browser 
TCP/IP Protocol Suite 4
Figure 22.3 URL 
TCP/IP Protocol Suite 5
22.2 WEB DOCUMENTS 
The documents in the WWW can be grouped into tthhrreeee bbrrooaadd ccaatteeggoorriieess:: 
ssttaattiicc,, ddyynnaammiicc,, aanndd aaccttiivvee.. TThhee ccaatteeggoorryy iiss bbaasseedd oonn tthhee ttiimmee tthhee 
ccoonntteennttss ooff tthhee ddooccuummeenntt aarree ddeetteerrmmiinneedd.. 
TThhee ttooppiiccss ddiissccuusssseedd iinn tthhiiss sseeccttiioonn iinncclluuddee:: 
SSttaattiicc DDooccuummeennttss 
DDyynnaammiicc DDooccuummeennttss 
AAccttiivvee DDooccuummeennttss 
TCP/IP Protocol Suite 6
Figure 22.4 Static document 
TCP/IP Protocol Suite 7
Figure 22.5 Boldface tags 
TCP/IP Protocol Suite 8
Figure 22.6 Effect of boldface tags 
TCP/IP Protocol Suite 9
Figure 22.7 Beginning and ending tags 
TCP/IP Protocol Suite 10
Figure 22.8 Dynamic document using CGI 
TCP/IP Protocol Suite 11
Figure 22.9 Dynamic document using server-site script 
TCP/IP Protocol Suite 12
NNoottee:: 
Dynamic documents are sometimes 
referred to as server-site dynamic 
documents. 
TCP/IP Protocol Suite 13
Figure 22.10 Active document using Java applet 
TCP/IP Protocol Suite 14
Figure 22.11 Active document using client-site script 
TCP/IP Protocol Suite 15
NNoottee:: 
Active documents are sometimes 
referred to as client-site dynamic 
documents. 
TCP/IP Protocol Suite 16
22.3 HTTP 
The Hypertext Transfer Protocol (HTTP) is a protocol uusseedd mmaaiinnllyy ttoo 
aacccceessss ddaattaa oonn tthhee WWoorrlldd WWiiddee WWeebb.. HHTTTTPP ffuunnccttiioonnss lliikkee aa ccoommbbiinnaattiioonn 
ooff FFTTPP aanndd SSMMTTPP.. 
TThhee ttooppiiccss ddiissccuusssseedd iinn tthhiiss sseeccttiioonn iinncclluuddee:: 
HHTTTTPP TTrraannssaaccttiioonn 
PPeerrssiisstteenntt vveerrssuuss NNoonnppeerrssiisstteenntt CCoonnnneeccttiioonn 
PPrrooxxyy SSeerrvveerr 
TCP/IP Protocol Suite 17
NNoottee:: 
HTTP uses the services of TCP on 
well-known port 80. 
TCP/IP Protocol Suite 18
Figure 22.12 HTTP transaction 
TCP/IP Protocol Suite 19
Figure 22.13 Request and response messages 
TCP/IP Protocol Suite 20
Figure 22.14 Request and status lines 
TCP/IP Protocol Suite 21
TTaabbllee 2222..11 MMeetthhooddss 
TCP/IP Protocol Suite 22
TTaabbllee 2222..22 SSttaattuuss ccooddeess 
TCP/IP Protocol Suite 23
TTaabbllee 2222..22 SSttaattuuss ccooddeess ((ccoonnttiinnuueedd)) 
TCP/IP Protocol Suite 24
Figure 22.15 Header format 
TCP/IP Protocol Suite 25
TTaabbllee 2222..33 GGeenneerraall hheeaaddeerrss 
TCP/IP Protocol Suite 26
TTaabbllee 2222..44 RReeqquueesstt hheeaaddeerrss 
TCP/IP Protocol Suite 27
TTaabbllee 2222..55 RReessppoonnssee hheeaaddeerrss 
TCP/IP Protocol Suite 28
TTaabbllee 2222..66 EEnnttiittyy hheeaaddeerrss 
TCP/IP Protocol Suite 29
ExamplE 1 
This example retrieves a document. We use the GET method to 
retrieve an image with the path /usr/bin/image1. The request 
line shows the method (GET), the URL, and the HTTP version 
(1.1). The header has two lines that show that the client can 
accept images in the GIF or JPEG format. The request does 
not have a body. The response message contains the status line 
and four lines of header. The header lines define the date, 
server, MIME version, and length of the document. The body 
of the document follows the header (see Figure 22.16). 
See Next Slide 
TCP/IP Protocol Suite 30
Figure 22.16 Example 1 
TCP/IP Protocol Suite 31
ExamplE 2 
In this example, the client wants to send data to the server. We 
use the POST method. The request line shows the method 
(POST), URL, and HTTP version (1.1). There are four lines of 
headers. The request body contains the input information. The 
response message contains the status line and four lines of 
headers. The created document, which is a CGI document, is 
included as the body (see Figure 22.17). 
See Next Slide 
TCP/IP Protocol Suite 32
Figure 22.17 Example 2 
TCP/IP Protocol Suite 33
ExamplE 3 
HTTP uses ASCII characters. A client can directly connect to 
a server using TELNET, which logs into port 80. The next 
three lines shows that the connection is successful. We then 
type three lines. The first shows the request line (GET method), 
the second is the header (defining the host), the third is a blank 
terminating the request. The server response is seven lines 
starting with the status line. The blank line at the end 
terminates the server response. The file of 14230 lines is 
received after the blank line (not shown here). The last line is 
the output by the client. 
See Next Slide 
TCP/IP Protocol Suite 34
ExamplE 3 
$ telnet www.mhhe.com 80 
Trying 198.45.24.104... 
Connected to www.mhhe.com (198.45.24.104). 
Escape character is '^]'. 
GET /engcs/compsci/forouzan HTTP/1.1 
From: forouzanbehrouz@fhda.edu 
HTTP/1.1 200 OK 
Date: Thu, 28 Oct 2004 16:27:46 GMT 
Server: Apache/1.3.9 (Unix) ApacheJServ/1.1.2 PHP/4.1.2 PHP/3.0.18 
MIME-version:1.0 
Content-Type: text/html 
Last-modified: Friday, 15-Oct-04 02:11:31 GMT 
Content-length: 14230 
Connection closed by foreign host. 
TCP/IP Protocol Suite 35
NNoottee:: 
HTTP version 1.1 specifies a persistent 
connection by default. 
TCP/IP Protocol Suite 36

Chap 22 www http

  • 1.
    CChhaapptteerr 2222 WWoorrllddWWiiddee WWeebb:: HHTTTTPP Objectives Upon completion you will be able to: • Understand the components of a browser and a server • Understand the function of the URL and cookies • Understand how HTML is related to static documents • Understand how CGI is related to dynamic documents • Understand how Java is related to active documents • Know how HTTP accesses data on the WWW TCP/IP Protocol Suite 1
  • 2.
    22.1 ARCHITECTURE TheWWW is a distributed client-server service, in which aa cclliieenntt uussiinngg aa bbrroowwsseerr ccaann aacccceessss aa sseerrvviiccee uussiinngg aa sseerrvveerr.. TThhee sseerrvviiccee pprroovviiddeedd iiss ddiissttrriibbuutteedd oovveerr mmaannyy llooccaattiioonnss ccaalllleedd ssiitteess.. TThhee ttooppiiccss ddiissccuusssseedd iinn tthhiiss sseeccttiioonn iinncclluuddee:: CClliieenntt ((BBrroowwsseerr)) SSeerrvveerr UUnniiffoorrmm RReessoouurrccee LLooccaattoorr ((UURRLL)) CCooookkiieess TCP/IP Protocol Suite 2
  • 3.
    Figure 22.1 Architectureof WWW TCP/IP Protocol Suite 3
  • 4.
    Figure 22.2 Browser TCP/IP Protocol Suite 4
  • 5.
    Figure 22.3 URL TCP/IP Protocol Suite 5
  • 6.
    22.2 WEB DOCUMENTS The documents in the WWW can be grouped into tthhrreeee bbrrooaadd ccaatteeggoorriieess:: ssttaattiicc,, ddyynnaammiicc,, aanndd aaccttiivvee.. TThhee ccaatteeggoorryy iiss bbaasseedd oonn tthhee ttiimmee tthhee ccoonntteennttss ooff tthhee ddooccuummeenntt aarree ddeetteerrmmiinneedd.. TThhee ttooppiiccss ddiissccuusssseedd iinn tthhiiss sseeccttiioonn iinncclluuddee:: SSttaattiicc DDooccuummeennttss DDyynnaammiicc DDooccuummeennttss AAccttiivvee DDooccuummeennttss TCP/IP Protocol Suite 6
  • 7.
    Figure 22.4 Staticdocument TCP/IP Protocol Suite 7
  • 8.
    Figure 22.5 Boldfacetags TCP/IP Protocol Suite 8
  • 9.
    Figure 22.6 Effectof boldface tags TCP/IP Protocol Suite 9
  • 10.
    Figure 22.7 Beginningand ending tags TCP/IP Protocol Suite 10
  • 11.
    Figure 22.8 Dynamicdocument using CGI TCP/IP Protocol Suite 11
  • 12.
    Figure 22.9 Dynamicdocument using server-site script TCP/IP Protocol Suite 12
  • 13.
    NNoottee:: Dynamic documentsare sometimes referred to as server-site dynamic documents. TCP/IP Protocol Suite 13
  • 14.
    Figure 22.10 Activedocument using Java applet TCP/IP Protocol Suite 14
  • 15.
    Figure 22.11 Activedocument using client-site script TCP/IP Protocol Suite 15
  • 16.
    NNoottee:: Active documentsare sometimes referred to as client-site dynamic documents. TCP/IP Protocol Suite 16
  • 17.
    22.3 HTTP TheHypertext Transfer Protocol (HTTP) is a protocol uusseedd mmaaiinnllyy ttoo aacccceessss ddaattaa oonn tthhee WWoorrlldd WWiiddee WWeebb.. HHTTTTPP ffuunnccttiioonnss lliikkee aa ccoommbbiinnaattiioonn ooff FFTTPP aanndd SSMMTTPP.. TThhee ttooppiiccss ddiissccuusssseedd iinn tthhiiss sseeccttiioonn iinncclluuddee:: HHTTTTPP TTrraannssaaccttiioonn PPeerrssiisstteenntt vveerrssuuss NNoonnppeerrssiisstteenntt CCoonnnneeccttiioonn PPrrooxxyy SSeerrvveerr TCP/IP Protocol Suite 17
  • 18.
    NNoottee:: HTTP usesthe services of TCP on well-known port 80. TCP/IP Protocol Suite 18
  • 19.
    Figure 22.12 HTTPtransaction TCP/IP Protocol Suite 19
  • 20.
    Figure 22.13 Requestand response messages TCP/IP Protocol Suite 20
  • 21.
    Figure 22.14 Requestand status lines TCP/IP Protocol Suite 21
  • 22.
    TTaabbllee 2222..11 MMeetthhooddss TCP/IP Protocol Suite 22
  • 23.
    TTaabbllee 2222..22 SSttaattuussccooddeess TCP/IP Protocol Suite 23
  • 24.
    TTaabbllee 2222..22 SSttaattuussccooddeess ((ccoonnttiinnuueedd)) TCP/IP Protocol Suite 24
  • 25.
    Figure 22.15 Headerformat TCP/IP Protocol Suite 25
  • 26.
    TTaabbllee 2222..33 GGeenneerraallhheeaaddeerrss TCP/IP Protocol Suite 26
  • 27.
    TTaabbllee 2222..44 RReeqquueesstthheeaaddeerrss TCP/IP Protocol Suite 27
  • 28.
    TTaabbllee 2222..55 RReessppoonnsseehheeaaddeerrss TCP/IP Protocol Suite 28
  • 29.
    TTaabbllee 2222..66 EEnnttiittyyhheeaaddeerrss TCP/IP Protocol Suite 29
  • 30.
    ExamplE 1 Thisexample retrieves a document. We use the GET method to retrieve an image with the path /usr/bin/image1. The request line shows the method (GET), the URL, and the HTTP version (1.1). The header has two lines that show that the client can accept images in the GIF or JPEG format. The request does not have a body. The response message contains the status line and four lines of header. The header lines define the date, server, MIME version, and length of the document. The body of the document follows the header (see Figure 22.16). See Next Slide TCP/IP Protocol Suite 30
  • 31.
    Figure 22.16 Example1 TCP/IP Protocol Suite 31
  • 32.
    ExamplE 2 Inthis example, the client wants to send data to the server. We use the POST method. The request line shows the method (POST), URL, and HTTP version (1.1). There are four lines of headers. The request body contains the input information. The response message contains the status line and four lines of headers. The created document, which is a CGI document, is included as the body (see Figure 22.17). See Next Slide TCP/IP Protocol Suite 32
  • 33.
    Figure 22.17 Example2 TCP/IP Protocol Suite 33
  • 34.
    ExamplE 3 HTTPuses ASCII characters. A client can directly connect to a server using TELNET, which logs into port 80. The next three lines shows that the connection is successful. We then type three lines. The first shows the request line (GET method), the second is the header (defining the host), the third is a blank terminating the request. The server response is seven lines starting with the status line. The blank line at the end terminates the server response. The file of 14230 lines is received after the blank line (not shown here). The last line is the output by the client. See Next Slide TCP/IP Protocol Suite 34
  • 35.
    ExamplE 3 $telnet www.mhhe.com 80 Trying 198.45.24.104... Connected to www.mhhe.com (198.45.24.104). Escape character is '^]'. GET /engcs/compsci/forouzan HTTP/1.1 From: forouzanbehrouz@fhda.edu HTTP/1.1 200 OK Date: Thu, 28 Oct 2004 16:27:46 GMT Server: Apache/1.3.9 (Unix) ApacheJServ/1.1.2 PHP/4.1.2 PHP/3.0.18 MIME-version:1.0 Content-Type: text/html Last-modified: Friday, 15-Oct-04 02:11:31 GMT Content-length: 14230 Connection closed by foreign host. TCP/IP Protocol Suite 35
  • 36.
    NNoottee:: HTTP version1.1 specifies a persistent connection by default. TCP/IP Protocol Suite 36