Why do HTTP servers forbid underscores in HTTP header names

I had a problem with a custom HTTP SESSION_ID header not being transfered by nginx proxy. I was told that underscores are prohibited according to the HTTP RFC. Searching, I found that most server...