More Related Content
What's hot (20)
PDF
谜の言语贵辞谤迟丑が谜なので実装したt-sin?
PDF
こんなに使える!今どきの础笔滨ドキュメンテーションツールdcubeio?
PDF
尝颈苍耻虫にて复数のコマンドを并列実行(同时実行数の制限付き)Hiro H.?
PDF
颁颈谤肠濒别颁滨の颈苍蹿谤补蝉迟谤耻肠迟耻谤别を支える罢别谤谤补蹿辞谤尘の颁滨/颁顿パイプラインの改善Ito Takayuki?
Viewers also liked (20)
PPT
依纳五穗种子-公民记者分享-中部聚会 peopo?
PPT
别濒濒别苍濒别别-公民记者分享-中部聚会 peopo?
PPTX
苍补迟耻谤别23-公民记者分享-中部聚会 peopo?
PPTX
Harsh Climate for Human Rights Defenders in China:2014 in Photos 中国大陆人权捍卫者面临严...CHRDnet?
PPTX
CHRD’s image gallery of the year in human rights defense in ChinaCHRDnet?
PPTX
Final slideshow hrd 2013 reportCHRDnet?
PPTX
China, Law and the Foreigner: Mutual Engagements on a Global StageLarry Catá Backer?
PPTX
Enterprise grade firewall and ssl termination to ac by will stevensbuildacloud?
Similar to 鲍搁尝で游ぼう (20)
PDF
Apacheの展望とmod_perlの超絶技巧 #yapcasia鉄次 尾形?
KEY
惭辞箩辞濒颈肠颈辞耻蝉をウェブ制作现场で使ってみてるjamadam?
PDF
MT meets PHP - PHP conference Kansai 2013純生 野田?
PDF
GNU awk (gawk) を用いた Apache ログ解析方法博文 斉藤?
More from Hiraku Nakano (9)
鲍搁尝で游ぼう
- 2. ? @Hiraku (中野 拓)
? PHP歴5年ぐらい
? Zend Framework, Yaf
? http://blog.tojiru.net/
? https://github.com/hirak
- 4. ? http://example.com/index.php?action=hoge
とかだとダサい
? 短くてCoolなURLにしたい
http://twitter.com/Hiraku
? しかし短すぎると
将来の拡張性が…
? SEO対策がどうとか
- 6. 他にも鲍搁尝に関する搁贵颁
があるけど、これが最新
RFC3986
http://www.ietf.org/rfc/rfc3986.txt
http://www.studyinghttp.net/rfc_ja/rfc3986
(橋本英彦氏による日本語訳)
- 9. path = path-abempty ; "/" で始まるか、空
/ path-absolute ; "/" で始まるが、"//" では始まらない
/ path-noscheme ; コロンの無い segment で始まる
/ path-rootless ; segment で始まる
/ path-empty ; 文字が無い
path-abempty = *( "/" segment )
path-absolute = "/" [ segment-nz *( "/" segment ) ]
path-noscheme = segment-nz-nc *( "/" segment )
path-rootless = segment-nz *( "/" segment )
path-empty = 0<pchar>
segment = *pchar
segment-nz = 1*pchar
segment-nz-nc = 1*( unreserved / pct-encoded / sub-delims / "@" )
; non-zero-length segment without any colon ":"
pchar = unreserved / pct-encoded / sub-delims / ":" / "@
- 10. ? 使ってよい文字
? 非予約文字(unreserved-character)
[0-9A-Za-z._~-]
? %エンコードされた文字
? 予約文字のうちのsub-delims
[!$&'()*+,;=]
? 予約文字のうちのgen-delimsの一部
[@/:]
- 11. 0 1 2 3 4 5 6 7 8 9
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
. _ ~ -
! $ & ' ( ) * + , ; =
@ / :
- 14. 0 1 2 3 4 5 6 7 8 9
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
. _ ~ -
! $ & ' ( ) * + , ; =
@ / :
四則演算
できるよね
- 15. ? http://calc.tojiru.net/1+2
? http://calc.tojiru.net/2-1
? http://calc.tojiru.net/(1+2)*10/2
? URLとして妥当
? リクエストすると計算結果がtext/plainで返って
くる
- 16. 0 1 2 3 4 5 6 7 8 9
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
. _ ~ -
! $ & ' ( ) * + , ; =
@ / :
PHP!?
- 17. ? /$a=1;$b=2;echo($a+$b);
? /$a=array(1,2,3);echo(implode(':',$a));
<?php
$code = ltrim($_SERVER['REQUEST_URI'], '/');
eval($code);
$ php -S localhost:8080 index.php
? ローカルで実験しましょうね
- 18. ? スペースが書けないのでclassやfunctionが無理
? echoは()が必要になる
? []が書けないので添え字アクセスも無理
? "も書けない
? できないところも多い
- 20. ? 縛りプレイ
? 使っている文字が少なすぎる
? /と[0-9A-Za-z._-]だけでURL作るとか厳しい
? /は「階層」の意味合いを感じてしまう
- 21. ? /map/lat/50/long/20/scale/32000
? こういうURL設計を強要するフレームワーク、
よくあるよね
? lat(経度)とlong(緯度)は階層じゃない
? lat/50とlong/20を入れ替えても動作する方がいい
? /map?lat=50&long=20&scale=32000
? 入れ替え可能だし階層っぽさは消えた
- 22. ? Tim Berners-Leeによる提案
http://www.w3.org/DesignIssues/MatrixURIs.html
? /map;lat=50;long=20;scale=32000
? セミコロンによるqueryと同等の記述
? queryを使っていないところに意味がある
- 23. ? /user;id=123/friends
? 後ろに階層を続けることができる
? クエリはURL中一度しか使えないので、
Matrix URIの方が拡張性高い
? パスの途中にパラメータを仕込む構文が可能
→覚えておくと何かと便利
- 25. ? URLの記述力はすごい
? "/" 以外のsub-delimsを使えば世界が広がる
? みんなもっとURLで遊べばいい
- 26. ? 別に「URL設計はこうあるべき」とか論じる気は
ない
? そんなのサービスによって変わるし
? その前に選択肢を知るべきだ
? 自分で制限して自分で苦しむなんて、バカみたい
じゃないか