良いUrlを設計する

Kenta Yamamoto
Kenta YamamotoSupport Engineer at Atlassian
良い 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」くらいは覚えておいてもいいかも
1 of 7

Recommended

CROSS 2015 全文検索群雄割拠 by
CROSS 2015 全文検索群雄割拠CROSS 2015 全文検索群雄割拠
CROSS 2015 全文検索群雄割拠Katsushi Yamashita
4.6K views75 slides
Next-L Enju 開発ワークショップ #8 by
Next-L Enju 開発ワークショップ #8Next-L Enju 開発ワークショップ #8
Next-L Enju 開発ワークショップ #8Kosuke Tanabe
874 views9 slides
私の考えるドキュメント指向 by
私の考えるドキュメント指向私の考えるドキュメント指向
私の考えるドキュメント指向Yohei Yamamoto
1.5K views38 slides
REST APIに入門する。 by
REST APIに入門する。REST APIに入門する。
REST APIに入門する。Kazushi Kawamura
171 views46 slides
[OSC2016沖縄]商用DBからPostgreSQLへの移行入門 by
[OSC2016沖縄]商用DBからPostgreSQLへの移行入門[OSC2016沖縄]商用DBからPostgreSQLへの移行入門
[OSC2016沖縄]商用DBからPostgreSQLへの移行入門Kosuke Kida
940 views22 slides
Frequency with nltk by
Frequency with nltkFrequency with nltk
Frequency with nltkAtsushi Hayakawa
3K views45 slides

More Related Content

More from Kenta Yamamoto

The Art of Command Line (2021) by
The Art of Command Line (2021)The Art of Command Line (2021)
The Art of Command Line (2021)Kenta Yamamoto
134 views21 slides
Vulnerability Detection Based on Git History by
Vulnerability Detection Based on Git HistoryVulnerability Detection Based on Git History
Vulnerability Detection Based on Git HistoryKenta Yamamoto
655 views31 slides
[論文紹介] VCC-Finder: Finding Potential Vulnerabilities in Open-Source Projects ... by
[論文紹介] 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 ...Kenta Yamamoto
784 views28 slides
文字コードとセキュリティ by
文字コードとセキュリティ文字コードとセキュリティ
文字コードとセキュリティKenta Yamamoto
1.7K views46 slides
私たちは何を Web っぽいと感じているのか by
私たちは何を Web っぽいと感じているのか 私たちは何を Web っぽいと感じているのか
私たちは何を Web っぽいと感じているのか Kenta Yamamoto
1K views15 slides
Tips for bash script by
Tips for bash scriptTips for bash script
Tips for bash scriptKenta Yamamoto
7.6K views11 slides

More from Kenta Yamamoto(10)

The Art of Command Line (2021) by Kenta Yamamoto
The Art of Command Line (2021)The Art of Command Line (2021)
The Art of Command Line (2021)
Kenta Yamamoto134 views
Vulnerability Detection Based on Git History by Kenta Yamamoto
Vulnerability Detection Based on Git HistoryVulnerability Detection Based on Git History
Vulnerability Detection Based on Git History
Kenta Yamamoto655 views
[論文紹介] VCC-Finder: Finding Potential Vulnerabilities in Open-Source Projects ... by Kenta Yamamoto
[論文紹介] 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 ...
Kenta Yamamoto784 views
文字コードとセキュリティ by Kenta Yamamoto
文字コードとセキュリティ文字コードとセキュリティ
文字コードとセキュリティ
Kenta Yamamoto1.7K views
私たちは何を Web っぽいと感じているのか by Kenta Yamamoto
私たちは何を Web っぽいと感じているのか 私たちは何を Web っぽいと感じているのか
私たちは何を Web っぽいと感じているのか
Kenta Yamamoto1K views
優れたビデオゲームに共通する不変の法則 by Kenta Yamamoto
優れたビデオゲームに共通する不変の法則優れたビデオゲームに共通する不変の法則
優れたビデオゲームに共通する不変の法則
Kenta Yamamoto844 views
東日本大震災後の訪日外国人数の変移_2011.3 by Kenta Yamamoto
東日本大震災後の訪日外国人数の変移_2011.3東日本大震災後の訪日外国人数の変移_2011.3
東日本大震災後の訪日外国人数の変移_2011.3
Kenta Yamamoto617 views

Recently uploaded

pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料) by
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
185 views63 slides
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化 by
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化Knowledge & Experience
8 views34 slides
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
10 views38 slides
Windows 11 information that can be used at the development site by
Windows 11 information that can be used at the development siteWindows 11 information that can be used at the development site
Windows 11 information that can be used at the development siteAtomu Hidaka
21 views41 slides
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...NTT DATA Technology & Innovation
13 views42 slides
Web3 Career_クレデン資料 .pdf by
Web3 Career_クレデン資料 .pdfWeb3 Career_クレデン資料 .pdf
Web3 Career_クレデン資料 .pdfnanamatsuo
8 views9 slides

Recently uploaded(12)

pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化 by Knowledge & Experience
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
Windows 11 information that can be used at the development site by Atomu Hidaka
Windows 11 information that can be used at the development siteWindows 11 information that can be used at the development site
Windows 11 information that can be used at the development site
Atomu Hidaka21 views
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by NTT DATA Technology & Innovation
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
Web3 Career_クレデン資料 .pdf by nanamatsuo
Web3 Career_クレデン資料 .pdfWeb3 Career_クレデン資料 .pdf
Web3 Career_クレデン資料 .pdf
nanamatsuo8 views
SNMPセキュリティ超入門 by mkoda
SNMPセキュリティ超入門SNMPセキュリティ超入門
SNMPセキュリティ超入門
mkoda31 views
01Booster Studio ご紹介資料 by ssusere7a2172
01Booster Studio ご紹介資料01Booster Studio ご紹介資料
01Booster Studio ご紹介資料
ssusere7a2172220 views
さくらのひやおろし2023 by 法林浩之
さくらのひやおろし2023さくらのひやおろし2023
さくらのひやおろし2023
法林浩之83 views
SSH応用編_20231129.pdf by icebreaker4
SSH応用編_20231129.pdfSSH応用編_20231129.pdf
SSH応用編_20231129.pdf
icebreaker430 views
The Things Stack説明資料 by The Things Industries by CRI Japan, Inc.
The Things Stack説明資料 by The Things IndustriesThe Things Stack説明資料 by The Things Industries
The Things Stack説明資料 by The Things Industries
CRI Japan, Inc.19 views

良い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」くらいは覚えておいてもいいかも