More Related Content
PPTX
PDF
PDF
【Unite Tokyo 2019】Understanding C# Struct All Things PDF
PDF
PDF
PlaySQLAlchemy: SQLAlchemy入門 PDF
組み込み関数(intrinsic)によるSIMD入門 PDF
What's hot
PDF
PDF
PDF
Python 3.9からの新定番zoneinfoを使いこなそう PPTX
PDF
PPTX
世界一わかりやすいClean Architecture PDF
Python におけるドメイン駆動設計(戦術面)の勘どころ PDF
PPTX
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive PPTX
PDF
PPTX
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら PPTX
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」 PDF
モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料) PDF
PDF
PDF
PDF
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設計はこうあるべき」とか論じる気は
ない
◦ そんなのサービスによって変わるし
その前に選択肢を知るべきだ
自分で制限して自分で苦しむなんて、バカみたい
じゃないか