More Related Content
PDF
PDF
PDF
PDF
PPT
PPTX
PPT
PDF
What's hot
PDF
PDF
PDF
MLflowによる機械学習モデルのライフサイクルの管理 PPTX
PDF
PDF
PDF
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック PDF
PDF
最近のディープラーニングのトレンド紹介_20200925 PDF
[DLHacks LT] PytorchのDataLoader -torchtextのソースコードを読んでみた- PPTX
PDF
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜 PDF
PDF
DQNからRainbowまで 〜深層強化学習の最新動向〜 PDF
PDF
中3女子が狂える本当に気持ちのいい constexpr PDF
PDF
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」 PDF
【メタサーベイ】基盤モデル / Foundation Models PDF
オブジェクト指向プログラミングのためのモデリング入門 Viewers also liked
PDF
PDF
Notafilia moedas comunitárias de portugal PPT
PPT
PPTX
XLS
Hrd recruitment track report no3_book1(1) PPS
PPTX
Harsh Climate for Human Rights Defenders in China:2014 in Photos 中国大陆人权捍卫者面临严... PDF
what it means for PKP to offer Article Level Metrics DOCX
08级第七批警务援助队绵竹教学实践活动自我鉴定报告 PDF
Redmine 260 300_new_feature PPTX
CHRD’s image gallery of the year in human rights defense in China PPTX
PPTX
Final slideshow hrd 2013 report PDF
PDF
PPTX
China, Law and the Foreigner: Mutual Engagements on a Global Stage PPT
Recruitment -hrd 2 report (1) PDF
PPTX
Enterprise grade firewall and ssl termination to ac by will stevens Similar to URLで遊ぼう
PDF
PDF
PPT
OSC2008 Tokyo/Spring REST勉強夜会 PPT
KEY
PPT
CakePHPで開発する時に統一しておきたいコーディング内容(080316) PDF
PDF
デザイナー向け 初めてのPhp ~サイト制作に役立つtips~ PDF
RESTful #とは RailsスタイルからRESTを学ぼう KEY
Mojoliciousをウェブ制作現場で使ってみてる PDF
お前は PHP の歴史的な理由の数を覚えているのか PDF
PDF
PDF
PDF
PDF
Web programming introduction PDF
PDF
Beginning Java EE 6 勉強会(7) #bje_study PDF
PDF
More from Hiraku Nakano
PDF
PDF
composerの遅さをまじめに考える #phpstudy PDF
PDF
Scrutinizer CIでPHPも静的解析 #phpstudy PDF
PDF
PDF
PSR-3 Logger Interfaceの紹介 PPTX
PPTX
URLで遊ぼう
- 1.
- 2.
@Hiraku (中野 拓)
◦ PHP歴5年ぐらい
◦ Zend Framework, Yaf
◦ http://blog.tojiru.net/
◦ https://github.com/hirak
- 3.
- 4.
http://example.com/index.php?action=hoge
とかだとダサい
短くてCoolなURLにしたい
http://twitter.com/Hiraku
しかし短すぎると
将来の拡張性が…
SEO対策がどうとか
- 5.
- 6.
他にもURLに関するRFC
があるけど、これが最新
RFC3986
http://www.ietf.org/rfc/rfc3986.txt
http://www.studyinghttp.net/rfc_ja/rfc3986
(橋本英彦氏による日本語訳)
- 7.
- 8.
- 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 23 4 5 6 7 8 9
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
. _ ~ -
! $ & ' ( ) * + , ; =
@ / :
- 12.
- 13.
- 14.
0 1 23 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 23 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は()が必要になる
[]が書けないので添え字アクセスも無理
"も書けない
できないところも多い
- 19.
- 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の方が拡張性高い
◦ パスの途中にパラメータを仕込む構文が可能
→覚えておくと何かと便利
- 24.
- 25.
URLの記述力はすごい
"/" 以外のsub-delimsを使えば世界が広がる
みんなもっとURLで遊べばいい
- 26.
別に「URL設計はこうあるべき」とか論じる気は
ない
◦ そんなのサービスによって変わるし
その前に選択肢を知るべきだ
自分で制限して自分で苦しむなんて、バカみたい
じゃないか