Hypertext Transfer Protocoljain/cis678-97/ftp/f27_htt.pdfThe Ohio State University Raj Jain 27-2 q...
Transcript of Hypertext Transfer Protocoljain/cis678-97/ftp/f27_htt.pdfThe Ohio State University Raj Jain 27-2 q...
![Page 1: Hypertext Transfer Protocoljain/cis678-97/ftp/f27_htt.pdfThe Ohio State University Raj Jain 27-2 q Hypertext language and protocol q HTTP messages q Browser architecture q CGI and](https://reader035.fdocuments.net/reader035/viewer/2022062602/5ecbf42f42cdea70b321bc62/html5/thumbnails/1.jpg)
Raj JainThe Ohio State University
27-1
Chapter 27Chapter 27Chapter 27Hypertext TransferHypertext TransferHypertext Transfer
ProtocolProtocolProtocol
Raj JainThe Ohio State University
Columbus, OH [email protected]
http://www.cis.ohio-state.edu/~jain/
![Page 2: Hypertext Transfer Protocoljain/cis678-97/ftp/f27_htt.pdfThe Ohio State University Raj Jain 27-2 q Hypertext language and protocol q HTTP messages q Browser architecture q CGI and](https://reader035.fdocuments.net/reader035/viewer/2022062602/5ecbf42f42cdea70b321bc62/html5/thumbnails/2.jpg)
Raj JainThe Ohio State University
27-2
q Hypertext language and protocol
q HTTP messages
q Browser architecture
q CGI and Java
Overview
![Page 3: Hypertext Transfer Protocoljain/cis678-97/ftp/f27_htt.pdfThe Ohio State University Raj Jain 27-2 q Hypertext language and protocol q HTTP messages q Browser architecture q CGI and](https://reader035.fdocuments.net/reader035/viewer/2022062602/5ecbf42f42cdea70b321bc62/html5/thumbnails/3.jpg)
Raj JainThe Ohio State University
27-3
TerminologyTerminologyTerminology
q Browser
q Hypertext: Documents contains pointers to otherdocuments
q Media = Text, Graphics, Images, voice, animation,video
q Hypermedia: Documents contain pointers to othermedia
q Browser = User program
![Page 4: Hypertext Transfer Protocoljain/cis678-97/ftp/f27_htt.pdfThe Ohio State University Raj Jain 27-2 q Hypertext language and protocol q HTTP messages q Browser architecture q CGI and](https://reader035.fdocuments.net/reader035/viewer/2022062602/5ecbf42f42cdea70b321bc62/html5/thumbnails/4.jpg)
Raj JainThe Ohio State University
27-4
Uniform Resource LocatorUniform Resource LocatorUniform Resource Locator
q URL = Uniform resource locator =protocol://site/directory/file or mailto:email_address
q Protocol = http, ftp, gopher, telnet, nntp, smtp, wais
q ftp://netlab.ohio-state.edu/pub/jain/courses/cis678/f27_htt.html
q http://www.cis.ohio-state.edu/~jain/cis678.htm
q mailto:[email protected]
q Hypertext transfer protocol (HTTP)
q Hypertext markup language (HTML)
q HTTP Daemon (httpd)
![Page 5: Hypertext Transfer Protocoljain/cis678-97/ftp/f27_htt.pdfThe Ohio State University Raj Jain 27-2 q Hypertext language and protocol q HTTP messages q Browser architecture q CGI and](https://reader035.fdocuments.net/reader035/viewer/2022062602/5ecbf42f42cdea70b321bc62/html5/thumbnails/5.jpg)
Raj JainThe Ohio State University
27-5
HyperText Markup Language (HTML)HyperText Markup Language (HTML)HyperText Markup Language (HTML)
q Header, Body, Anchors, Hyper References
q Sample Code:<HTML><HEAD><TITLE>Hello</TITLE></HEAD><BODY><A HREF="http://www.cis.ohio-
state.edu/~jain/greetings.html">How are you</A></BODY></HTML>
![Page 6: Hypertext Transfer Protocoljain/cis678-97/ftp/f27_htt.pdfThe Ohio State University Raj Jain 27-2 q Hypertext language and protocol q HTTP messages q Browser architecture q CGI and](https://reader035.fdocuments.net/reader035/viewer/2022062602/5ecbf42f42cdea70b321bc62/html5/thumbnails/6.jpg)
Raj JainThe Ohio State University
27-6
OutputOutputOutput
Hello
How are you?
![Page 7: Hypertext Transfer Protocoljain/cis678-97/ftp/f27_htt.pdfThe Ohio State University Raj Jain 27-2 q Hypertext language and protocol q HTTP messages q Browser architecture q CGI and](https://reader035.fdocuments.net/reader035/viewer/2022062602/5ecbf42f42cdea70b321bc62/html5/thumbnails/7.jpg)
Raj JainThe Ohio State University
27-7
A Sample List of HTML TagsA Sample List of HTML TagsA Sample List of HTML Tags<A> </A> Anchor (link or name)<BODY> </BODY> Contents<BR> Break<FORM> </FORM> Input form<H1> </H1> Heading level 1<HEAD> </HEAD> Header of a document<HR> Horizontal Rule<HTML> </HTML> The doc type is HTML<LI> List Item<OL> </OL> Ordered List<P> Paragraph break<PRE> </PRE> Preformatted text<TITLE> </TITLE> Document title<UL> Unnumbered list
![Page 8: Hypertext Transfer Protocoljain/cis678-97/ftp/f27_htt.pdfThe Ohio State University Raj Jain 27-2 q Hypertext language and protocol q HTTP messages q Browser architecture q CGI and](https://reader035.fdocuments.net/reader035/viewer/2022062602/5ecbf42f42cdea70b321bc62/html5/thumbnails/8.jpg)
Raj JainThe Ohio State University
27-8
Sample HTTP ExchangeSample HTTP ExchangeSample HTTP Exchange
telnet www.cis.ohio-state.edu http
Connected to tholian.cis.ohio-state.edu.
Escape character is '^]'.
GET /~jain/temp.html HTTP/1.0
Accept: text/plain, text/html
HTTP/1.0 200 OK
Server: Netscape-Enterprise/2.0a
Date: Tue, 25 Feb 1997 05:04:11 GMT
Accept-ranges: bytes
Last-modified: Tue, 25 Feb 1997 05:03:07 GMT
Content-length: 84
Content-type: text/html
![Page 9: Hypertext Transfer Protocoljain/cis678-97/ftp/f27_htt.pdfThe Ohio State University Raj Jain 27-2 q Hypertext language and protocol q HTTP messages q Browser architecture q CGI and](https://reader035.fdocuments.net/reader035/viewer/2022062602/5ecbf42f42cdea70b321bc62/html5/thumbnails/9.jpg)
Raj JainThe Ohio State University
27-9
<HTML>
<HEAD>
<TITLE>Hello</TITLE>
</HEAD>
<BODY>
Hello! How are you?
</BODY>
</HTML>
Connection closed by foreign host.
![Page 10: Hypertext Transfer Protocoljain/cis678-97/ftp/f27_htt.pdfThe Ohio State University Raj Jain 27-2 q Hypertext language and protocol q HTTP messages q Browser architecture q CGI and](https://reader035.fdocuments.net/reader035/viewer/2022062602/5ecbf42f42cdea70b321bc62/html5/thumbnails/10.jpg)
Raj JainThe Ohio State University
27-10
HTTP RequestsHTTP RequestsHTTP Requests
q GET Return the contents
q HEAD Return the header
q POST Treat the document as a script and send somedata to it
q PUT Replace the contents with some data
q DELETE Delete the indicated document
![Page 11: Hypertext Transfer Protocoljain/cis678-97/ftp/f27_htt.pdfThe Ohio State University Raj Jain 27-2 q Hypertext language and protocol q HTTP messages q Browser architecture q CGI and](https://reader035.fdocuments.net/reader035/viewer/2022062602/5ecbf42f42cdea70b321bc62/html5/thumbnails/11.jpg)
Raj JainThe Ohio State University
27-11
HTTP Request HeadersHTTP Request HeadersHTTP Request HeadersHeader DescriptionFrom Email address of userUser-Agent Client s/wAccept File File types that client will acceptAccept-encoding Compression methodsAccept-Language LanguagesReferrer URL of the last document the
client displayedIf-Modified-Since Return document only if modified
since specifiedContent-length Length (in bytes) of data to
follow
![Page 12: Hypertext Transfer Protocoljain/cis678-97/ftp/f27_htt.pdfThe Ohio State University Raj Jain 27-2 q Hypertext language and protocol q HTTP messages q Browser architecture q CGI and](https://reader035.fdocuments.net/reader035/viewer/2022062602/5ecbf42f42cdea70b321bc62/html5/thumbnails/12.jpg)
Raj JainThe Ohio State University
27-12
HTTP Status CodesHTTP Status CodesHTTP Status Codes
Code Text2xx Success3xx Redirection301 Moved302 Found4xx Client Errors400 Bad Request401 Unauthorized404 Not found5xx Server Errors500 Internal Error502 Service overloaded
![Page 13: Hypertext Transfer Protocoljain/cis678-97/ftp/f27_htt.pdfThe Ohio State University Raj Jain 27-2 q Hypertext language and protocol q HTTP messages q Browser architecture q CGI and](https://reader035.fdocuments.net/reader035/viewer/2022062602/5ecbf42f42cdea70b321bc62/html5/thumbnails/13.jpg)
Raj JainThe Ohio State University
27-13
HTTP Response HeadersHTTP Response HeadersHTTP Response HeadersHeader DescriptionServer Server softwareDate Current DateLast-Modified Modification date of documentExpires Date at which document expiresLocation The location of the document in
redirection responsesPragma A hint, e.g., no cacheMIME-versionLink URL of document’s parentContent-Length Length in bytesAllowed Requests that user can issue, e.g.,
GET
![Page 14: Hypertext Transfer Protocoljain/cis678-97/ftp/f27_htt.pdfThe Ohio State University Raj Jain 27-2 q Hypertext language and protocol q HTTP messages q Browser architecture q CGI and](https://reader035.fdocuments.net/reader035/viewer/2022062602/5ecbf42f42cdea70b321bc62/html5/thumbnails/14.jpg)
Raj JainThe Ohio State University
27-14
HTTP 1.1 FeaturesHTTP 1.1 FeaturesHTTP 1.1 Features
q Persistent TCP Connections: Remain open formultiple requests
q Partial Document Transfers: Clients can specify startand stop positions
q Conditional Fetch: Several additional conditions
q Better content negotiation
q More flexible authentication
![Page 15: Hypertext Transfer Protocoljain/cis678-97/ftp/f27_htt.pdfThe Ohio State University Raj Jain 27-2 q Hypertext language and protocol q HTTP messages q Browser architecture q CGI and](https://reader035.fdocuments.net/reader035/viewer/2022062602/5ecbf42f42cdea70b321bc62/html5/thumbnails/15.jpg)
Raj JainThe Ohio State University
27-15
Browser ArchitectureBrowser ArchitectureBrowser Architecture
OptionalInterpreter
HTTPClient
OptionalClient
HTMLInterpreterController
Network Interface
Driver
Input frommouse and keyboard
...
...
Output|sent todisplay
![Page 16: Hypertext Transfer Protocoljain/cis678-97/ftp/f27_htt.pdfThe Ohio State University Raj Jain 27-2 q Hypertext language and protocol q HTTP messages q Browser architecture q CGI and](https://reader035.fdocuments.net/reader035/viewer/2022062602/5ecbf42f42cdea70b321bc62/html5/thumbnails/16.jpg)
Raj JainThe Ohio State University
27-16
Key DecisionsKey DecisionsKey Decisions
q Presentation separate from content
q Presentation controlled by the browser
q Content provided by the server
q Short term interaction ⇒ Open connection, exchange,close connection
![Page 17: Hypertext Transfer Protocoljain/cis678-97/ftp/f27_htt.pdfThe Ohio State University Raj Jain 27-2 q Hypertext language and protocol q HTTP messages q Browser architecture q CGI and](https://reader035.fdocuments.net/reader035/viewer/2022062602/5ecbf42f42cdea70b321bc62/html5/thumbnails/17.jpg)
Raj JainThe Ohio State University
27-17
Common Gateway Interface (CGI)Common Gateway Interface (CGI)Common Gateway Interface (CGI)
q Dynamic documents: Content changes with time, e.g.,counter
q Initial solution: Server-side includes ⇒ Specialcommands to servers
q Later, a general interface developed at NationalCenter for Supercomputing Applications (NCSA)
q CGI programs output hypertext and commands to theserver
q Can be in any language, e.g., C, C++, or even be ashell script
![Page 18: Hypertext Transfer Protocoljain/cis678-97/ftp/f27_htt.pdfThe Ohio State University Raj Jain 27-2 q Hypertext language and protocol q HTTP messages q Browser architecture q CGI and](https://reader035.fdocuments.net/reader035/viewer/2022062602/5ecbf42f42cdea70b321bc62/html5/thumbnails/18.jpg)
Raj JainThe Ohio State University
27-18
CGI ExampleCGI ExampleCGI Example
Content/type: text/plainLocation: /new/bar.txt<blank line>
⇒ send http://site/new/bar.txt
![Page 19: Hypertext Transfer Protocoljain/cis678-97/ftp/f27_htt.pdfThe Ohio State University Raj Jain 27-2 q Hypertext language and protocol q HTTP messages q Browser architecture q CGI and](https://reader035.fdocuments.net/reader035/viewer/2022062602/5ecbf42f42cdea70b321bc62/html5/thumbnails/19.jpg)
Raj JainThe Ohio State University
27-19
CGI ParametersCGI ParametersCGI Parameters
q http://www.cis.ohio-state.edu/cgi-bin/register.sh?fname=raj&lname=jain
q A question mark separates prefix and suffix(parameters)
q The parameters are passed to the CGI program usingenvironment variables
![Page 20: Hypertext Transfer Protocoljain/cis678-97/ftp/f27_htt.pdfThe Ohio State University Raj Jain 27-2 q Hypertext language and protocol q HTTP messages q Browser architecture q CGI and](https://reader035.fdocuments.net/reader035/viewer/2022062602/5ecbf42f42cdea70b321bc62/html5/thumbnails/20.jpg)
Raj JainThe Ohio State University
27-20
CGI Environmental VariablesCGI Environmental VariablesCGI Environmental Variables
Variable MeaningServer_name Domain name of the server
computerGateway_Interface Version of CGI s/wScript_name Path in URL after server nameQuery_string Information following ?Remote_addr Browser’s address
![Page 21: Hypertext Transfer Protocoljain/cis678-97/ftp/f27_htt.pdfThe Ohio State University Raj Jain 27-2 q Hypertext language and protocol q HTTP messages q Browser architecture q CGI and](https://reader035.fdocuments.net/reader035/viewer/2022062602/5ecbf42f42cdea70b321bc62/html5/thumbnails/21.jpg)
Raj JainThe Ohio State University
27-21
State InformationState InformationState Information
q Passed in parameters
q http://www.cis.ohio-state.edu/cgi-bin/counter.sh?$N
q Example:#!/bin/sh
echo content/type: text/plain
echo
N=$QUERY_STRING
echo "<HTML>"echo You have clicked this $N times
echo "<A HREF=\"http://cis.ohio-state.edu/cgi-bin/counter.sh?$N\">“
echo "Click Here to refresh the page.</A></HTML>"
Click Here to refresh the page.You have clicked this 4 times
![Page 22: Hypertext Transfer Protocoljain/cis678-97/ftp/f27_htt.pdfThe Ohio State University Raj Jain 27-2 q Hypertext language and protocol q HTTP messages q Browser architecture q CGI and](https://reader035.fdocuments.net/reader035/viewer/2022062602/5ecbf42f42cdea70b321bc62/html5/thumbnails/22.jpg)
Raj JainThe Ohio State University
27-22
Active DocumentsActive DocumentsActive Documentsq Active = Program
q The output of the program is displayed continuously
q Useful for animation, Continuous update (clock)
q Need a program that can run on any computer
q Java = Just Another Vague Acronym?Not really, the name invented after at a coffee shop.
q Invented by James Gosling at Sun Microsystems
q Java programs consist of byte codes that can beinterpreted on any computer/operating system.
q Java provides programming language, runtimeenvironment, class library
![Page 23: Hypertext Transfer Protocoljain/cis678-97/ftp/f27_htt.pdfThe Ohio State University Raj Jain 27-2 q Hypertext language and protocol q HTTP messages q Browser architecture q CGI and](https://reader035.fdocuments.net/reader035/viewer/2022062602/5ecbf42f42cdea70b321bc62/html5/thumbnails/23.jpg)
Raj JainThe Ohio State University
27-23
Active Documents (Cont)Active Documents (Cont)Active Documents (Cont)
Active documentin source form
CompilerActive document
in binary form
ServerBrowser
Active documentin executable form
Request for document
Document in browser’s memory
![Page 24: Hypertext Transfer Protocoljain/cis678-97/ftp/f27_htt.pdfThe Ohio State University Raj Jain 27-2 q Hypertext language and protocol q HTTP messages q Browser architecture q CGI and](https://reader035.fdocuments.net/reader035/viewer/2022062602/5ecbf42f42cdea70b321bc62/html5/thumbnails/24.jpg)
Raj JainThe Ohio State University
27-24
Characteristics of JavaCharacteristics of JavaCharacteristics of Java
q High Level ⇒ Hides hardware details
q General Purpose
q Object Oriented. Similar to C++
q Dynamic ⇒ Object instances are created at run time
q Strongly typed ⇒ Each data item has a type.Operations can be applied only to particular datatypes.
q Statically Type Checked ⇒ Checked at compile time.Not at run-time.
q Concurrent ⇒ Allows multiple threads of control
![Page 25: Hypertext Transfer Protocoljain/cis678-97/ftp/f27_htt.pdfThe Ohio State University Raj Jain 27-2 q Hypertext language and protocol q HTTP messages q Browser architecture q CGI and](https://reader035.fdocuments.net/reader035/viewer/2022062602/5ecbf42f42cdea70b321bc62/html5/thumbnails/25.jpg)
Raj JainThe Ohio State University
27-25
The Java Run-Time EnvironmentThe Java Run-Time EnvironmentThe Java Run-Time Environment
q Interpretive execution
q Automatic garbage collection
q Includes a socket library for internet access
q Graphics support
![Page 26: Hypertext Transfer Protocoljain/cis678-97/ftp/f27_htt.pdfThe Ohio State University Raj Jain 27-2 q Hypertext language and protocol q HTTP messages q Browser architecture q CGI and](https://reader035.fdocuments.net/reader035/viewer/2022062602/5ecbf42f42cdea70b321bc62/html5/thumbnails/26.jpg)
Raj JainThe Ohio State University
27-26
SummarySummarySummary
q HTML and HTTP
q Servers use environment variables to pass parametersto CGI programs
q CGI programs can be written in any language
q Static, Dynamic, and Active documents
q Java provides applets that can be interpreted at anycomputer
q Dynamics is server's (CGI) or client's (Java)responsibility
![Page 27: Hypertext Transfer Protocoljain/cis678-97/ftp/f27_htt.pdfThe Ohio State University Raj Jain 27-2 q Hypertext language and protocol q HTTP messages q Browser architecture q CGI and](https://reader035.fdocuments.net/reader035/viewer/2022062602/5ecbf42f42cdea70b321bc62/html5/thumbnails/27.jpg)
Raj JainThe Ohio State University
27-27
HomeworkHomeworkHomework
q Read Chapters 27, 28, 29
q Submit Answers to Exercises 27.6, 28.3, 29.2
![Page 28: Hypertext Transfer Protocoljain/cis678-97/ftp/f27_htt.pdfThe Ohio State University Raj Jain 27-2 q Hypertext language and protocol q HTTP messages q Browser architecture q CGI and](https://reader035.fdocuments.net/reader035/viewer/2022062602/5ecbf42f42cdea70b321bc62/html5/thumbnails/28.jpg)
Raj JainThe Ohio State University
27-28
HTTP: RFCsHTTP: RFCsHTTP: RFCs
q [RFC1866] T. Berners-Lee, D. Connolly, "Hypertext Markup Language -2.0", 11/03/1995, 77 pages.
q [RFC1945] T. Berners-Lee, R. Fielding, H. Nielsen, "Hypertext TransferProtocol -- HTTP/1.0", 05/17/1996, 60 pages.
q [RFC2068] R. Fielding, J. Gettys, J. Mogul, H. Frystyk, T. Berners-Lee, ,"Hypertext Transfer Protocol -- HTTP/1.1", 01/03/1997, 162 pages.
q [RFC2069] J. Franks, P. Hallam-Baker, J. Hostetler, P. A. Luotonen, E. L.Stewart, "An Extension to HTTP: Digest Access Authentication",01/03/1997, 18 pages.
q [RFC2070] F. Yergeau, G. Nicol, G. Adams, M. Duerst,"Internationalization of the Hypertext Markup Language", 01/06/1997, 43pages.
q [RFC2109] D. Kristol, L. Montulli, "HTTP State Management Mechanism",02/18/1997, 21 pages.