When redirected request header dictionary contains previous value of cookie 

When you send a request which replaces an existing cookie value with a new one and also returns a redirect response, when the new request is made, its request header from `r.request.headers['Cookies']` shows both the old and the new cookie value. However, the actual request header only contains the new cookie value.

## Expected Result

What would be expected is that `r.request.headers['Cookies']` would only have the new replaced cookie value rather than the old

## Actual Result

Its request header from `r.request.headers['Cookies']` shows both the old and the new cookie value

## Reproduction Steps

```
python
import requests

r = requests.get('http://httpbin.org/cookies/set?FOO=BAZ', cookies={'FOO': 'BAR'})

print(r.json()) #{'cookies': {'FOO': 'BAZ'}}  

print(r.request.headers['Cookie']) # FOO=BAR; FOO=BAZ
```

From what I understand, the latter should be just `FOO=BAZ` as I believe it should only reflect the request headers from the final request. I think what is going on is that the cookies from the previous requests are merged into this. 


## System Information

    $ python -m requests.help

```
{
  "chardet": {
    "version": "3.0.4"
  },
  "cryptography": {
    "version": ""
  },
  "idna": {
    "version": "2.9"
  },
  "implementation": {
    "name": "CPython",
    "version": "3.6.9"
  },
  "platform": {
    "release": "5.3.0-59-generic",
    "system": "Linux"
  },
  "pyOpenSSL": {
    "openssl_version": "",
    "version": null
  },
  "requests": {
    "version": "2.23.0"
  },
  "system_ssl": {
    "version": "1010100f"
  },
  "urllib3": {
    "version": "1.25.9"
  },
  "using_pyopenssl": false
}
```


The bug was originally found in [issue 662 from httpie](https://github.com/jakubroztocil/httpie/issues/662)

> When you send a request which replaces an existing cookie value with a new one and also returns a redirect response, when the new request is made, its request header from r.request.headers['Cookies'] shows both the old and the new cookie value. However, the actual request header only contains the new cookie value.

The initial cookie you specify with `cookies` isn't specified with a domain because you're not setting up and using a cookiejar appropriately.

Further, a cookie can be set with multiple values and that's totally allowed by the HTTP specification. See also https://stackoverflow.com/questions/5621775/cookie-is-set-twice-how-to-remove-the-duplicate

Finally, HTTPBin is decent enough for quick reproductions but doesn't return cookies in the response correctly and is not a valid proof of a bug in this case, nor that the behaviour you're asserting to be correct is the way HTTP behaves in reality.

@sigmavirus24 thank you, I will look into those and see whether this still qualifies as a bug

@asifmallik try:

```py
import requests

s = requests.Session()
r1 = s.get('http://httpbin.org/cookies/set?FOO=BAZ')
r2 = s.get('http://httpbin.org/cookies/set?FOO=BAR')
```

And inspect the requests and responses to get a better understanding of how this works in a real scenario

@sigmavirus24 after trying that, this seems to arise from not using domain-specific cookies, the result when `Session` is used seems consistent. I will close this for now and see where the original bug comes. Thank you!

The cookies parameter should be avoided if you want the best cookie experience is the gist. But also even that behavior isn't against the specification