DOC PREVIEW
Penn CIT 597 - Hypertext Transfer Protocol

This preview shows page 1-2-3-4-5-6 out of 18 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

HTTPHTTP messagesWhat the client does, part IOther methodsWhat the client does, part IIClient request headersWhat the client does, part IIIWhat the server does, part ICommon status codesWhat the server does, part IIViewing the responseThe GetResponses program, IThe GetResponses program, IIServer response headersWhat the server does, part IIIThe <meta http-equiv> tagSummaryThe EndJan 14, 2019HTTPHypertext Transfer Protocol2HTTP messagesHTTP is the language that web clients and web servers use to talk to each otherHTTP is largely “under the hood,” but a basic understanding can be helpfulEach message, whether a request or a response, has three parts:1. The request or the response line2. A header section3. The body of the message3What the client does, part IThe client sends a message to the server at a particular port (80 is the default)The first part of the message is the request line, containing:A method (HTTP command) such as GET or POSTA document address, andAn HTTP version numberExample:GET /index.html HTTP/1.04Other methodsOther methods beside GET and POST are:HEAD: Like GET, but ask that only a header be returnedPUT: Request to store the entity-body at the URIDELETE: Request removal of data at the URILINK: Request header information be associated with a document on the serverUNLINK: Request to undo a LINK requestOPTIONS: Request information about communications options on the serverTRACE: Request that the entity-body be returned as received (used for debugging)5What the client does, part IIThe second part of a request is optional header information, such as:What the client software isWhat formats it can acceptAll information is in the form Name: ValueExample: User-Agent: Mozilla/2.02Gold (WinNT; I)Accept: image/gif, image/jpeg, */*A blank line ends the header6Client request headersAccept: type /subtype, type/subtype, ...Specifies media types that the client prefers to acceptAccept-Language: en, fr, dePreferred language (For example: English, French, German) User-Agent: stringThe browser or other client program sending the requestFrom: [email protected]Email address of user of client programCookie: name=valueInformation about a cookie for that URLMultiple cookies can be separated by commas7What the client does, part IIIThe third part of a request (after the blank line) is the entity-body, which contains optional dataThe entity-body part is used mostly by POST requestsThe entity-body part is always empty for a GET request8What the server does, part IThe server response is also in three partsThe first part is the status line, which tells:The HTTP versionA status codeA short description of what the status code meansExample: HTTP/1.1 404 Not FoundStatus codes are in groups: 100-199 Informational 200-299 The request was successful 300-399 The request was redirected 400-499 The request failed 500-599 A server error occurred9Common status codes200 OKEverything worked, here’s the data301 Moved PermanentlyURI was moved, but here’s the new address for your records302 Moved temporarilyURL temporarily out of service, keep the old one but use this one for now400 Bad RequestThere is a xyntax error in your request403 ForbiddenYou can’t do this, and we won’t tell you why404 Not FoundNo such document408 Request Time-out, 504 Gateway Time-outRequest took too long to fulfill for some reason10What the server does, part IIThe second part of the response is header information, ended by a blank lineExample:Content-Length: 2532Connection: CloseServer: GWS/2.0Date: Sun, 01 Dec 2002 21:24:50 GMTContent-Type: text/htmlCache-control: privateSet-Cookie: PREF=ID=05302a93093ec661:TM=1038777890:LM=1038777890:S=yNWNjraftUz299RH; expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.google.comAll on one line11Viewing the responseThere is a header viewer at http://www.delorie.com/web/headers.html(with nasty jittery advertisements)Example 2.3 (GetResponses) in the Gittleman book does the same thingHere’s an example (from GetResponses):% java GetResponses http://www.cis.upenn.edu/~matuszek/cit597- 2003/index.htmlStatus line: HTTP/1.1 200 OKResponse headers: Date: Wed, 10 Sep 2003 00:26:53 GMT Server: Apache/1.3.26 (Unix) PHP/4.2.2 mod_perl/1.27 mod_ssl/2.8.10 OpenSSL/0.9.6e Last-Modified: Tue, 09 Sep 2003 19:24:50 GMT ETag: "1c1ad5-1654-3f5e2902” Accept-Ranges: bytes Content-Length: 5716 Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Content-Type: text/html12The GetResponses program, IHere’s just the skeleton of the program that provided the output on the last slide:import java.net.*;import java.io.*;public class GetResponses { public static void main(String [ ] args) { try { ...interesting code goes here... } catch(Exception e) { e.printStackTrace(); } }}13The GetResponses program, IIHere’s the interesting part of the code:URL url = new URL(args[0]);URLConnection c = url.openConnection();System.out.println("Status line: ");System.out.println('\t' + c.getHeaderField(0));System.out.println("Response headers:");String value = "";int n = 1; while (true){ value = c.getHeaderField(n); if (value == null) break; System.out.println('\t' + c.getHeaderFieldKey(n++) + ": " + value);}14Server response headersServer: NCSA/1.3Name and version of the serverContent-Type: type/subtypeShould be of a type and subtype specified by the client’s Accept headerSet-Cookie: name=value; optionsRequests the client to store a cookie with the given name and value15What the server does, part IIIThe third part of a server response is the entity bodyThis is often an HTML pageBut it can also be a jpeg, a gif, plain text, etc.--anything the browser (or other client) is prepared to accept16The <meta http-equiv> tagThe <meta http-equiv=s tring content=string> tag may occur in the <head> of an HTML documenthttp-equiv and content typically have the same kinds of values as in the HTTP headerThis tag asks the client to pretend that the information actually occurred in the headerThe information is not really in the headerAs usual, not all browsers handle this information the same way Example: <meta http-equiv="Set-Cookie" content="value=n;expires=date; path=url">17SummaryHTTP is a fairly


View Full Document

Penn CIT 597 - Hypertext Transfer Protocol

Documents in this Course
DOM

DOM

21 pages

More DOM

More DOM

11 pages

Rails

Rails

33 pages

DOM

DOM

21 pages

RELAX NG

RELAX NG

31 pages

RELAX NG

RELAX NG

31 pages

RELAX NG

RELAX NG

31 pages

RELAX NG

RELAX NG

31 pages

Rake

Rake

12 pages

Ruby

Ruby

58 pages

DOM

DOM

21 pages

Tomcat

Tomcat

16 pages

DOM

DOM

21 pages

Servlets

Servlets

29 pages

Logging

Logging

17 pages

Html

Html

27 pages

DOM

DOM

22 pages

RELAX NG

RELAX NG

30 pages

Servlets

Servlets

28 pages

XHTML

XHTML

13 pages

DOM

DOM

21 pages

DOM

DOM

21 pages

Servlets

Servlets

26 pages

More CSS

More CSS

18 pages

Servlets

Servlets

29 pages

Logging

Logging

17 pages

Load more
Download Hypertext Transfer Protocol
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Hypertext Transfer Protocol and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Hypertext Transfer Protocol 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?