Forum Discussion

James_Wrubel_48's avatar
Icon for Nimbostratus rankNimbostratus
Mar 06, 2006

Removing Pragma header on https response

I have a very unusual problem that I hope an iRule can solve. Our F5 BigIP does SSL acceleration and load balancing for a pair of servers running Macromedia's Breeze product. We have a custom UI written in Flash that runs on a different server not managed by the F5. The custom UI calls the Breeze API to load and present data. There is an obscure 'bug' in IE that is causing problems, and I wonder if an iRule can provide a workaround.



The deal is that when a user makes a request for data in the Flash UI, Flash tells IE to go get the data from the Breeze server, which passes through the F5. The F5 returns the data, which is XML, back to IE. IE sees the following headers:



HTTP/1.0 200 OK


Date: Mon, 06 Mar 2006 14:38:30 GMT


Expires: now


Content-Type: text/xml




Connection: close


Pragma: no-cache


Cache-Control: no-cache


Server: JRun Web Server



Because of the expires, pragma, and cache-control headers, IE actually expires the content instead of handing it back to Flash. Microsoft has a patch available for this, but it is far easier for us to try and solve this with an iRule than to get our entire user base to download and isntall a patch.



So the pseudocode I would like to implement is,



If request includes the string /api/xml and user-agent = IE, remove header Expires, remove header Pragma, replace header Cache-Control with Cache-Control: no-store



This rule seems close:



Here is the Microsoft Support page for this issue:

1 Reply

  • Just modifying Joe's blog entry yields this for your requirements:

    when HTTP_REQUEST {
      set foundmatch 0
      if { ([HTTP::uri] contains "/api/xml/") and ([HTTP::header "User-Agent"] contains "")} {
        set foundmatch 1
    when HTTP_RESPONSE {
      if {$foundmatch == 1} {
        HTTP::version "1.1"
        HTTP::header remove Pragma
        HTTP::header replace Cache-Control no-store
        HTTP::header remove Expires

    Note that you'll need to replace with what IE typically places in that header. I don't have a sniffer capture of that handy.