web な記事たち

Abstract

LoveVector の、タグ web に関係のある記事群です。

{アカウント毎,ログイン後}の URL 設計

URI
http://okowa.org/vector/2007/02/11/url-design
Created
2007-02-11T20:30:08+09:00
Tags
Writebacks
「{アカウント毎,ログイン後}の URL 設計」への Comments: 11 / 「{アカウント毎,ログイン後}の URL 設計」への Trackbacks: 0

以下のような仕様のウェブアプリケーションの URL 付けに悩む。

  1. 各ユーザがアカウントを持ち,ログインできる
  2. 各ユーザが何らかのデータを,ログインしている他ユーザや,あるいは非ログインユーザに公開できる
  3. ログインしたときにだけアクセス可能な画面がある

以下は,この 2 と 3 の URL をどうしましょか,というお悩み相談。

アカウントごとのURL

2 を実現するために,よく http://example.jp/home/klm/ (klm はユーザ名)みたいな URL が用いられる。この URL をどうしようか,というのが,ひとつめの悩みどころ。

a. 直下にユーザ名
del.icio.us や,はてなのそれぞれのサービスなどがこれ。間に何も挟まず,http://del.icio.us/klm のように直下にユーザ名をつける。この方式の欠点は,popular,tag,logout などのシステム側が利用する名前をユーザ名に使えないこと。See also: id:task 問題(存在するユーザ名に衝突する URL マッピングが後に追加されてしまった話)
b. home とかを挟む
Flickr(/photos/),Last.fm(/user/),Remember the Milk(/home/),Livedoor Reader(/public/)など。ほかにもいろいろあるけど割愛。
c. UserDir 方式
/~klm/ みたいなの。RFC1738 に基づけばこの "~" を "%7E" とエスケープせねばならないといった事情があったため,敬遠されそう。ざっと調べたり思い出したりしても,やはりこれを採用しているシステムはないし。RFC2396 的には(今や)問題ない(はず)。

無難なのは b なんだけれども,何を挟むのかとても悩む。どれに市民権があるのかもよくわからない。うーむ。個人的には c を採用したいんだけれども,現実的には敢えてそうしなくても,という感じなのかしら。ブラウザ側はもう概ね問題ないんだろうけども,URL をデータとして扱う他のアプリがそれをうまく扱えなければあまり美味しくないしなあ。適当にぐぐった限りでも,最近のウェブアプリでも同定問題がでてるようだし。

ログイン後のURL

さらにもうひとつ,3 の URL をどうするか,というのがありまして。 これには大きく分けて二つのやり方がありそうな感じで:

a. 2 のアカウント別ページでやってしまう
上記のサイトの多くがこれ。自分のアカウントのページに,ログインしないとできない機能へのアクセスが追加される。これの問題点は,特殊機能がない場合の見栄え(非ログイン,あるいは,他人が自分のアカウントのページを見た場合)を再現するためのビューは別途設けなければならないこと。e.g. mixiの「プロフィール確認」。
b. 別途 URL を設ける
Livedoor Reader(/reader/)など,多くのフィードリーダがこれ(だと思う。調べてないけど)。Referrer 漏洩を考えなくてよい (/reader/ が漏れてもどのユーザかはわからない,という意味で)
b'. トップページ(/)
bの特殊な形。あった気がするけどぱっと出てこない... Yahoo! Days がそうらしい(とぴあさんに教えてもらいましたどうもありがとう)。

多くのアカウント間をブラウズするような,コミュニケーション要素のあるサービスでは a 方式がよさそう(cf. 他人のアカウントから自分アカウントへのリンクをおく場合,どこにリンクするのが妥当?)。 一方,基本的にひとりで利用するような,フィードリーダーや ToDo 管理のようなサービスでは b 方式かな? b 方式は 2 の問題と同様に,どういう名前にするのかとても悩む。b' にすると名前を考えなければならないという呪縛からは逃れられるが,例えばはてブトップページのようなものをトップに置きたくなったりもしますよねぇ。

RTM は後者のタイプのアプリケーションであるけども a 方式をとっていますね。よくみると,公開タスクのビューとログイン後のビューが合わせてあり,同一の URL としてマップしても違和感が無いように作ってありますね。「基本的にはひとりで利用するけども,多少は他ユーザとのコミュニケーションも行う」ようなアプリの場合は,a 方式でがんばって違和感の無いようUIをつくる方策がよいのかもしれません。今つくってるアプリは,これでいくかなー。

なんか,ご意見等ありましたら是非。

Topic Path

  1. okowa.org
  2. LoveVector
  3. web
Last-Modified
2010-07-31T06:57:56+09:00
Feeds
Recent Updates (RSS 1.0)
Powered by
XML::LibXSLT / format.xsl / Movable Type 3.31-ja
LoveVector : klm <klm at okowa dot org>