Requests does not handle http status 103

Summary.

## Expected Result

Requests is able to fetch html.

## Actual Result

Requests returns empty text/content if server makes use of 103 status code (checkpoint).

## Reproduction Steps

```python
import requests

r = requests.get("https://www.samba.org/ftp/talloc/")

print(r.status_code)
print(len(r.content))
print(r.text)
```
output:
```
103
0

```
expected output:
```
200
actual content length
actual html
```
## System Information

    $ python -m requests.help

```
{
  "chardet": {
    "version": "3.0.4"
  },
  "cryptography": {
    "version": "2.8.dev1"
  },
  "idna": {
    "version": "2.8"
  },
  "implementation": {
    "name": "CPython",
    "version": "3.7.4"
  },
  "platform": {
    "release": "5.0.0-27-generic",
    "system": "Linux"
  },
  "pyOpenSSL": {
    "openssl_version": "1010103f",
    "version": "19.1.0.dev"
  },
  "requests": {
    "version": "2.22.0"
  },
  "system_ssl": {
    "version": "1010103f"
  },
  "urllib3": {
    "version": "1.25.3"
  },
  "using_pyopenssl": true
}
```

## Additional data:
wget and curl handle 103 status code properly by simply ignoring it
```
curl -v https://www.samba.org/ftp/talloc/
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
> GET /ftp/talloc/ HTTP/2
> Host: www.samba.org
> User-Agent: curl/7.66.0-DEV
> Accept: */*
> 
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
< HTTP/2 103 
< link: <screen.css>; rel=preload; as=style
< HTTP/2 200 
< date: Fri, 06 Sep 2019 12:39:43 GMT
< server: Apache
< referrer-policy: strict-origin
< strict-transport-security: max-age=15552000; includeSubDomains;preload
< vary: Accept-Encoding
< public-key-pins: max-age=999999;pin-sha256="YLh1dUR9y6Kja30RrAn7JKnbQG/uEtLMkBgFF2Fuihg=";pin-sha256="Vjs8r4z+80wjNcr1YKepWQboSIRi63WsWXhIMN+eWys=";pin-sha256="WGJkyYjx1QMdMe0UqlyOKXtydPDVrk7sl2fV+nNm1r4=";pin-sha256="sRHdihwgkaib1P1gxX8HFszlD+7/gTfNvuAybgLPNis=";includeSubDomains;
< content-type: text/html;charset=UTF-8
< 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<wall of expected html here/>
```



Hi @asavah, I can't seem to reproduce your issue with your example. I'm able to get a 200 correctly from that address. Tested in both 2.7 and 3.6.

```
200
12612
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
 <head>
  <title>Index of /ftp/talloc</title>
 </head>
 <body>
<h1>Index of /ftp/talloc</h1>
  <table>
   <tr><th valign="top"><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr>
   <tr><th colspan="5"><hr></th></tr>
<tr><td valign="top"><img src="/icons/back.gif" alt="[PARENTDIR]"></td><td><a href="/ftp/">Parent Directory</a></td><td>&nbsp;</td><td align="right">  - </td><td>&nbsp;</td></tr>
<tr><td valign="top"><img src="/icons/compressed.gif" alt="[   ]"></td><td><a href="talloc-1.3.0.tar.gz">talloc-1.3.0.tar.gz</a></td><td align="right">2009-05-05 13:47  </td><td align="right">225K</td><td>&nbsp;</td></tr>
...
```



Yes, but it's because that site config changed and no longer sends 103.
The issue itself still exists.

Hi @asavah, this is correct. Requests does not handle 100 responses currently because the underlying Python libraries are unable to handle them. This is a known issue but until Python has support or we replace the library underpinning urllib3, we won't be able to provide support for this.