2005 1 HTTP HyperText Transfer Protocol Part 3.

Slides:



Advertisements
Similar presentations
Hypertext Transfer PROTOCOL ----HTTP Sen Wang CSE5232 Network Programming.
Advertisements

1 Caching in HTTP Representation and Management of Data on the Internet.
HTTP – HyperText Transfer Protocol
Web basics HTTP – – URI/L/Ns – HTML –
CS320 Web and Internet Programming Generating HTTP Responses
HTTP Hypertext Transfer Protocol. HTTP messages HTTP is the language that web clients and web servers use to talk to each other –HTTP is largely “under.
HTTP HyperText Transfer Protocol Part 2.
HTTP Headers. Read these slides yourselves This set of slides explains the header fields which are pre-defined in HTTP/1.1 Read these slides yourselves.
How the web works: HTTP and CGI explained
Data and Computer Communications Eighth Edition by William Stallings Lecture slides by Lawrie Brown Chapter 23 – Internet Applications Internet Directory.
HTTP HyperText Transfer Protocol.
1 HTTP - Hypertext Transfer Protocol Arthur : Yigal Eliaspur Date :
Hypertext Transfer Protocol Information Systems 337 Prof. Harry Plantinga.
2/9/2004 Web and HTTP February 9, /9/2004 Assignments Due – Reading and Warmup Work on Message of the Day.
Hypertext Transport Protocol CS Dick Steflik.
Nikolay Kostov Telerik Corporation
 What is it ? What is it ?  URI,URN,URL URI,URN,URL  HTTP – methods HTTP – methods  HTTP Request Packets HTTP Request Packets  HTTP Request Headers.
1 HTTP messages Entities and Encoding Herng-Yow Chen.
HyperText Transfer Protocol
Web Caching: Replication on the World Wide Web Jonathan Bulava CSC8530 – Distributed Systems Dr. Paul Schragger.
Simple Web Services. Internet Basics The Internet is based on a communication protocol named TCP (Transmission Control Protocol) TCP allows programs running.
CSC 2720 Building Web Applications Getting and Setting HTTP Headers (With PHP Examples)
1 HTTP Messages Herng-Yow Chen. 2 Outline The Flow of Messages The Parts of a Message The various methods that request message support The various status.
CP476 Internet Computing Lecture 5 : HTTP, WWW and URL 1 Lecture 5. WWW, HTTP and URL Objective: to review the concepts of WWW to understand how HTTP works.
Maryam Elahi University of Calgary – CPSC 441.  HTTP stands for Hypertext Transfer Protocol.  Used to deliver virtually all files and other data (collectively.
Sistem Jaringan dan Komunikasi Data #9. DNS The Internet Directory Service  the Domain Name Service (DNS) provides mapping between host name & IP address.
The HyperText Transfer Protocol. History HTTP has been in use since 1990 (HTTP/0.9) HTTP/1.0 was defined in RFC 1945 (May 1996) and included metainformation.
©Yaron Kanza HTTP Written by Dr. Yaron Kanza, Edited with permission from author by Liron Blecher.
Web Server Design Week 8 Old Dominion University Department of Computer Science CS 495/595 Spring 2010 Martin Klein 3/3/10.
HyperText Transfer Protocol (HTTP) RICHI GUPTA CISC 856: TCP/IP and Upper Layer Protocols Fall 2007 Thanks to Dr. Amer, UDEL for some of the slides used.
HTTP1 Hypertext Transfer Protocol (HTTP) After this lecture, you should be able to:  Know how Web Browsers and Web Servers communicate via HTTP Protocol.
1 Caching in HTTP Representation and Management of Data on the Internet.
HTTP support for caching & replication. Conditional requests Server executes conditional request. Responds with a message body only if the condition is.
Web Cache Consistency. “Requirements of performance, availability, and disconnected operation require us to relax the goal of semantic transparency.”
HTTP Protocol Design1 HTTP - timeline r Mar 1990 CERN labs document proposing Web r Jan 1992 HTTP/0.9 specification r Dec 1992 Proposal to add MIME to.
On The Cooperation of Web Clients and Proxy Caches Yiu Fai Sit, Francis C.M. Lau, Cho-Li Wang Department of Computer Science The University of Hong Kong.
2007cs Servers on the Web. The World-Wide Web 2007 cs CSS JS HTML Server Browser JS CSS HTML Transfer of resources using HTTP.
Appendix E: Overview of HTTP ©SoftMoore ConsultingSlide 1.
1 WWW. 2 World Wide Web Major application protocol used on the Internet Simple interface Two concepts –Point –Click.
Operating Systems Lesson 12. HTTP vs HTML HTML: hypertext markup language ◦ Definitions of tags that are added to Web documents to control their appearance.
HTTP evolution - TCP/IP issues Lecture 4 CM David De Roure
Web Server Design Week 7 Old Dominion University Department of Computer Science CS 495/595 Spring 2010 Martin Klein 2/24/10.
HTTP Here, we examine the hypertext transfer protocol (http) – originally introduced around 1990 but not standardized until 1997 (version 1.0) – protocol.
27.1 Chapter 27 WWW and HTTP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Internet Applications (Cont’d) Basic Internet Applications – World Wide Web (WWW) Browser Architecture Static Documents Dynamic Documents Active Documents.
EE 122: Lecture 21 (HyperText Transfer Protocol - HTTP) Ion Stoica Nov 20, 2001 (*)
Overview of Servlets and JSP
RESTful Studies Services Jim Philbin American College of Radiology Johns Hopkins School of Medicine DICOM Standard Committee, User Co-Chair DICOM WG-27,
Computer Networks with Internet Technology William Stallings Chapter 04 Modern Applications 4.1 Web Access - HTTP.
1 COMP 431 Internet Services & Protocols HTTP Persistence & Web Caching Jasleen Kaur February 11, 2016.
COMP2322 Lab 2 HTTP Steven Lee Jan. 29, HTTP Hypertext Transfer Protocol Web’s application layer protocol Client/server model – Client (browser):
Web Server Design Assignment #3: Transfer Encoding & Content Negotiation Due: 03/24/2010 Old Dominion University Department of Computer Science CS 495/595.
HTTP HyperText Transfer Protocol.
HyperText Transfer Protocol (HTTP) Deepti Kulkarni CISC 856: TCP/IP and Upper Layer Protocols Fall 2008 Acknowledgements Professor Amer Richi Gupta.
1 Unraveling the Web: How Does it All Work?. 2 Web Enabling Technologies F TCP/IP network (Internet & others) F URLs F HTTP protocol and HTTP Servers.
Web Protocols: HTTP COMP6017 Topics on Web Services Dr Nicholas Gibbins –
Simple Web Services. Internet Basics The Internet is based on a communication protocol named TCP (Transmission Control Protocol) TCP allows programs running.
What’s Really Happening
National College of Science & Information Technology.
Hypertext Transfer Protocol (HTTP) COMP6218 Web Architecture Dr Nicholas Gibbins –
Hypertext Transfer Protocol
Hypertext Transfer Protocol
HTTP – An overview.
The Hypertext Transfer Protocol
HTTP Headers.
Hypertext Transfer Protocol
Web Caching? Web Caching:.
Hypertext Transfer Protocol
EE 122: HyperText Transfer Protocol (HTTP)
Old Dominion University Department of Computer Science
Presentation transcript:

HTTP HyperText Transfer Protocol Part 3

Validation Mechanisms If-modified-since last-modified date –Cannot be used with dynamic pages ETags can be used for dynamic pages and when a site cycles through a several possible responses

Expiration Mechanisms The Expires header –Incorrect if there is a clock skew and the resource is fresh for only a short time The headers Age and Cache-Control: Max- Age solve the above problem –Each proxy calculates (an upper bound on) the age before sending the response Is it always a reliable (correct) calculation? –The receiving proxy adds an upper bound on the transmission time, using only its own clock –What happens if some proxy along the way runs HTTP/1.0?

Bandwidth Optimization Range requests Expect and 100 (Continue) Compression

Range Requests A range request uses the Range header for specifying the requested portions of a resource A range response is returned with the Content-Range header that specifies the offset and length of the returned range The multipart/byteranges MIME type allows the transmission of multiple ranges in one response

When to Use Range Requests To read the initial part of an object –For example, if the object is an image, reading the initial part provides the information for doing the layout To complete a response transfer that was interrupted (either by the user or by network failure) To read the tail of a growing object

Range Requests and Caching A range response is returned with the status code 206 (Partial Content) –This prevents HTTP/1.0 proxies from accidentally treating the response as a full one, and using it later as a cached response

Conditional Range Requests To request conditionally the prefix of a resource, the If-None-Match header can be used –This happens when the client has a response containing the prefix in its cache, and the client wants to validate that response

The If-Range Header Sometimes the client’s cache may have the object, but without the requested range –Hence, the client sends a range request The server should return the requested range if the object has not changed Otherwise, the server should send back a full response

The Clients Wants the Range only if the Object has not Changed The client sends a range request with the If- Match header –The server returns the the range (i.e., normal) response if the object has not changed –Otherwise, the server returns 412 (Precondition Failed) and the client should send a new request for the full object Two requests might be needed –The If-Range header does the above interaction in one request

Expect and 100 (Continue) A request (e.g., POST) may contain a large object Sometimes there is no need to send the object to find out that the request fails –For example, if the client lacks authorization, or the server is too busy In HTTP/1.1, the client can send just the headers and wait for the server indicate that it can also send the object

The Expect Header The client must include the new header Expect: 100 with the rest of the headers that it initially sends (why?) –The server should respond with the status code 100 (Continue), or with the usual status code if it cannot handle the request HTTP/1.1 has some rules for avoiding infinite waits by clients or wasted bandwidth

Compression HTTP/1.1 makes a clear distinction between end-to-end encoding (the Content-Encoding response header) and hop-by-hop encodings (the Transfer-Encoding response header) A client uses the Accept-Encoding for specifying the content encodings that it can handle and the ones it prefers The client uses the TE header similarly for transfer encodings

Content Negotiations Server-driven content negotiation –The client sends its preferences using the headers Accept-Language, Accept-Charset, etc. –The server chooses the representation that best matches the client’s preferences The headers controlling content negotiations may include wildcards and quality values (qvalues) between 0.0 and 1.0 Accept-Language: en, fr;q=0.5, da;q=0.1

Agent-Driven Content Negotiation When the client request a varying resource, the server replies with a 304 (Multiple Choices) response and it lists –The available representations and their properties (e.g., language, charset, etc.) –The Alternate header has been reserved for this purpose, but its specification has not been completed –Hence, server-driven negotiation is the only usable form

The Vary Header Content negotiation and caching can interact in subtle ways –Hence, the Vary header (see last-week slides)

Warnings (New in HTTP/1.1) The Warning header has codes indicating some potential problems with the response, even if the status code is 200 (OK) –For example, when returning a stale response because it could not be validated Warnings are divided into two types based on the first digit (out of three) digit –Warning of one type should be deleted after a successful revalidation and those of the second type should be retained Hence, this mechanism is extensible to future warning codes

New Status Codes in HTTP/ new status codes in HTTP/1.1 –100 (Continue) –206 (Partial Content) –300 (Multiple Choices) –409 (Conflict) is used when a request conflicts with the current state of the resource (e.g., a PUT request might violate a versioning policy) –410 (Gone) is used when a resource has been removed permanently It indicates that links to the resource should be deleted