improve HTTP/1.1 byterange handling #989
Labels
No Label
0.2.0
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.8.0
0.9.0
1.0.0
1.1.0
1.10.0
1.10.1
1.10.2
1.10a2
1.11.0
1.12.0
1.12.1
1.13.0
1.14.0
1.15.0
1.15.1
1.2.0
1.3.0
1.4.1
1.5.0
1.6.0
1.6.1
1.7.0
1.7.1
1.7β
1.8.0
1.8.1
1.8.2
1.8.3
1.8β
1.9.0
1.9.0-s3branch
1.9.0a1
1.9.0a2
1.9.0b1
1.9.1
1.9.2
1.9.2a1
LeastAuthority.com automation
blocker
cannot reproduce
cloud-branch
code
code-dirnodes
code-encoding
code-frontend
code-frontend-cli
code-frontend-ftp-sftp
code-frontend-magic-folder
code-frontend-web
code-mutable
code-network
code-nodeadmin
code-peerselection
code-storage
contrib
critical
defect
dev-infrastructure
documentation
duplicate
enhancement
fixed
invalid
major
minor
n/a
normal
operational
packaging
somebody else's problem
supercritical
task
trivial
unknown
was already fixed
website
wontfix
worksforme
No Milestone
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Reference: tahoe-lafs/trac-2024-07-25#989
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The attached patch by Jeremy Fitzhardinge improves byterange handling as follows.
Fix parsing of a Range: header to support:
Multiple ranges are parsed, but only the first range is returned. Returning multiple ranges requires using the multipart/byterange content type.
Attachment improve-http_1_1-byterange-handling.dpatch.txt (10362 bytes) added
Improve HTTP/1.1 byterange handling
Is it disallowed by the standard to go ahead and return results in a case like this? For example, if the user requests bytes 99 through 1000 and the file is only 200 bytes long, can we return bytes 99 through 200?
Replying to zooko:
RFC 2616 section 10.4.17:
In other words, yes, we should return bytes 99 through 200 in your example. We should only respond with a 416 error if all byte requested ranges start after the end of the resource.
Replying to [davidsarah]comment:2:
It looks to me as though the current patch gets this right.
The default set of whitespace characters stripped by
.strip()
is undocumented, so use an explicit argument at web/filenode.py line 145, i.e..strip(' \t')
assuming header lines have already been unfolded.Otherwise looks good. Jeremy: Do you intend this to be applied for 1.7, or are you going to implement multipart/byterange?
Assuming that this should be applied for 1.7.
Applied in changeset:63b28d707b12202f and changeset:a67e745b26130e78. However, I forgot to address comment:76147. Jeremy, is it correct to only strip space and tab?
Okay, I'm still waiting for jsgf to answer the question, but the patch is in and the release is going out, so marking this as fixed.