W3C home > Mailing lists > Public > public-script-coord@w3.org > April to June 2014

Re: Fetch API

From: Jonas Sicking <jonas@sicking.cc>
Date: Tue, 3 Jun 2014 12:00:16 -0700
Message-ID: <CA+c2ei8Fu=4Swry4-Z4WPnt5PN7+B6NzW4TceJp7vpmv=LHyfg@mail.gmail.com>
To: Jake Archibald <jaffathecake@gmail.com>
Cc: Anne van Kesteren <annevk@annevk.nl>, Domenic Denicola <domenic@domenicdenicola.com>, public-script-coord <public-script-coord@w3.org>, Joshua Bell <jsbell@chromium.org>, Jungkee Song <jungkee.song@samsung.com>, Yehuda Katz <wycats@gmail.com>, Alex Russell <slightlyoff@google.com>, Tobie Langel <tobie.langel@gmail.com>, WebApps WG <public-webapps@w3.org>
On Tue, Jun 3, 2014 at 9:38 AM, Jake Archibald <jaffathecake@gmail.com> wrote:
> On 3 June 2014 16:50, Anne van Kesteren <annevk@annevk.nl> wrote:
>>
>> On Sun, Jun 1, 2014 at 8:06 AM, Domenic Denicola
>> <domenic@domenicdenicola.com> wrote:
>>
>> > - I like HeaderMap a lot, but for construction purposes, I wonder if a
>> > shorthand for the usual case could be provided. E.g. it would be nice to be
>> > able to do
>> >
>> > fetch("http://example.com", {
>> >   headers: {
>> >     "X-Foo": "Bar"
>> >   }
>> > });
>> >
>> > instead of, assuming a constructor is added,
>> >
>> > fetch("http://example.com", {
>> >   headers: new HeaderMap([
>> >     ["X-Foo", "Bar"]
>> >   ])
>> > });
>>
>> Yeah, it's not clear to me what is best here. An object whose keys are
>> ByteString and values are either ByteString or a sequence of
>> ByteString? I agree that we want this.
>
> I vote ByteString: ByteString. If you want something more complicated,
> provide a HeaderMap or mutate after construction.

One thing we should keep in mind is if we actually need to support
100% of all the crazyness that servers do. And especially if we need
to support it in a particularly convenient way.

Something like

headers: {
  "X-Foo": "Bar"
}

Does actually have a defined order between the name-value pairs, even
though it's not terribly explicit. And we could even support

headers: {
  "X-Foo": ["Bar", "Bar2"]
}

For supporting sending multiple "X-Foo" headers.

This wouldn't support interleaving headers such that we send two
"X-Foo" headers with a "X-Bar" header in between, but are there
actually use cases for that?

I feel fairly sure that simply doing:

headers: {
  "X-Foo": ["Bar", "Bar2"]
}

Will cover well over 99% of everything that people need to do. And
hopefully the remaining part of a percent could update their servers
to actually support HTTP semantics properly.

/ Jonas
Received on Tuesday, 3 June 2014 19:01:14 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 17:14:21 UTC