5e06332b88
Add ruby-http-accept version 2.1.1 package. # HTTP::Accept Provides a robust set of parsers for dealing with HTTP Accept, Accept-Language, Accept-Encoding, Accept-Charset headers. ## Motivation I've been developing some tools for building RESTful endpoints and part of that involved versioning. After reviewing the options, I settled on using the Accept: application/json;version=1 method as outlined here. The version=1 part of the media-type is a parameter as defined by RFC7231 Section 3.1.1.1. After reviewing several existing different options for parsing the Accept: header, I noticed a disturbing trend: header.split(','). Because parameters may contain quoted strings which contain commas, this is clearly not an appropriate way to parse the header. I am concerned about correctness, security and performance. As such, I implemented this gem to provide a simple high level interface for both parsing and correctly interpreting these headers.
20 lines
914 B
Text
20 lines
914 B
Text
# HTTP::Accept
|
|
|
|
Provides a robust set of parsers for dealing with HTTP Accept,
|
|
Accept-Language, Accept-Encoding, Accept-Charset headers.
|
|
|
|
## Motivation
|
|
|
|
I've been developing some tools for building RESTful endpoints and part of
|
|
that involved versioning. After reviewing the options, I settled on using
|
|
the Accept: application/json;version=1 method as outlined here.
|
|
|
|
The version=1 part of the media-type is a parameter as defined by RFC7231
|
|
Section 3.1.1.1. After reviewing several existing different options for
|
|
parsing the Accept: header, I noticed a disturbing trend: header.split(',').
|
|
Because parameters may contain quoted strings which contain commas, this is
|
|
clearly not an appropriate way to parse the header.
|
|
|
|
I am concerned about correctness, security and performance. As such, I
|
|
implemented this gem to provide a simple high level interface for both
|
|
parsing and correctly interpreting these headers.
|