For debugging purposes, we would like to configure our pool of load balanced web servers to output an HTTP header identifying the "true" server which served the request. However, we don't know what header name this should be! Is there any pre-existing header for this? Do you have a favorite?


AFAIK there isn't a formal standard for this. What I've seen is:

  • A custom HTTP header. It's really your choice as long as you stay in the X- namespace. For me personally X-Backend-Server is descriptive, and it seems popular.

  • Writing the backend server ID into an HTML comment at the end of the content body.

Update: I found this survey of HTTP headers in the wild from 2011. My suggestion X-Backend-Server is number 119, while X-Server-Name is number 56 on the list. So I'd say X-Server-Name seems the most common header for this.

| improve this answer | |
  • 1
    Note that the X- prefix was deprecated: tools.ietf.org/html/rfc6648 – Edward Z. Yang Jul 28 '12 at 21:10
  • @Edward Z. Yang: Good comment. From that RFC, section 1, bullet 4: "Makes no recommendation as to whether existing "X-" parameters ought to remain in use or be migrated [...]". Absent any newer implementations (that I don't know of) I would personally stick with X-Backend-Server or a similar "X-" header. :-) – Jesper M Jul 28 '12 at 21:18
  • 4
    The real point is that regardless of whether the "X-" headers are official, deprecated or anything else, they won't break anything and are very useful for purposes such as the one being asked about here. In short, it's perfectly fine to use them. – John Gardeniers Jul 29 '12 at 0:15
  • 1
    It looks like X-Served-By is actually used more as of today, according to that report. – Brian Wigginton Oct 25 '12 at 17:38
  • 4
    Links broken... – slm Jun 18 '15 at 16:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.