You can do that in your base controller if you will, so all will automatically inherit it.
Note that this requires "http_header_name" in your session config to be set to "Session-Id" (which is the default), and also that your client retrieves this id from the response header, and inserts it in every request header. So it needs a client side app of some sort...
The HTTP specification clearly states that a browser MAY discard any data as soon as it sees a redirect, and issue a new HTTP GET for the new location. All browsers do, some don't even make downloaded data available, and javascript for example will never be executed.
So use cookies. That is what they are there for.
The HTTP header method is mainly used in environments where the client is not a browser, and therefore cookies can't be used.