The HyperText Transfer Protocol: HTTP Nick Smith Stuart Alley Tara Tjaden
Agenda - HTTP • Definition • Inventor • Fundamental Dimensions • Request Methods • Response Example • Properties
HTTP Defined Hypertext Transfer Protocol is a network protocol used to deliver virtually all files and other data (collectively called resources) on the World Wide Web. This is a request and retrieve function of the server. This includes: Text files, graphic images, sound, video, and other multi-media files.
Tim Berners-Lee • Inspiration • Trying to retrieve information from a Net-connected computer was frustrating (incompatible computer systems) • Innovation • Combine the Internet with hypertext (global access). • Developed URI later became known as URL (Universe Resource Locator) • Take the name of the document and put it behind a link in a hypertext document (machine does the work) • Impact • 1990 he developed HTTP, HTML, and the first web browser WWW (W3C ~ Creator of nonprofit firm that oversees the web development) • He put his programs on the Internet. Grad students first to use it!
Berners-Lee’s Vision Semantic Web – allow machines to quickly analyze lots of data, recognize connections betweens ideas and providing links to more information
HTTP Versions: Past and Present HTTP/0.9 Was never widely used. This only supports one command, GET. HTTP/1.0 Still widely used, especially by proxy servers. Allows persistent connections when explicitly negotiated; however this only works well when not using proxy servers. HTTP/1.1 Current version; persistent connections enabled by default and works well with proxies.
Difference Between FTP and HTTP • File Transfer Protocol (FTP) is used to upload files from a workstation to a FTP server or download files from a FTP server to a workstation. • HTTP is used to transfer files from a Web server onto a browser in order to view a Web page that is on the Internet. • FTP is two-way system and HTTP is a one-way system
Two fundamental dimensions of HTTP: connectivity and interface • A way to exchange hypermedia documents between computers • Very easy for computers on the Internet to safely share data. • Retrieving a file's data is almost useless unless you know what kind of data it is. • The Web understands "data types" and passes that information along.
HTTP Request Methods There are 3 open-ended methods that are frequently used to request information: • GET – used to ask for specific document and is the simplest form of requesting information (URL access will not change the state of database) • HEAD – used to ask for information about a document (very fast because less data is required) • POST – used when the service associated with the processing of the form has side effects (URL access will cause change in database). Example: Ebay, Amazon
HTTP Response (Server – Client) The server agrees to use HTTP version 1.0 for communication and sends the status 200 indicating it has successfully processed the client's request. HTTP/1.0 200 OK Date: Wednesday, 02-Feb-95 23:04:12 GMT Server: NCSA/1.3 MIME-version: 1.0 Last-modified: Monday, 15-Nov-93 23:33:16 GMT Content-type: text/html Content-length: 2345 * a blank line * <HTML><HEAD><TITLE> . . . It sends the date and identifies itself as an NCSA HTTP server. It indicates it is using MIME version 1.0 to describe the information it is sending, and includes the MIME-type of the information about to be sent in the "Content-type:" header. It sends the number of characters it is going to send, followed by a blank line and the data itself. http://www.wdvl.com/Internet/Protocols/HTTP/Response.html
HTTP Properties • A comprehensive addressing scheme • Client-Server Architecture • Connectionless • Stateless • Extensible and open representation for data types • Head fields
Properties continued… comprehensive addressing scheme To indicate the resource for methods to be applied, HTTP protocol uses the concept of reference provided by either the: • Universal Resource location (URL), or • As a identifier (URI), or • As a name (URN)
URL Example: The following is an outline of the most common form of a URL: http://www.address.edu:1234/path/subdir/file.ext service host port Files and resource details
Properties continued… Client-Server Architecture Like most network protocols, HTTP uses the client-server model An HTTP protocol is based on a request-response paradigm where a request program (a client) establishes a connection with a receiving program (a server) and sends a request to the server. The server responds with appropriate data.
Properties continued… Connectionless and Stateless Once a single request is satisfied, the connection is completed and is no longer there. There is no memory between client and server. Each request after this is brand-new start. • This has a significant impact on simplifying the server construction
Properties continued… Extensible and open representation for data types Internet Media Types are used by HTTP to provide extensible and open representation for data typing. Given that client and server direct communication, applications are allowed more freedom when using non-registered types.
Properties continued… Head Fields Also known as meta information, headers are blocks of data preceding actual data. Essentially, it is information about information, and generally specifies things such as actions required of the server, the type of data being returned, or a status code
HTTP in the Future HTTP-NG (Next Generation) • Higher performance • Security and authentication • The client will be able to send a new request before waiting for a previous request response • The server will be able to respond to request in any order
Resources: • http://www.wdvl.com/Internet/Protocols/HTTP/ • http://en.wikipedia.org/wiki/HTTP • http://www.jmarshall.com/easy/http/#whatis • http://perlfect.com/articles/http.shtml • http://www.freesoft.org/CIE/Topics/102.htm • Pictures: www.bus.orst.edu, www.ebay.com, www.acsu.buffalo.edu