Thanks for responding Chris.

The URL names are:

https://goodall.us.com/img/switch-up.jpg
https://goodall.us.com/img/switch-dn.jpg

When I converted them to text strings for inclusion in the python source, it looked like the first half of the 
image file is near identical.. I can spot differences down about half way by eye. I can understand if the web
server digested the first 1k of the image they might seem identical. I guess a switch would be the pathological
case because the outside would be identical, and somewhere inside the action would move one way or 
another.

I used the demo mode in chrome and looked at the url of the img src, and while it said switch-up, the tool-tip
image that came up was the down switch. Then I converted the image files to text for inclusion in the 
python in case that would help and it did not.


Here are my simplified test files.

[root@cloud-goodall-us-com html]# cat images.py
#!/usr/bin/python 
# /var/www/html/images.py  2/13/2016 dwg -                 #
############################################################

SWITCHDN = "data:image/jpeg;base64,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"

SWITCHUP = "data:image/jpeg;base64,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"

#######
# eof #
#######



[root@cloud-goodall-us-com html]# cat state0.cgi
#!/usr/bin/python 
# /var/www/html/state0.cgi 2/13/2016 dwg -                 #
############################################################
import os
import sys
import sysconfig
import images

print("Content-type:    text/html\n\n")
import cgi,cgitb
cgitb.enable()
print("<!DOCTYPE html>\n")
print("<html>\n")
print("  <head>\n")
print("  </head>\n")
print("  <body>\n")
print("<a href=\"https://goodall.us.com/state1.cgi\"><img src=\""+images.SWITCHDN+"\"></a>")
print("  </body>\n")
print("</html>\n")


[root@cloud-goodall-us-com html]# cat state1.cgi
#!/usr/bin/python 
# /var/www/html/state0.cgi 2/13/2016 dwg -                 #
############################################################
import os
import sys
import sysconfig
import images

print("Content-type:    text/html\n\n")
import cgi,cgitb
cgitb.enable()
print("<!DOCTYPE html>\n")
print("<html>\n")
print("  <head>\n")
print("  </head>\n")
print("  <body>\n")
print("<a href=\"https://goodall.us.com/state0.cgi\"><img src=\""+images.SWITCHUP+"\"></a>")
print("  </body>\n")
print("</html>\n")






On Feb 14, 2016, at 7:29 PM, Christopher Schultz <chris@christopherschultz.net> wrote:

Douglas,

On 2/14/16 9:44 PM, Douglas W. Goodall wrote:
I have written a very simple pair of cgi scripts in python that display
a toggle switch either
in the up position, or in the down position. When you click on the
switch, it toggles between
the two and switches between the images appropriately. At least that is
what it is supposed
to do.

The problem presented itself as the switch always being in the down
position, no matter
how I toggled and switched between the cgi scripts.

Here is the down
and here is the up.

I checked in the browser debugger and the cgi scripts were trying to
send the proper images.
I tried the in the Mac OS X based Safari and Chrome and had identical
results.

When I eventually gave up and used different switch images, the problem
went away, so it
is my best guess that there is something pathological about the binary
contents of the images
making the Web Server send a cached version of the down switch image
instead of the up
switch image that is needed.

If the URL of the switch image the same in both cases (e.g.
/images/switch_state.cgi)?

If so, you may be dealing with browser caching. Use the usual cadre of
response headers to instruct the client not to cache the response.

If not, then the problem may still be a cached image, possibly from a
time where the URL pointed to the wrong image.

Using Chrome's dev tools, you can see exactly what the client HTTP
request and server HTTP response look like. That may help find out
what's going on.

-chris

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org