Hi, I am trying to build an HTTP proxy running in GAE. This will be done in Java, however my issues are not Java specific.
The origin would be called via urlfetch API. The proxy has to pass some headers from the client to the origin. Specifically, Vary and X- Forwarded-For. According to the documentation this is not possible (both in Java and Python). http://code.google.com/appengine/docs/java/urlfetch/overview.html#Request_Headers Vary has to be passed from the caller, to handle caller language preference (Accept-Language ) and other browser specific behavior. X- Forwarded-For would be set according to the conventions used by HTTP proxy servers. This is required for security and logging reasons in the origin server. 1. If I can’t set those headers myself, what are their values at runtime? 2. Would GAE do the X-Forwarded-For correctly based on the HTTP request that triggered this service (pass the client IP from HTTP Servlet request)? 3. What happens if this request is not from an external client (browser) but from a cron or queue? Is there any difference in the auto populated headers in that case (comparing to invocation as part of handling HTTP request)? 4. I have not seen documentation about limitations of headers in the HttpServletResponse, but I would imagine there are some if GAE tries to automatically GZIP my response (which is implied by the documentation). Any information on that. 5. Is the behavior of the test server identical to the runtime, when it comes to urlfetch request headers? If anyone knows a solid proxy Servlet implementation that works in GAE and uses urlfetch (not java.net) I would love to know about it as well! -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
