Image Caching (?) still a huge problem

Further to an earlier message, we are stil having problems with web pages being delivered considerably slower under domino 6.01 than under 5. (we were led to expect an improvement).

Example :

I have a document in a normal nsf with a single text field. In that text field, I refer to 40 images (each is basically a copy of the same image - this is only a test) e.g.

through to

(each surrounded by square brackets)

On Domino 5 server, this loads almost instantly - on a Domino 6.01 server it loads instantly first time, then slowly (you can see the ‘downloading image…’ message in the status bar for each image).

I have tried setting web rules on the 6 server

e.g.

incoming patter /*.gif

http response codes 200,206

Expires header : Always add header

             SPecify a number of days

Expires after 5 days.

Still no better.

If I look at the cache files for the images saved by IE6, on domino 5

Expires : none

Last modified : 26 Sep 2003, 14:15

Last accessed :

Last Checked : both change on every refresh

On domino 6 server

Expires : 28 October 2003 01:00

Last Modified : as Domino 5 above

Last accessed :

Last Checked : both change on every refresh

So I don’t think it’s that.

Inspecting the response headers : -

Domino 5 =

Status: 200 / OK

Content-Type: text/html; charset=US-ASCII

Content-Length: 3248

Last-Modified: Wed, 22 Oct 2003 12:18:54 GMT

Domino 6:

Status: 200 / OK

Content-Type: text/html; charset=US-ASCII

Content-Length: 3270

ETag: W/“MTAtODA4Ny04MDI1NkRDNzAwNDNCRTMwLTgwMjU2REM3MDA0M0IzNTYtRDQzREM0M0JDM0REMTQ5ODgwMjU2RDlEMDA0MDYxNDI=”

Last-Modified: Wed, 22 Oct 2003 12:19:57 GMT

This is driving me nuts!

Question : what is causing the Domino 5 to be so quick - is it server or client caching

Next Question : why isn’t Domino 6 doing the same!!!

ANY HELP APPRECIATED!!!

Thanx

Tim

Subject: Image Caching (?) still a huge problem

Hi.

You sent the http header response from the html page. Could u sent the http response from the image file ?

What u can try to do then is add a http header rules that will use :

Expires : let’s say X days

and add a custom header like this :

Cache-Control | max-age=86400, public

these rules should be adapted based on your needs(if images are subject to change etc…)

If your site is public, you can check cachability of pages via a web site http://www.web-caching.com/cacheability.html

Hope this helps

Subject: RE: Image Caching (?) still a huge problem

Michael

How would I get the header response or an individual image? I am using IE6.

Regards

Tim

Subject: RE: Image Caching (?) still a huge problem

either via the web site I sent u if ur site is available online, or via a http sniffer.

You can use IBM Page detailler (find in on www.alphaworks.ibm.com). Launch it. Launch IE then, it will capture all request. then on the gif element, u can right click or double click to get http header request and response.

Be sure to empty your browser cache fist time u get the page. then go again to the page and compare what elements a redownloaded, what elements are said not mofdified by server etc…

This page detailer tool is cool.

Hope this helps.

Subject: Results of Page Detailer…

Michael

Having installed page detailler, here are the results of just one of the gif loads (note : this shows they are three times faster in Domino 5)

It certainly seems to be a header difference

Domino 5

HTTP/1.1 304 Not modified

Server: Lotus-Domino/5.0.9

Date: Wed, 22 Oct 2003 14:01:48 GMT

Connection: close

Content-Type: image/gif

Last-Modified: Fri, 26 Sep 2003 13:15:08 GMT

Domino 6

HTTP/1.1 200 OK

Server: Lotus-Domino

Date: Wed, 22 Oct 2003 17:05:32 GMT

Content-Type: image/gif

Content-Length: 2499

Last-Modified: Fri, 26 Sep 2003 13:15:08 GMT

Accept-Ranges: bytes

Expires: Mon, 27 Oct 2003 23:59:59 GMT

Is it the connection:close option in Dom 5?

Thanks for help!

Full output …

Domino 5:

*** WD_EV_WS2_ITEM(1560)

Wednesday October 22, 2003 06:05:25.342765 PM

Status=67, SensorID=0, ProcessorID=6

AgentID=1524222341, ApplicationID=4294967295, ProcessID=2060

ActivityID=4294967295, ThreadID=280, SensorSequence=0

ProcessorSequence=20215, ExtraDataLength=781, ExtraDataCount=16

— WD_CV_WS2_ITEM_DIMENSIONS_ARRAY(1150) UINT8(0) Length=164 Count=1

0 	--- WD_CV_WS2_ITEM_DIMENSIONS(1146) UINT8(0) Length=148

		Wednesday October 22, 2003 06:05:25.318062 PM

		Item Totals:

			Offset       			0.120846

			Duration      			0.011233

			Send Count    			410

			Recv Count    			184

			Minimum Offset			0.078400

			Maximum Offset			0.132954

		Socket Open:

			Offset       			- 0.042446

		Connect:

			Offset       			0.0

			Duration      			0.004806

		Connect Idle:

			Offset       			0.003409

			Duration      			0.001397

		Server Response:

			Offset       			0.004806

			Duration      			0.005829

			Send Count    			410

			Recv Count    			184

		Delivery:

			Offset       			0.010635

			Duration      			0.000598

			Recv Count    			0

		Delivery Idle:

			Offset       			0.010635

			Duration      			0.000269

		Browser Closed Socket:

			Offset       			0.012108

		Flags: 0x0094A500

			HAS_BROWSER_SOCKET_CLOSED

			HAS_CONNECT

			HAS_CONNECT_IDLE

			HAS_DELIVERY

			HAS_DELIVERY_IDLE

			HAS_SERVER_RESPONSE

			HAS_SOCKET_OPEN

— WD_CV_WS2_HTTP_HEADER_REQUEST(1057) CSTRING(7) Length=410

GET /SI/IMAGES/ztest/img1.gif HTTP/1.1

Accept: */*

Referer: http://sid/timtest.nsf/51bf1e3f1b7d6ced80256cdb002fcf16/d43dc43bc3dd149880256d9d00406142?OpenDocument

Accept-Language: en-gb

Accept-Encoding: gzip, deflate

If-Modified-Since: Fri, 26 Sep 2003 13:15:08 GMT

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705; .NET CLR 1.1.4322)

Host: sid

Connection: Keep-Alive

— WD_CV_WS2_HTTP_HEADER_REPLY(1056) CSTRING(7) Length=184

HTTP/1.1 304 Not modified

Server: Lotus-Domino/5.0.9

Date: Wed, 22 Oct 2003 14:01:48 GMT

Connection: close

Content-Type: image/gif

Last-Modified: Fri, 26 Sep 2003 13:15:08 GMT

— WD_CV_APPLICATION_FILE(4) CSTRING(7) Length=12

IEXPLORE.EXE

— WD_CV_WS2_REMOTE_IP(1090) UINT32(10) Length=4

3232235530 [0xC0A8000A] --> 192.168.0.10

— WD_CV_WS2_REMOTE_PORT(1091) UINT16(9) Length=2

80 [0x0050]

— WD_CV_WS2_SOCKET(1096) UINT32(10) Length=4

2992 [0x00000BB0]

— WD_CV_WS2_TYPE(1106) UINT32(10) Length=4

1 [0x00000001]

— WD_CV_WS2_ITEM_CONTEXT(1130) UINT8(0) Length=8

26, 3

— WD_CV_WS2_FIRST_SESSIONID(1137) UINT32(10) Length=4

405001 [0x00062E09]

— WD_CV_WS2_LAST_SESSIONID(1140) UINT32(10) Length=4

406080 [0x00063240]

— WD_CV_WS2_ITEM_ICON_TYPE(1147) UINT32(10) Length=4

26 [0x0000001A] --> Cached GIF

— WD_CV_WS2_ITEM_TYPE(1152) UINT32(10) Length=4

20 [0x00000014] --> Updated Item Sealed by Socket Close 

— WD_CV_WS2_AF(1027) UINT32(10) Length=4

2 [0x00000002]

— WD_CV_WS2_LOCAL_PORT(1070) UINT16(9) Length=2

3319 [0x0CF7]

— WD_CV_WS2_PROTOCOL(1082) UINT32(10) Length=4

6 [0x00000006]

Domino 6:

*** WD_EV_WS2_ITEM(1560)

Wednesday October 22, 2003 06:05:28.062618 PM

Status=67, SensorID=0, ProcessorID=6

AgentID=1524222341, ApplicationID=4294967295, ProcessID=1108

ActivityID=4294967295, ThreadID=2080, SensorSequence=0

ProcessorSequence=21535, ExtraDataLength=820, ExtraDataCount=17

— WD_CV_WS2_ITEM_DIMENSIONS_ARRAY(1150) UINT8(0) Length=144 Count=1

0 	--- WD_CV_WS2_ITEM_DIMENSIONS(1146) UINT8(0) Length=128

		Wednesday October 22, 2003 06:05:28.001331 PM

		Item Totals:

			Offset       			0.061448

			Duration      			0.057269

			Send Count    			412

			Recv Count    			233

			Minimum Offset			0.061448

			Maximum Offset			0.118717

		Server Response:

			Offset       			0.0

			Duration      			0.054887

			Send Count    			412

			Recv Count    			233

		Delivery:

			Offset       			0.054887

			Duration      			0.002382

			Recv Count    			0

		Delivery Idle:

			Offset       			0.054887

			Duration      			0.000255

		Browser Closed Socket:

			Offset       			0.057269

		Flags: 0x0084A000

			HAS_BROWSER_SOCKET_CLOSED

			HAS_DELIVERY

			HAS_DELIVERY_IDLE

			HAS_SERVER_RESPONSE

— WD_CV_WS2_HTTP_HEADER_REQUEST(1057) CSTRING(7) Length=412

GET /SI/IMAGES/ztest/img1.gif HTTP/1.1

Accept: */*

Referer: http://chad/timtest.nsf/51bf1e3f1b7d6ced80256cdb002fcf16/d43dc43bc3dd149880256d9d00406142?OpenDocument

Accept-Language: en-gb

Accept-Encoding: gzip, deflate

If-Modified-Since: Fri, 26 Sep 2003 13:15:08 GMT

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705; .NET CLR 1.1.4322)

Host: chad

Connection: Keep-Alive

— WD_CV_WS2_HTTP_HEADER_REPLY(1056) CSTRING(7) Length=233

HTTP/1.1 200 OK

Server: Lotus-Domino

Date: Wed, 22 Oct 2003 17:05:32 GMT

Content-Type: image/gif

Content-Length: 2499

Last-Modified: Fri, 26 Sep 2003 13:15:08 GMT

Accept-Ranges: bytes

Expires: Mon, 27 Oct 2003 23:59:59 GMT

— WD_CV_APPLICATION_FILE(4) CSTRING(7) Length=12

IEXPLORE.EXE

— WD_CV_WS2_REMOTE_IP(1090) UINT32(10) Length=4

3232235543 [0xC0A80017] --> 192.168.0.23

— WD_CV_WS2_REMOTE_PORT(1091) UINT16(9) Length=2

80 [0x0050]

— WD_CV_WS2_SOCKET(1096) UINT32(10) Length=4

1676 [0x0000068C]

— WD_CV_WS2_TYPE(1106) UINT32(10) Length=4

1 [0x00000001]

— WD_CV_WS2_ITEM_CONTEXT(1130) UINT8(0) Length=8

27, 2

— WD_CV_WS2_ITEM_CONTEXT_PREVIOUS(1131) UINT8(0) Length=8

27, 1

— WD_CV_WS2_FIRST_SESSIONID(1137) UINT32(10) Length=4

431364 [0x00069504]

— WD_CV_WS2_LAST_SESSIONID(1140) UINT32(10) Length=4

432142 [0x0006980E]

— WD_CV_WS2_ITEM_ICON_TYPE(1147) UINT32(10) Length=4

25 [0x00000019] --> GIF

— WD_CV_WS2_ITEM_TYPE(1152) UINT32(10) Length=4

20 [0x00000014] --> Updated Item Sealed by Socket Close 

— WD_CV_WS2_AF(1027) UINT32(10) Length=4

2 [0x00000002]

— WD_CV_WS2_LOCAL_PORT(1070) UINT16(9) Length=2

3358 [0x0D1E]

— WD_CV_WS2_PROTOCOL(1082) UINT32(10) Length=4

6 [0x00000006]

Subject: RE: Results of Page Detailer…

what we see is in R5, the domino server send a NOT MODIFIED http header so the browser takes image from the cache, while R6 sends the images. The question is why the R6 image can’t be cached between request ?

is the above result the “reload” of images for R5 ans R6 ? (not first connection for R6 and reload for R5…). Here is how I would do it :

  • empty browser cache

  • shutdown browser

  • launch browser & capture http headers (a)

  • reload pages & capture http headers (b)

  • close browser

  • launch browser & capture http header (c)

this for R5 then for R6

in (a), both case should be : images is downloaded

in (b) we’ll see how caching occurs in the same browser session

in (c) we’ll see how caching occurs across browser session

do not for get the empty the cache / close browser step for R5 and R6 test.

Subject: RE: Results of Page Detailer…

Michael

You are correct, Domino 6 is not sending a NOT-MODIFIED header! (see below)

DO you have any ideas on what I could do.

ps. Thanks for your help on this.


Domino 5


First Load :

— WD_CV_WS2_HTTP_HEADER_REQUEST(1057) CSTRING(7) Length=360

GET /SI/IMAGES/ztest/img1.gif HTTP/1.1

Accept: */*

Referer: http://sid/timtest.nsf/51bf1e3f1b7d6ced80256cdb002fcf16/d43dc43bc3dd149880256d9d00406142?OpenDocument

Accept-Language: en-gb

Accept-Encoding: gzip, deflate

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705; .NET CLR 1.1.4322)

Host: sid

Connection: Keep-Alive

— WD_CV_WS2_HTTP_HEADER_REPLY(1056) CSTRING(7) Length=232

HTTP/1.1 200 Document follows

Server: Lotus-Domino/5.0.9

Date: Thu, 23 Oct 2003 12:22:27 GMT

Connection: close

Accept-Ranges: bytes

Content-Type: image/gif

Content-Length: 2499

Last-Modified: Fri, 26 Sep 2003 13:15:08 GMT

Reload :

— WD_CV_WS2_HTTP_HEADER_REQUEST(1057) CSTRING(7) Length=410

GET /SI/IMAGES/ztest/img1.gif HTTP/1.1

Accept: */*

Referer: http://sid/timtest.nsf/51bf1e3f1b7d6ced80256cdb002fcf16/d43dc43bc3dd149880256d9d00406142?OpenDocument

Accept-Language: en-gb

Accept-Encoding: gzip, deflate

If-Modified-Since: Fri, 26 Sep 2003 13:15:08 GMT

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705; .NET CLR 1.1.4322)

Host: sid

Connection: Keep-Alive

— WD_CV_WS2_HTTP_HEADER_REPLY(1056) CSTRING(7) Length=184

HTTP/1.1 304 Not modified

Server: Lotus-Domino/5.0.9

Date: Thu, 23 Oct 2003 12:22:28 GMT

Connection: close

Content-Type: image/gif

Last-Modified: Fri, 26 Sep 2003 13:15:08 GMT

Domino 6


First Load :

— WD_CV_WS2_HTTP_HEADER_REQUEST(1057) CSTRING(7) Length=362

GET /SI/IMAGES/ztest/img1.gif HTTP/1.1

Accept: */*

Referer: http://chad/timtest.nsf/51bf1e3f1b7d6ced80256cdb002fcf16/d43dc43bc3dd149880256d9d00406142?OpenDocument

Accept-Language: en-gb

Accept-Encoding: gzip, deflate

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705; .NET CLR 1.1.4322)

Host: chad

Connection: Keep-Alive

— WD_CV_WS2_HTTP_HEADER_REPLY(1056) CSTRING(7) Length=233

HTTP/1.1 200 OK

Server: Lotus-Domino

Date: Thu, 23 Oct 2003 12:33:00 GMT

Content-Type: image/gif

Content-Length: 2499

Last-Modified: Fri, 26 Sep 2003 13:15:08 GMT

Accept-Ranges: bytes

Expires: Tue, 28 Oct 2003 23:59:59 GMT

Reload :

— WD_CV_WS2_HTTP_HEADER_REQUEST(1057) CSTRING(7) Length=412

GET /SI/IMAGES/ztest/img1.gif HTTP/1.1

Accept: */*

Referer: http://chad/timtest.nsf/51bf1e3f1b7d6ced80256cdb002fcf16/d43dc43bc3dd149880256d9d00406142?OpenDocument

Accept-Language: en-gb

Accept-Encoding: gzip, deflate

If-Modified-Since: Fri, 26 Sep 2003 13:15:08 GMT

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705; .NET CLR 1.1.4322)

Host: chad

Connection: Keep-Alive

— WD_CV_WS2_HTTP_HEADER_REPLY(1056) CSTRING(7) Length=233

HTTP/1.1 200 OK

Server: Lotus-Domino

Date: Thu, 23 Oct 2003 12:34:15 GMT

Content-Type: image/gif

Content-Length: 2499

Last-Modified: Fri, 26 Sep 2003 13:15:08 GMT

Accept-Ranges: bytes

Expires: Tue, 28 Oct 2003 23:59:59 GMT