SlideShare a Scribd company logo
1 of 7
Download to read offline
良い URL を設計する
  Kenta YAMAMOTO
良い URL って?                     URLが変わらなくて何が嬉しい?




● クールな URI は変わらない
  ("Cool URIs don't change")
URL が変わりにくくなる3原則 (1)

http://example.jp/cgi-bin/login.pl

● 実装依存しない
   ○   例: "cgi-bin" というバスと、".pl" という拡張子
URL が変わりにくくなる3原則 (2)

http://examle.jp/sample/people/show/123
例: 初期の RoRはこういう動詞が入っていたそうです(2.0 以降改善)



● URI はリソースを表現する名詞にする
 (HTTP メソッドを動詞に)


                  実装依存の URI を生成するFWの場合は?
URL が変わりにくくなる3原則 (3)

http://example.jp/login.php?action=showpage

● メソッド名を含めない
                             クエリストリングは?




※システムをリファクタリングしてもメソッド名が変更にならない
ような実装をする
まとめ
"URI は、ともすると Web アプリケーションフレームワークが隠
蔽し、通常のプログラマはあまり意識をしなくてもよい存在に
なってしまいがちです。しかし, URI は次の点でとても重要です"

● URI はリソースの名前である
● URI は寿命が長い
● URI はブラウザがアドレス欄に表示する
                ―『Webを支える技術』
ちなみに、Internet Explore (IE) は、URLの
                              長さをバージョンを問わずNバイトまでに制

補足: URL と URI                 限されるため、PC向けページではその実装
                              に合わせることになる。




● URL (Uniform Resource Locator)
  ○ 実質 URI と読み替えても問題ない


● URI (Uniform Resource Identifier)
  ○ URL と URN (Uniform Resource Name) の総称
  ○ URN には例えば書籍における ISBN などがある
  ○ つまり URN にはサーバ名やプロトコル名が入っていな
    いので, URI としてリソースを取得できない

  ※「URL < URI」くらいは覚えておいてもいいかも

More Related Content

More from Kenta Yamamoto

優れたビデオゲームに共通する不変の法則
優れたビデオゲームに共通する不変の法則優れたビデオゲームに共通する不変の法則
優れたビデオゲームに共通する不変の法則
Kenta Yamamoto
 

More from Kenta Yamamoto (10)

The Art of Command Line (2021)
The Art of Command Line (2021)The Art of Command Line (2021)
The Art of Command Line (2021)
 
Vulnerability Detection Based on Git History
Vulnerability Detection Based on Git HistoryVulnerability Detection Based on Git History
Vulnerability Detection Based on Git History
 
[論文紹介] VCC-Finder: Finding Potential Vulnerabilities in Open-Source Projects ...
[論文紹介] VCC-Finder: Finding Potential Vulnerabilities in Open-Source Projects ...[論文紹介] VCC-Finder: Finding Potential Vulnerabilities in Open-Source Projects ...
[論文紹介] VCC-Finder: Finding Potential Vulnerabilities in Open-Source Projects ...
 
文字コードとセキュリティ
文字コードとセキュリティ文字コードとセキュリティ
文字コードとセキュリティ
 
私たちは何を Web っぽいと感じているのか
私たちは何を Web っぽいと感じているのか 私たちは何を Web っぽいと感じているのか
私たちは何を Web っぽいと感じているのか
 
Tips for bash script
Tips for bash scriptTips for bash script
Tips for bash script
 
優れたビデオゲームに共通する不変の法則
優れたビデオゲームに共通する不変の法則優れたビデオゲームに共通する不変の法則
優れたビデオゲームに共通する不変の法則
 
20110805 ui14課題2
20110805 ui14課題220110805 ui14課題2
20110805 ui14課題2
 
20110804 ui14課題
20110804 ui14課題20110804 ui14課題
20110804 ui14課題
 
東日本大震災後の訪日外国人数の変移_2011.3
東日本大震災後の訪日外国人数の変移_2011.3東日本大震災後の訪日外国人数の変移_2011.3
東日本大震災後の訪日外国人数の変移_2011.3
 

Recently uploaded

Recently uploaded (12)

論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

良いUrlを設計する

  • 1. 良い URL を設計する Kenta YAMAMOTO
  • 2. 良い URL って? URLが変わらなくて何が嬉しい? ● クールな URI は変わらない ("Cool URIs don't change")
  • 3. URL が変わりにくくなる3原則 (1) http://example.jp/cgi-bin/login.pl ● 実装依存しない ○ 例: "cgi-bin" というバスと、".pl" という拡張子
  • 4. URL が変わりにくくなる3原則 (2) http://examle.jp/sample/people/show/123 例: 初期の RoRはこういう動詞が入っていたそうです(2.0 以降改善) ● URI はリソースを表現する名詞にする  (HTTP メソッドを動詞に) 実装依存の URI を生成するFWの場合は?
  • 5. URL が変わりにくくなる3原則 (3) http://example.jp/login.php?action=showpage ● メソッド名を含めない クエリストリングは? ※システムをリファクタリングしてもメソッド名が変更にならない ような実装をする
  • 6. まとめ "URI は、ともすると Web アプリケーションフレームワークが隠 蔽し、通常のプログラマはあまり意識をしなくてもよい存在に なってしまいがちです。しかし, URI は次の点でとても重要です" ● URI はリソースの名前である ● URI は寿命が長い ● URI はブラウザがアドレス欄に表示する ―『Webを支える技術』
  • 7. ちなみに、Internet Explore (IE) は、URLの 長さをバージョンを問わずNバイトまでに制 補足: URL と URI 限されるため、PC向けページではその実装 に合わせることになる。 ● URL (Uniform Resource Locator) ○ 実質 URI と読み替えても問題ない ● URI (Uniform Resource Identifier) ○ URL と URN (Uniform Resource Name) の総称 ○ URN には例えば書籍における ISBN などがある ○ つまり URN にはサーバ名やプロトコル名が入っていな いので, URI としてリソースを取得できない ※「URL < URI」くらいは覚えておいてもいいかも