just a step towards #25655 and some related refactoring
`http.ServeFile/ServeContent` handles `If-xxx`, `Content-Length`, `Range` and `Etag` correctly After this PR, storage files (eg: avatar) could be responded with correct Content-Length.
Replace #20480 Replace #18448 Close #16414