- From: Benjamin Goering <ben@bengo.co>
- Date: Fri, 24 Mar 2023 10:23:39 -0700
- To: Ryan Barrett <public@ryanb.org>
- Cc: Bob Wyman <bob@wyman.us>, Melvin Carvalho <melvincarvalho@gmail.com>, aaronngray@gmail.com, public-swicg@w3.org
- Message-ID: <CAN+OhBN+UJvXtAPeqLJZfE5z-g1MXQUTyUuJJfztOb6roqhT+w@mail.gmail.com>
http content negotiation is normatively required by the activitypub spec
(3.2).
I'll also point out that some URIs from the TRs already support it.
```
> bengo@bengo ~ ⚡ curl -H "Accept: application/json"
> https://www.w3.org/ns/activitystreams | head -n 10
> % Total % Received % Xferd Average Speed Time Time Time
> Current
> Dload Upload Total Spent Left
> Speed
> 100 7985 100 7985 0 0 39142 0 --:--:-- --:--:-- --:--:--
> 40125
> {
> "@context": {
> "@vocab": "_:",
> "xsd": "http://www.w3.org/2001/XMLSchema#",
> "as": "https://www.w3.org/ns/activitystreams#",
> "ldp": "http://www.w3.org/ns/ldp#",
> "vcard": "http://www.w3.org/2006/vcard/ns#",
> "id": "@id",
> "type": "@type",
> "Accept": "as:Accept",
> bengo@bengo ~ ⚡ curl -H "Accept: text/html"
> https://www.w3.org/ns/activitystreams | head -n 10
> % Total % Received % Xferd Average Speed Time Time Time
> Current
> Dload Upload Total Spent Left
> Speed
> 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:--
> 0<!DOCTYPE html><html dir="ltr" typeof="bibo:Document " prefix="bibo:
> http://purl.org/ontology/bibo/ w3p: http://www.w3.org/2001/02pd/rec54#
> as: https://www.w3.org/ns/activitystreams#" lang="en"><head><meta
> charset="utf-8"><meta name="generator" content="ReSpec 20.7.1"><meta
> name="viewport" content="width=device-width, initial-scale=1,
> shrink-to-fit=no"><meta property="dc:language" content="en" lang="">
> <title>ActivityStreams 2.0 Terms</title>
>
>
>
> <style>/*****************************************************************
> * ReSpec 3 CSS
> * Robin Berjon - http://berjon.com/
> *****************************************************************/
>
> 100 33068 0 33068 0 0 148k 0 --:--:-- --:--:-- --:--:--
> 153k
> curl: (23) Failure writing output to destination
>
```
On Fri, Mar 24, 2023 at 10:16 AM Ryan Barrett <public@ryanb.org> wrote:
> Sure! And feel free to redirect to a different venue if we're getting off
> topic. Off the top of my head:
>
> 1. Most web developers are not aware that conneg exists. This is
> usually fine, since it's uncommon, but can be an unpleasant surprise when
> they first hit it and don't understand it.
> 2. The `Accept` header is notoriously complicated to parse, generate,
> and fully comply with. Imo much of that complexity is unneeded in practice.
> 3. It often breaks caching when it's first introduced. Internal and
> external caches generally ignore Content-Type and Accept (etc) by default,
> so when conneg is first introduced, clients often get the wrong response
> type. Developers learn the hard way that they need to add Accept to Vary
> and to their framework's cache.
> 4. URLs leak across contexts. They may start out within a single
> service or API, but they gradually proliferate into user-visible links,
> object identifiers in other systems, add-on services, third party tools,
> etc. These generally don't know the original conneg requirements, which
> causes unpleasant surprises.
>
> I think most of this boils down to: modality generally considered harmful.
> When something always behaves the same way, it's reliable and easy to use.
> When it behaves differently based on something far away in the environment
> that you may not know exists, it's unreliable and surprising. Add in a very
> large ecosystem of independent tools that all need to interoperate, often
> in fine-grained ways, and you have a recipe for failure.
>
> On Fri, Mar 24, 2023 at 9:42 AM Bob Wyman <bob@wyman.us> wrote:
>
>> Melvin, Ryan,
>> Could you provide at least a short summary of why "content negotiation"
>> has not lived up to expectations? It is good to know that it is
>> non-optimal. It would be better to know why.
>>
>> bob wyman
>>
>>
>
> --
> https://snarfed.org/
>
Received on Friday, 24 March 2023 17:24:04 UTC