Webの用途
- Webサイト
- サイト、ブログ、ショッピング、動画投稿、画像......
- さまざまなサイトをサーバーの裏側を知らなくてもブラウザさえあれば利用できる
- ユーザーインターフェース
- HTMLとCSSを使用して構築している例が多い
- Netflix
- Switch
- テレビ
- 各種ソフトウェア
- ルーターの設定
- HTMLとCSSを使用して構築している例が多い
- API
- 主にプログラムで使用する、データを取得したりする
URI
Uniform Resource Identifierの略
URIとは、Web上にあるソースの場所を表すプロトコルです。
たとえば、このような形のURLがあったとします
https://www.google.com/search?q=aaaa&rlz=1C1FQRR_jaJP939JP939&oq=aaaa&aqs=chrome..69i57j0i4i433j0i4l5j0l2j0i4.1251j0j7&sourceid=chrome&ie=UTF-8
これはURIの構文に分解するとこのようになります。
URIスキーム https://
ホスト名 www.google.com
パス名 /serch?
クエリパラメータ q=aaaa&rlz=1C1FQRR_jaJP939JP939&oq=aaaa&aqs=chrome..69i57j0i4i433j0i4l5j0l2j0i4.1251j0j7&sourceid=chrome&ie=UTF-8
このような、URLの書き方を策定したものがURIとなります(厳密には違う)
URIの説明はこちらの記事が一番わかりやすいとおもいます。
関係性としては
- URI
- URL
- URN
のような形になっています。
URIを作るときの考え方
良いURIは次の三つがあげられます。
- リソースの名前であること
- 寿命が長い
- ブラウザがアドレス欄に表示する
これら三つを意識したURIが良いURIと思います。
CoolURIとも呼ばれます。
このような経験をしたことがあると思います。
- 昔見たURLにアクセスしたら404だった
- URLにアクセスしたら望んでたものと違うサイトだった
Webサービスを運用していく上でURI(上の例で言えばパス名など)を変更しないというのは難しいものだと思います。なので、作るときになるべく変わりにくい設計で作る必要があります。
言語に依存した、拡張子やファイル名を含まない
これを含んでしまうと言語に左右されたWebページとなってしまい、もし言語を変えようとした場合、URIが変わってしまいます。
https://sample/directry/home.php
https://sample/directry/HomeServret
メソッドやセッションIDを含まない
これを含むURIは、システムがリファクタリングされた際に変更となる可能性があります。
メソッドを含む場合、メソッド名が変更となったときには、URIが変わってしまいます。
https://sample/directry/home?action=userPage
セッションIDを含む場合、IDが変わってしまうとURIが変わってしまいます。
httos://sample/directry/home?session=123142323
URIはリソースを含めて名詞にする
URIとは、リソースの名前です。なので、名詞にする必要があります。
例を見ながら解説します
https://sample/user/show/micchili
URIはHTTPのメソッドと同じになるように作成するように心がけましょう。
このURIの場合show
の部分が問題です。URIでアクセスすると、サーバーからHTTPメソッドが返されますが、HTTPは単一のメソッドです。つまり、このURIではshow
と書かれている通り、リソースを取得することがわかりますが、URIが動詞となっています。
URIとHTTPは名詞と動詞の関係となるように作成しましょう。
URIを変更したとき
良いURIとは、変わらないURIです。しかし、時にはどうしても変更となってしまう場合があります。そういったときには、リダイレクトを使って古いURIにアクセスした人を新しいURIへ転送してあげましょう。