Byte serving
Encyclopedia
Byte serving is the process of sending only a portion of an HTTP/1.1 message from a server to a client. Clients which request byte-serving might do so in cases in which a large file has been only partially delivered and a limited portion of the file is needed in a particular range. Byte Serving is therefore a method of bandwidth optimization
Bandwidth optimization
Bandwidth optimization is one of many concerns webmasters deal with when hosting web content. Since most web hosts charge by bandwidth used or have an account limit on bandwidth, a prudent webmaster will squeeze and compress their files as much as possible without affecting the content's integrity....

. In the HTTP/1.0 standard, clients were only able to request an entire document. By allowing byte-serving, clients may choose to request any portion of the resource. One advantage of this capability is when a large media file is being requested, and that media file is properly formatted, the client may be able to request just the portions of the file known to be of interest. This has been reported to work for some PDF files and clients in which a client may request a certain page, rather than the entire file.
Other names for byte serving:
  • Section 14.35.2 of RFC 2616 says the client makes Range Retrieval Requests when it makes a partial content request
  • Clients make range requests
  • Byte Range Serving
  • Page on demand


Byte serving can also be used by multihomed
Multihoming
Multihoming is a technique used to increase the reliability of the Internet connection for an IP network. As an adjective, it is typically used to describe a customer, rather than an Internet service provider network...

 clients to simultaneous download a resource over multiple network interfaces. To achieve this type of application-layer link aggregation
Link aggregation
Link aggregation or trunking or link bundling or Ethernet/network/NIC bonding or NIC teaming are computer networking umbrella terms to describe various methods of combining multiple network connections in parallel to increase throughput beyond what a single connection could sustain, and to provide...

, multiple HTTP sessions are established and logical file segments are collaboratively downloaded from the server and reassembled at the client. This allows full utilization of several end-to-end paths and therefore leads to an increased download speed.

The use of the Chunked Transfer-Encoding
Chunked transfer encoding
Chunked transfer encoding is a data transfer mechanism in version 1.1 of the Hypertext Transfer Protocol in which a web server serves content in a series of chunks. It uses the Transfer-Encoding HTTP response header in place of the Content-Length header, which the protocol would otherwise require...

 is not byte-serving, but is instead a method in which an HTTP/1.1 server sends the entire resource, but in several separate portions (or chunks) of data. It is often used when a server does not know exactly how much data there will be in the total response, allowing the server to start sending data to the client straight away without having to buffer the response and determine the exact length before it begins sending it to the client. This improves latency and reduces memory requirements while preserving the ability to reuse the connection after the response is completed. Byte serving and chunking are compatible and can be used with or without the other.

See also

  • RFC 2616 Section 3.12: Range Units
  • HTTP status codes
  • HTTP headers
  • Content negotiation
    Content negotiation
    Content negotiation is a mechanism defined in the HTTP specification that makes it possible to serve different versions of a document at the same URI, so that user agents can specify which version fit their capabilities the best...

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK