httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ray Van Dolson <rvandol...@esri.com>
Subject Re: Palm Treo access to OWA via Apache 2.2.x Proxy
Date Wed, 28 May 2008 23:13:07 GMT
Late reply on this -- I had to spend time on other projects. :)  I have
a dedicated test proxy set up now so it's easier to capture the correct
packets now and experiment.

> Sounds you are just stuck in the middle trying to deal with a broken
> client. I thought you might be trying to actually implement the
> client software or something.

Yes, sorry, I should have clarified that earlier.

> Sure, you can fix this.
> 
> Just get in with a monkey wrench if you have to and force mod_proxy
> to honor 'Keep-Alive' for an OPTIONS request and the behavior should
> then be identical to the ( known good ) direct-to-IIS example.

I am going to definitely try to do this now.  Point me in the right
direction maybe?  Is there actually an Apache config option I can
leverage for this or do I need to look to patch the mod_proxy source?

> PS: Still just curious. What is the HTTP/x.x value actually being
> sent by the "The Treo" for the exchange in question?. Is it the older
> HTTP/1.0 or is it actually requesting full HTTP/1.1 functionality?
> Sometimes that comes into play with this 'Keep-Alive' stuff.  If it's
> sending HTTP/1.0 then perhaps mod_proxy is simply obeying strict
> standards and that's why it changes 'Keep-Alive' back to 'Close'.
> 'Keep-Alive' was not 'officially' part of the HTTP/1.0 specs. It just
> sort of 'crept in there' and was available BEFORE full implementation
> of HTTP/1.1. So there's still a lot of confusion out there and a lot
> of 'looking the other way' going on with regards to 'Keep-Alive'.
> Some code tries to be strict ( Apache, generally ) and others are
> 'loose' ( Microsoft/IIS? ).
> 
> Example: MS Internet Explorer has always had an 'Advanced Option'
> which allows you to decide to use HTTP/1.1 for "Proxy Connections"
> but it is OFF by default. Default behavior for MSIE Proxy requests is
> to use the older HTTP/1.0. However... that doesn't mean it won't use
> "Keep-Alive". It treats that part of the HTTP/1.1 spec as an
> exception.
> 
> Apologies in advance if this is all just old news to you.
> 
> On my own Microsft Windows Mobile Treo, however, this legacy
> "Advanced Option" is missing. The Pocket Internet Explorer Browser
> under Windows Mobile will ALWAYS send an HTTP/1.1 request.

It is requesting HTTP/1.1.  I'll paste the full conversation here which
I just captured.  This is from the Treo to and from the Proxy and again
is with Apache 2.2.9 svn 659141 straight HTTP (no SSL).

1 OPTIONS /Microsoft-Server-ActiveSync HTTP/1.1
  MS-ASProtocolVersion: 2.5
  Connection: Keep-Alive
  User-Agent: PalmOne-TreoAce/1.53
  Host:redowadev.esri.com
  Cache-Control: no-cache
  Authorization: Basic <stuff>
  Content-Length: 0

4 HTTP/1.1 200 OK
  Date: Wed, 28 May 2008 22:52:00 GMT
  Server: Microsoft-IIS/6.0
  X-Powered-By: ASP.NET
  X-AspNet-Version: 2.0.50727
  Public: OPTIONS, POST
  Allow: OPTIONS, POST
  MS-Server-ActiveSync: 6.5.7638.1
  MS-ASProtocolVersions: 1.0,2.0,2.1,2.5
  MS-ASProtocolCommands: Sync,SendMail,SmartForward,SmartReply,GetAttachment,GetHierarchy,CreateCollection,DeleteCollection,MoveCollection,FolderSync,FolderCreate,FolderDelete,FolderUpdate,MoveItems,GetItemEstimate,MeetingResponse,ResolveRecipients,ValidateCert,Provision,Search,Notify,Ping
  Content-Length: 0
  Cache-Control: private
  Content-Type: text/html; charset=UTF-8
  Connection: close

5 POST /Microsoft-Server-ActiveSync?Cmd=FolderSync&User=userid@esri.com&DeviceId=xxXXXXxxxx63&DeviceType=PalmOneTreoAce
HTTP/1.1
  Content-Type: application/vnd.ms-sync.wbxml
  MS-ASProtocolVersion: 2.5
  Connection: Keep-Alive
  User-Agent: PalmOne-TreoAce/1.53
  Host:redowadev.esri.com
  Cache-Control: no-cache
  X-MS-PolicyKey: 0
  Authorization: Basic <stuff>
  Content-Length: 13

  ^^ This packet is never proxied on to the IIS server.

Here is the proxy to OWA (IIS) server conversation:

2 OPTIONS /Microsoft-Server-ActiveSync HTTP/1.1
  Host: redowadev.esri.com
  MS-ASProtocolVersion: 2.5
  User-Agent: PalmOne-TreoAce/1.53
  Cache-Control: no-cache
  Authorization: Basic <stuff>
  X-Forwarded-For: 99.204.225.107
  X-Forwarded-Host: redowadev.esri.com
  X-Forwarded-Server: redowadev.esri.com
  Connection: Keep-Alive
  Content-Length: 0

3 HTTP/1.1 200 OK
  Date: Wed, 28 May 2008 22:52:00 GMT
  Server: Microsoft-IIS/6.0
  X-Powered-By: ASP.NET
  X-AspNet-Version: 2.0.50727
  Public: OPTIONS, POST
  Allow: OPTIONS, POST
  MS-Server-ActiveSync: 6.5.7638.1
  MS-ASProtocolVersions: 1.0,2.0,2.1,2.5
  MS-ASProtocolCommands: Sync,SendMail,SmartForward,SmartReply,GetAttachment,GetHierarchy,CreateCollection,DeleteCollection,MoveCollection,FolderSync,FolderCreate,FolderDelete,FolderUpdate,MoveItems,GetItemEstimate,MeetingResponse,ResolveRecipients,ValidateCert,Provision,Search,Notify,Ping
  Content-Length: 0
  Cache-Control: private
  Content-Type: text/html

  ^^ IIS agrees to keep the connection alive.

FWIW, this Treo doesn't appear to have too much in the way of advanced
options to toggle how its HTTP client used in sync'ing behaves.

Thanks again,
Ray

Mime
View raw message