At first, I thought http stream is actually implemented http chunk.
So I did a test to learn.
Here is a django view
def test_stream(request):
return StreamingHttpResponse(func)
func return iterable Here is the output using curl to access the view
curl -vv -raw http://172.25.44.238:8004/api/v1/admin/restart_all_agent?cluster_id='dd5aef9cbe7311e99585f000ac192cee' -i
Warning: Invalid character is found in given range. A specified range MUST
Warning: have only digits in 'start'-'stop'. The server's response to this
Warning: request is uncertain.
* About to connect() to 172.25.44.238 port 8004 (#0)
* Trying 172.25.44.238...
* Connected to 172.25.44.238 (172.25.44.238) port 8004 (#0)
> GET /api/v1/admin/restart_all_agent?cluster_id=dd5aef9cbe7311e99585f000ac192cee HTTP/1.1
> Range: bytes=aw
> User-Agent: curl/7.29.0
> Host: 172.25.44.238:8004
> Accept: */*
>
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
< Content-Type: text/html; charset=utf-8
Content-Type: text/html; charset=utf-8
< X-Frame-Options: SAMEORIGIN
X-Frame-Options: SAMEORIGIN
* no chunk, no close, no size. Assume close to signal end
<
some http response body.
* Closing connection 0
From the output you can see there is no chunked header. It seems Http stream has nothing to do with chunk.
So here is the question
- Is http stream implemented by http chunk?
- How to return a chunked response in django?