My Oracle Support Banner

Oracle iPlanet Web Server 7.0 Does Not Serve If-Range Correctly When the File Content is Changed. (Doc ID 1352955.1)

Last updated on FEBRUARY 21, 2019

Applies to:

Oracle iPlanet Web Server - Version 7.0 and later
Information in this document applies to any platform.

Symptoms

On iPlanet Web Server 7.0 version (7.0 to 7.0 update 12), when the HTTP request uses "If-Range: <e-tag>" HTTP header, even if the underlying document had changed, the response still returns "206 Partial Content" with a partial content. The expected response should be that the full HTTP content of the requested file need to be sent with HTTP status code 200.

A sample illustration of this can be seen below:

1. Access a static URL resource test.html.
    For example, let say resource "http://host:port/test.html", and record the HTTP header response:

HTTP/1.1 200 OK
Server: Oracle-iPlanet-Web-Server/7.0
Date: 17 Aug 2011 02:02:20 GMT
Cache-control: max-age=60
Content-type: text/html
Last-modified: Tue, 21 Jun 2011 13:33:10 GMT
Etag: "e-4e4b1ee6"
Accept-ranges: bytes


2.  Using the above E-tag value from the header response and specified as shown below

# telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
GET /test.html HTTP/1.1
Host: localhost
If-Range: "e-4e4b1ee6"
Range: bytes=1-
Connection: close

HTTP/1.1 206 Partial Content
Server: Oracle-iPlanet-Web-Server/7.0
Date: Wed, 17 Aug 2011 02:08:20 GMT
Content-type: text/html
Last-modified: Wed, 17 Aug 2011 01:52:38 GMT
Etag: "e-4e4b1ee6"
Content-length: 13
Content-range: bytes 1-13/14


We get a partial content and the required content. This is expected.

3. Now, if we edit the content of the test.html page,  we can confirm we get a new
    E-tag value (by using step 1). The new E-tag value for this is "b-4e4b22ec".

However, if we issue the same request like step 2 but using the stale E-tag value,  the following behavior is seen:

# telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
GET /test.html HTTP/1.1
Host: localhost
If-Range: "e-4e4b1ee6"
Range: bytes=1-
Connection: close

HTTP/1.1 206 Partial Content
Server: Oracle-iPlanet-Web-Server/7.0
Date: Wed, 17 Aug 2011 02:10:02 GMT
Content-type: text/html
Last-modified: Wed, 17 Aug 2011 02:09:48 GMT
Etag: "b-4e4b22ec"
Content-length: 10
Content-range: bytes 1-10/11


The expected result according to HTTP specification is that if a "If-Range" request is made with a non-matching "Etag" value, a full content of the file with HTTP status code 200 be returned. This is not seen.

Changes

 

Cause

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


In this Document
Symptoms
Changes
Cause
Solution
References


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.