Re: [webfinger] feedback for multiple "rel"

"Paul E. Jones" <paulej@packetizer.com> Sun, 23 December 2012 02:13 UTC

Return-Path: <paulej@packetizer.com>
X-Original-To: webfinger@ietfa.amsl.com
Delivered-To: webfinger@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9EAB421F8555 for <webfinger@ietfa.amsl.com>; Sat, 22 Dec 2012 18:13:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.108
X-Spam-Level:
X-Spam-Status: No, score=-1.108 tagged_above=-999 required=5 tests=[AWL=-1.393, BAYES_00=-2.599, HTML_MESSAGE=0.001, J_CHICKENPOX_33=0.6, J_CHICKENPOX_36=0.6, J_CHICKENPOX_44=0.6, URIBL_RHS_DOB=1.083]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id nDNVaPi46j6L for <webfinger@ietfa.amsl.com>; Sat, 22 Dec 2012 18:13:56 -0800 (PST)
Received: from dublin.packetizer.com (dublin.packetizer.com [75.101.130.125]) by ietfa.amsl.com (Postfix) with ESMTP id 1CE2121F84F5 for <webfinger@ietf.org>; Sat, 22 Dec 2012 18:13:56 -0800 (PST)
Received: from sydney (rrcs-98-101-148-48.midsouth.biz.rr.com [98.101.148.48]) (authenticated bits=0) by dublin.packetizer.com (8.14.5/8.14.5) with ESMTP id qBN2DrZU027012 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Sat, 22 Dec 2012 21:13:54 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=packetizer.com; s=dublin; t=1356228834; bh=cszupNXxCxrBHJCO5vw3CY2wncxhcxgugR2TzS0N/vs=; h=From:To:Cc:References:In-Reply-To:Subject:Date:Message-ID: MIME-Version:Content-Type; b=Z+XEg11/UQHb1tUfmwVrEPAYSG4QcSoyvVHN9mSvijb7mpJnZIiKl9PuSqu6T8ise EJ6wg8zGhUvo8sYtHGWvrN1FcNxdo4qmpbWH5yiCyvfYiWX7q9H8Z1Fm+1VnGXXt09 2i0gZJF1TfI2d5Ql0UYqH0ZRBg7DFN0otbImRSAc=
From: "Paul E. Jones" <paulej@packetizer.com>
To: 'Dick Hardt' <dick.hardt@gmail.com>
References: <58036BAD-2161-4420-A724-343883F627B7@gmail.com> <CAKaEYhKGP0aMxsStNxTfYy3D=TbrnwtCVNz3yF3Su0TVkBXrOQ@mail.gmail.com> <7E9916BF-8D64-4F61-A40F-3A74533AEFD2@gmail.com> <001101cde0a0$7fda6220$7f8f2660$@packetizer.com> <CABP7RbcswbV=38LVZJobn5m6jJFW5N_a1O+8BkXu-S5+ixyKNA@mail.gmail.com> <004d01cde0ad$175b5d00$46121700$@packetizer.com> <57CE8BD9-286D-460E-92D8-E4E64C3377D0@gmail.com>
In-Reply-To: <57CE8BD9-286D-460E-92D8-E4E64C3377D0@gmail.com>
Date: Sat, 22 Dec 2012 21:13:59 -0500
Message-ID: <006601cde0b3$2bb9ff30$832dfd90$@packetizer.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_0067_01CDE089.42E64120"
X-Mailer: Microsoft Outlook 14.0
Thread-Index: AQHn/3n6mr+8L0+iRGJmLFJlw0GLowJLSGqcAkS0TYMBZO3SKgEqx9VtAUuOMU8BofJMGJeg/AdA
Content-Language: en-us
Cc: webfinger@ietf.org, 'James M Snell' <jasnell@gmail.com>, 'nov matake' <matake@gmail.com>, 'Melvin Carvalho' <melvincarvalho@gmail.com>
Subject: Re: [webfinger] feedback for multiple "rel"
X-BeenThere: webfinger@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Discussion of the Webfinger protocol proposal in the Applications Area <webfinger.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/webfinger>, <mailto:webfinger-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/webfinger>
List-Post: <mailto:webfinger@ietf.org>
List-Help: <mailto:webfinger-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/webfinger>, <mailto:webfinger-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 23 Dec 2012 02:13:59 -0000

Dick, Nov,

 

I've never written a Ruby program before, but I was quite curious as to
whether it was or was not possible to access multiple "rel" parameters.  It
appears that is.  Here's my first Ruby program (and my apologies to the
developers of Ruby):

 

#!/bin/ruby

 

require 'cgi'

 

cgi = CGI.new

 

params = cgi.params

 

# Following appears to show an associative array with values that are arrays

puts params;

 

# Grab the 'rel' array

rels = params['rel'];

 

# Display the array

puts rels;

 

# How many items are in the "rel" array?

count = rels.size

print "Number of rel params: ", count, "\n";

 

# Can I access each one?

for i in 0..(count-1)

   print "Item ", i, ": ", rels[i], "\n"

end

 

Here's what I get:

 

$ ./test "rel=rel1&c=d&rel=rel2&e=f"

{"rel"=>["rel1", "rel2"], "c"=>["d"], "e"=>["f"]}

rel1

rel2

Number of rel params: 2

Item 0: rel1

Item 1: rel2

 

So, it looks like it works to me.  Is the issue only with Rails?  I'm not
going to venture down that path to see what the issue is, but if Ruby can
access the data, can't it provide it to Rails in a form that it likes?

 

Paul

 

From: Dick Hardt [mailto:dick.hardt@gmail.com] 
Sent: Saturday, December 22, 2012 8:40 PM
To: Paul E. Jones
Cc: 'James M Snell'; webfinger@ietf.org; 'nov matake'; 'Melvin Carvalho'
Subject: Re: [webfinger] feedback for multiple "rel"

 

FYI: multiple query string params with the same name are turned into arrays
or parsed into arrays in node.js

 

the following script:

 

var querystring = require('querystring')

console.log( querystring.parse( 'foo=bar&rel=token1&rel=token2' ) )

console.log( querystring.stringify( {'foo':'bar','rel':['token1','token2']}
) )

 

outputs:

 

{ foo: 'bar', rel: [ 'token1', 'token2' ] }

foo=bar&rel=token1&rel=token2

 

Perhaps Ruby devs should just move to the next cool language? :-)

Seriously though, what does the query string parser do in Ruby?

 

-- Dick

 

On Dec 22, 2012, at 5:30 PM, "Paul E. Jones" <paulej@packetizer.com> wrote:





That depends on where they're used.  If I tell you the "rel" value is "
<http://example.com/first> http://example.com/first one", I don't escape
that as I write it.  Or are you saying there is text somewhere that already
makes that, as written, illegal?

 

I'm quite favorable to a space-separated list of rel values in a single rel
parameter, too.  I was concerned before that spaces would present an issue,
but figured we could either we make spaces illegal in rel values (which we
can do since those are fabricated things!) or we double-escape.  My
preference is a single escape and a single rel parameter and spaces are
illegal in the "rel" values themselves.

 

But, the forces that be pushed pretty hard to change from
&rel=token1%20token to &rel=token1&rel=token2.  At the end of the day, it
makes no difference to me since I just need to know which way to deal with
it.

 

So Ruby can really only support only a single parameter with a given name?
It will not collect those into an array or anything?

 

Paul

 

From: James M Snell [mailto:jasnell@gmail.com] 
Sent: Saturday, December 22, 2012 7:51 PM
To: Paul E. Jones
Cc: nov matake; Melvin Carvalho; webfinger@ietf.org
Subject: Re: [webfinger] feedback for multiple "rel"

 

Spaces in rel values are already illegal.. specifically, spaces are
disallowed in registered link relations and non-escaped spaces are
disallowed in absolute IRI's.. A comma delimited list of rel's is better
than multiple individual parameters.. even with the potential need for
double encoding.

 

 

 

On Sat, Dec 22, 2012 at 4:00 PM, Paul E. Jones <
<mailto:paulej@packetizer.com> paulej@packetizer.com> wrote:

If we made it a requirement that "rel" values have no spaces (which I would
argue is a damn good thing for many reasons) then we would not have to
double-encode.

 

Paul

 

From:  <mailto:webfinger-bounces@ietf.org> webfinger-bounces@ietf.org
[mailto: <mailto:webfinger-bounces@ietf.org> webfinger-bounces@ietf.org] On
Behalf Of nov matake
Sent: Saturday, December 22, 2012 11:12 AM
To: Melvin Carvalho


Cc:  <mailto:webfinger@ietf.org> webfinger@ietf.org
Subject: Re: [webfinger] feedback for multiple "rel"

 

BTW, why double encoding lead "problems with things like canonical urls and
search engines"?

Can you provide more details?

 

If 2 rel included, the response would be different than when only 1 rel
given.

So I feel those 2 are not the same, and can be indexed as 2 resources..

 

On 2012/12/23, at 0:44, Melvin Carvalho < <mailto:melvincarvalho@gmail.com>
melvincarvalho@gmail.com> wrote:

 

 

On 22 December 2012 05:48, nov matake < <mailto:matake@gmail.com>
matake@gmail.com> wrote:

Hi,

I have a comment for they way to specify multiple "rel" values.

As a ruby library developer, my main target is rails developers.
Since rails can't handle multiple same query keys, developers will need to
hack query params parser in rails middleware layer.
I can easily imagine it'll be an annoying part to support webfinger in
rails.

Is the multiple "rel" case can be a space-delimitered (or some other
character) strings like multiple redirect_uri in OAuth2?
Or any reason for putting multiple same keys in query parameters?


each time you delimit a list, you have to be able to escape the delimiter,
which can be a pain and also leads to problems with things like canonical
urls and search engines

can you use mod_rewrite?
 


Cheers,

Nov Matake
_______________________________________________
webfinger mailing list
 <mailto:webfinger@ietf.org> webfinger@ietf.org
 <https://www.ietf.org/mailman/listinfo/webfinger>
https://www.ietf.org/mailman/listinfo/webfinger

 

 


_______________________________________________
webfinger mailing list
 <mailto:webfinger@ietf.org> webfinger@ietf.org
 <https://www.ietf.org/mailman/listinfo/webfinger>
https://www.ietf.org/mailman/listinfo/webfinger

 

_______________________________________________
webfinger mailing list
webfinger@ietf.org
https://www.ietf.org/mailman/listinfo/webfinger