The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

HTTP::Promise::Headers::ContentRange - Content-Range Header Field

SYNOPSIS

    use HTTP::Promise::Headers::ContentRange;
    my $range = HTTP::Promise::Headers::ContentRange->new || 
        die( HTTP::Promise::Headers::ContentRange->error, "\n" );
    $range->unit( 'bytes' ):
    $range->range_start(500);
    $range->range_end(1000);
    $range->size(2048);
    say $range->as_string;
    # or
    say "$range";

    # 416 Range Not Satisfiable
    # <https://tools.ietf.org/html/rfc7233#section-4.4>
    $range->start_end( undef );
    $range->size(2048);
    say "$range";
    # bytes */2048

VERSION

    v0.1.0

DESCRIPTION

The following description is taken from Mozilla documentation.

    Content-Range: bytes 200-1000/67589
    # When the complete range is unknown:
    Content-Range: bytes 42-1233/*

    # The first 500 bytes:
    Content-Range: bytes 0-499/1234
    # The second 500 bytes:
    Content-Range: bytes 500-999/1234
    # All except for the first 500 bytes:
    Content-Range: bytes 500-1233/1234
    # The last 500 bytes:
    Content-Range: bytes 734-1233/1234
    # Unsatisfiable range value
    Content-Range: bytes */1234

METHODS

as_string

Returns a string representation of the object.

If both range-start and range-end properties are undef, they will be replaced by a * (wildcard)

If size property is undef it will be replaced by a * (wildcard)

range_end

An integer in the given unit indicating the end position (zero-indexed & inclusive) of the requested range.

range_start

An integer in the given unit indicating the start position (zero-indexed & inclusive) of the request range.

size

The total length of the document (or '*' if unknown).

start_end

This is a convenience method to set both the range-start and range-end property.

unit

The unit in which ranges are specified. This is usually bytes.

AUTHOR

Jacques Deguest <jack@deguest.jp>

SEE ALSO

Accept-Range, If-Range, Range

See rfc7233, section 4.2 and Mozilla documentation

HTTP::Promise, HTTP::Promise::Request, HTTP::Promise::Response, HTTP::Promise::Message, HTTP::Promise::Entity, HTTP::Promise::Headers, HTTP::Promise::Body, HTTP::Promise::Body::Form, HTTP::Promise::Body::Form::Data, HTTP::Promise::Body::Form::Field, HTTP::Promise::Status, HTTP::Promise::MIME, HTTP::Promise::Parser, HTTP::Promise::IO, HTTP::Promise::Stream, HTTP::Promise::Exception

COPYRIGHT & LICENSE

Copyright(c) 2022 DEGUEST Pte. Ltd.

All rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.