Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 4000614
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 20, 20262026-05-20T07:48:12+00:00 2026-05-20T07:48:12+00:00

The core question is about the use of the HTTP Headers, including Range ,

  • 0

The core question is about the use of the HTTP Headers, including Range, If-Range, Accept-Ranges and a user defined range specifier.

Here is a manufactured example to help illustrate my question. Assume I have a Web 2.0 style application that displays some sort of human readable documents. These documents are editorially broken up into pages (similar to articles you see on news websites). For this example, assume:

  • There is a document titled “HTTP Range Question” is broken up into three pages.
  • The shell page (/document/shell/http-range-question) knows the meta information about the document, including the number of pages.
  • The first readable page of the document is loaded during the page onload event via an ajax GET and inserted onto the page.
  • A UI control that looks like [ 1 2 3 All ] is at the bottom of the page, and clicking on a number will display that readable page (also loaded via ajax), and clicking “All” will display the entire document. Assume these URLS for the 1, 2, 3 and All use cases:
    • /document/content/http-range-question?page=1
    • /document/content/http-range-question?page=2
    • /document/content/http-range-question?page=3
    • /document/content/http-range-question

Now to the question. Can I use the HTTP Range headers instead part of the URL (e.g. a querystring parameter)? Maybe something like this on the GET /document/content/http-range-question request:

Range: page=1

It looks like the spec only defines byte ranges as allowable, so even if I made my ajax calls work with my browser and server code, anything in the middle could break the contract (e.g. a caching proxy server).

Range: bytes=0-499

Any opinions or real world examples of custom range specifiers?

Update: I did find a similar question about the Range header (Paging in a Rest Collection) where they mention that Dojo’s JsonRestStore uses a custom Range header value.

Range: items=0-24
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-20T07:48:13+00:00Added an answer on May 20, 2026 at 7:48 am

    Absolutely – you are free to specify any range units you like.

    From RFC 2616:

    3.12 Range Units

    HTTP/1.1 allows a client to request
    that only part (a range of) the
    response entity be included within the
    response. HTTP/1.1 uses range units
    in the Range (section 14.35) and
    Content-Range (section 14.16)
    header fields. An entity can be broken
    down into subranges according to
    various structural units.

      range-unit       = bytes-unit | other-range-unit
      bytes-unit       = "bytes"
      other-range-unit = token
    

    The only range unit defined by
    HTTP/1.1 is “bytes”. HTTP/1.1
    implementations MAY ignore ranges
    specified using other units.

    The key piece is the last paragraph. Really what it’s saying is that when they wrote the spec for HTTP/1.1, they only outlined the “bytes” token. But, as you can see from the ‘other-range-unit’ bit, you are free to come up with your own token specifiers.

    Coming up with your own Range specifiers does mean that you have to have control over the client and server code that uses that specifier. So, if you own the backend piece that exposes the “/document/content/http-range-question” URI, you are good to go; presumably you’re using a modern web framework that lets you inspect the request headers coming in. You could then look at the Range values to perform the backing query correctly.

    Furthermore, if you control the AJAX code that makes requests to the backend, you should be able to set the Range header yourself.

    However, there is a potential downside which you anticipate in your question: the potential to break caching. If you are using a custom Range unit, any caches between your client and the origin servers “MAY ignore ranges specified using [units other than ‘bytes’]”. So for example, if you had a Squid/Varnish cache between the front and backend, there’s no guarantee that the results you’re hoping for will be served from the cache!

    You might also consider an alternative implementation where, rather than using a query string, you make the page a “parameter” of the URI; e.g.: /document/content/http-range-question/page/1. This would likely be a little more work for you server-side, but it’s HTTP/1.1 compliant and caches should treat it properly.

    Hope this helps.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have some questions about multi-threaded programming and multi-core usage. In particular I'm wondering
If I have the core of a class defined in one file as public
I've a question about WCF. I created a WCF service with a MSMQ endpoint.
This question is about the same program I previously asked about . To recap,
Using core jQuery, how do you remove all the options of a select box,
Fedora Core 9 seems to have FCGID instead of FastCGI as a pre-built, YUM-managed
The core .NET languages are integrated into VS2008 - C#, VB.NET, and C++. I'm
I have a quad core machine and would like to write some code to
I have a core file generated on a remote system that I don't have
On Fedora Core 7, I'm writing some code that relies on ARG_MAX . However,

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.