I think there is no universal answer to this. First of all, I suspect you might confuse headers with tokens, so let's start from here. This is a snippet from whireshark, usual HTTP GET method:
GET /22789/610/144208714.mp4?token2=1404763288_a4b48d3fc547294893b3b8d817ef1c59&aksessionid=690e90bada20cdc5 HTTP/1.1
Host: pdl.vimeocdn.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0
Accept: video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5
Accept-Language: en-US,en;q=0.5
DNT: 1
Range: bytes=427217-
Referer: http://vimeo.com/59253805
Cookie: aka_debug=cpcode:133150~clientip:87.81.132.48~ghostip:176.255.247.64~requestid:57d39e3~time:1404762182~ghostforwardip:~edgecache:cache-hit
Connection: keep-alive
Notice how token sits behind question mark in the body of GET request line. Whatever follows '?' is called request parameter, it is up to you whether you name this parameter 'token', 'token2', or 'mysuperhash'. In this particular example the token starts with unix-like timestamp, so if you go and try paste this exactly request to your browser, access will be denied as the link has expired.
Every line that follows the first one is basically a header. Although there are some conventional headers (e.g. Host or Time) it is entirely up to you how to name your header that you would like to use for your specific purposes.
In nginx and Apache servers you have variables that are always there via which you can access parameters and headers with equal ease. Furthermore, nginx allows you configure conditional access based on tokens so that you don't even need be a programmer (save for ability of getting config lines right), you could have a look: http://nginx.org/en/docs/http/ngx_http_secure_link_module.html
It is a certain architectural decision how to construct that token. You can protect the access based on time, on whole URI, client's IP address and so on. Normally, it is more complicated than it looks, as you will need to take into account many possibilities in access networks an authorized user might be behind. In case of nginx you are limited with md-5 hash. It is old-good-fast method, but it is deemed compromised, so if you want a better protection you might consider sha-1 in your own implementation (libraries are available in openssh package).