Skip to content

Support range requests for Spring MVC request mapped methods that return a Resource [SPR-15789] #20344

Closed
@spring-projects-issues

Description

@spring-projects-issues

Andy Wilkinson opened SPR-15789 and commented

I've just been pleased to learn that WebFlux automatically supports range requests to a request mapping method that returns a Resource:

@RequestMapping(path = "/")
public Resource test() {
	return new ByteArrayResource(new byte[] {'a', 'b', 'c', 'd', 'e', 'f'});
}
$ curl localhost:8080 -H "Range: bytes=2-4" -i
HTTP/1.1 206 Partial Content
Accept-Ranges: bytes
Content-Type: application/octet-stream
Content-Range: bytes 2-4/6
Content-Length: 3

cde

Unfortunately, if the same controller is implemented using Spring MVC, the full resource content is returned:

$ curl localhost:8080 -H "Range: bytes=2-4" -i
HTTP/1.1 200
Content-Type: application/json
Content-Length: 6
Date: Tue, 18 Jul 2017 13:03:31 GMT

abcdef

It would be beneficial to Boot 2.0's new actuator endpoint infrastructure if Spring MVC offered the same capabilities as WebFlux here.


Affects: 5.0 RC2

Issue Links:

Referenced from: commits 582014e

1 votes, 3 watchers

Metadata

Metadata

Assignees

Labels

in: webIssues in web modules (web, webmvc, webflux, websocket)type: enhancementA general enhancement

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions