More Related Content
PDF
ソースコードの品質向上のための効果的で効率的なコードレビュー PDF
【13-B-6】Hondaの生産技術屋さんがソフトウェア開発でアジャイルを初導入し組織変革に挑戦 PDF
今なら間に合う分散型IDとEntra Verified ID PDF
PDF
PDF
PPTX
Amazon SageMaker ML Governance 3つの機能紹介 PDF
ストリーム処理を支えるキューイングシステムの選び方 What's hot
PDF
PDF
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか PDF
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜 PPTX
SPAセキュリティ入門~PHP Conference Japan 2021 PDF
PDF
PDF
PDF
Spring Data RESTを利用したAPIの設計と、作り直しまでの道のり PDF
PDF
レイヤードアーキテクチャを意識したPHPアプリケーションの構築 PDF
PDF
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014 PDF
PPTX
PDF
PDF
ヤフーでは開発迅速性と品質のバランスをどう取ってるか PDF
PDF
Dockerイメージの理解とコンテナのライフサイクル 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設計はこうあるべき」とか論じる気は
ない
◦ そんなのサービスによって変わるし
その前に選択肢を知るべきだ
自分で制限して自分で苦しむなんて、バカみたい
じゃないか