Search squid archive

Re: java web start jars won't be cached

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thibault Ketterer wrote:
I squid-users,
I am trying to cache some jar from java web start.

I augmented the cache_dir size to match the jar size and I tuned the
refresh_pattern parameter for jar file like this :

 cache_dir ufs /local/squid 1000 16 256
 refresh_pattern -i \.jar$      0 100% 1440 override-expire
override-lastmod reload-into-ims ignore-no-cache ignore-private
ignore-auth

But squid won't cache the jar file. In the store.log :
  1237561956.490 RELEASE 00 00000085 982C3FB51B721FD777E121DF5C23653C
 200 1237561059 1237455030        -1 application/java-archive
38363415/16182969 GET
http://server_IP:8080/superviseurUcte/gsrAppSigne.jar

Squid seem to release it as soon as it get it, but why ?

Furthermore if a download the jar file with a python request,
containing apparently the same options, squid caches it.
in the store.log
  1237479895.109 SWAPOUT 00 00000009 95484B2D4855572C7835C663D0871C0D
 200 1237479005 1237455702        -1 application/java-archive
37531320/37531320 GET
http://server_IP:8080/superviseurUcte/gsrAppSigne.jar

Then If I refresh the jar with javaws, squid uses its cache.
But if I change the jar, again
 javaws -> never goes into cache
 python -> cache

I used wireshark to capture the request packets :

=== the packet which caches (python)

Frame 1 (502 bytes on wire, 502 bytes captured)
Ethernet II, Src: HewlettP_46:97:c4 (00:1a:4b:46:97:c4), Dst:
Ibm_d8:40:5c (00:14:5e:d8:40:5c)
Internet Protocol, Src: source_IP (source_IP), Dst: proxy_IP (proxy_IP)
Transmission Control Protocol, Src Port: 39047 (39047), Dst Port:
squid (3128), Seq: 0, Ack: 0, Len: 448
Hypertext Transfer Protocol
   GET http://server_IP:8080/superviseurUcte/gsrAppSigne.jar HTTP/1.1\r\n
   content-type: application/x-java-archive\r\n
   accept-encoding: pack200-gzip,gzip\r\n
   User-Agent: JNLP/6.0 javaws/1.6.0_01 (b06) Java/1.6.0_01\r\n
   UA-Java-Version: 1.6.0_01\r\n
   Host: server_IP:8080\r\n
   Cache-Control: no-cache\r\n
   Pragma: no-cache\r\n
   Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2\r\n
   Proxy-Connection: keep-alive\r\n
   If-Modified-Since: Wed, 31 Dec 1969 23:59:59 GMT\r\n
   \r\n

This request is determined to NOT get get a cached copy of this file. Cache-control: no-cache, Pragma: no-cache, If-Modified-Since Dec 1969... But the request only affects whether the request is satisfied from cache. Whether or not the object is cached at all is (in part) determined by the server's response.



=== the packet which won't cache (java web start)

Frame 4 (502 bytes on wire, 502 bytes captured)
Ethernet II, Src: HewlettP_46:97:c4 (00:1a:4b:46:97:c4), Dst:
Ibm_d8:40:5c (00:14:5e:d8:40:5c)
Internet Protocol, Src: source_IP (source_IP), Dst: proxy_IP (proxy_IP)
Transmission Control Protocol, Src Port: 39003 (39003), Dst Port:
squid (3128), Seq: 0, Ack: 0, Len: 448
Hypertext Transfer Protocol
   GET http://server_IP:8080/superviseurUcte/gsrAppSigne.jar HTTP/1.1\r\n
   content-type: application/x-java-archive\r\n
   accept-encoding: pack200-gzip,gzip\r\n
   User-Agent: JNLP/6.0 javaws/1.6.0_01 (b06) Java/1.6.0_01\r\n
   UA-Java-Version: 1.6.0_01\r\n
   Host: server_IP:8080\r\n
   Cache-Control: no-cache\r\n
   Pragma: no-cache\r\n
   Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2\r\n
   Proxy-Connection: keep-alive\r\n
   If-Modified-Since: Wed, 31 Dec 1969 23:59:59 GMT\r\n
   \r\n

I can join the python source, but for the javaws it is another story,
I don't know if it uses some special TCP option or something that
forces squid to not put the jar file in its cache...

Any advice will be greatly apprecied !
--
Thibault ketterer

Chris

[Index of Archives]     [Linux Audio Users]     [Samba]     [Big List of Linux Books]     [Linux USB]     [Yosemite News]

  Powered by Linux