Header names after september 30 (Load balancers)

650 views
Skip to first unread message

Santiago Del Valle

unread,
Aug 13, 2019, 5:30:50 PM8/13/19
to Google App Engine
We got this email

After September 30, HTTP(S) Load Balancers will convert HTTP/1.1 header names to lowercase in the request and response directions; header values will not be affected.

As header names are case-insensitive, this change will not affect clients and servers that follow the HTTP/1.1 specification (including all popular web browsers and open source servers). Similarly, as HTTP/2 and QUIC protocols already require lowercase header names, traffic arriving at load balancers over these protocols will not be affected. However, we recommend testing projects that use custom clients or servers prior to the rollout to ensure minimal impact.


However I do not understand if this will affect headers injected by google, like "HTTP_X_APPENGINE_COUNTRY" which we use on our project, is this going to change or will it remain unaffected?

Nicolas (Google Cloud Platform Support)

unread,
Aug 14, 2019, 4:35:09 PM8/14/19
to Google App Engine

Hi Santiago,

Headers injected by Google will be lower case as "Load Balancers will convert HTTP/1.1 header names to lowercase in the request and response directions".

From the browser’s point of view it would not matter as browsers don’t look at the field name to see if they are upper or lower case. 

That being said if your application is somehow manipulating or using that value please keep in mind that it would be good practice to have the application handle them as case insensitive.


Carl Smith

unread,
Aug 15, 2019, 4:31:12 AM8/15/19
to Google App Engine
You can test to see how your application handles lowercase by passing this header through also.

x-goog-downcase-all-headers: test

This will make all of the headers lowercase

Joshua Smith

unread,
Aug 15, 2019, 9:04:47 AM8/15/19
to Google App Engine
Wait. What?

Are you saying this bit of server code isn’t going to work after September 30?

class CountryHandler(webapp2.RequestHandler):
  def get(self):
    self.response.headers["Content-Type"] = "text/plain"
    self.response.out.write(self.request.headers["X-AppEngine-Country"])

Or is the issue only on the client side?

Also, I didn’t get that email. I get emails all the time from google about stuff they are deprecating (the most recent being a stern warning that I need to stop using the lovely “Launcher” app and instead use the terrible command-line interface; a development about which I am not at all pleased). Why wouldn’t I have gotten this one?

-Joshua

--
You received this message because you are subscribed to the Google Groups "Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-appengi...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/c498388c-6784-4b83-ab0e-e4c0305fc553%40googlegroups.com.

David Mattatall

unread,
Sep 16, 2019, 8:54:13 AM9/16/19
to Google App Engine
Does this only affect "google injected headers" or all headers that traverse through the google load balancer?

Where is the official google change release document? 

Elliott (Cloud Platform Support)

unread,
Sep 20, 2019, 9:40:12 PM9/20/19
to Google App Engine

Hello,


I was able to find some information you may need in the following post. I hope this will help. Those who were believed to benefit from this email, although not thoroughly, would have gotten this email.


Reply all
Reply to author
Forward
0 new messages