はじめに
タイトルについて記事にしました。
この記事で得る内容は以下の通りです。
・ URIの基礎について
■ Web API入門についての過去記事
・ Web API入門#1 〜APIとWeb API、Webの概要〜
・ Web API入門#2 〜REST、アーキテクチャについて〜
URIについて
前回、前々回でURIは、Web上にあるリソースを識別するIDであると説明をしました。
URIにアクセスをすることにより、リソースを使ってデータを加工し、Webページを表示したり
データを操作して、APIにリクエストを要求し、リソースを変更したりetc...色々なことができます。
また、URIはリソースを識別するIDなので、一意性(重複してはならない)である必要があり、構文が定められています。
URIの構文
次に、URIの構文について説明をします。
https://s79ns:pass@qiita.com:8000/posts?id=1&category=api#about
| ① | ② | ③ | ④ | ⑤ | ⑥ | ⑦ |
① URIスキーム・・・通信プロトコルを指すことが多く、大半はhttpかhttpsです。
② ユーザー情報・・・あまり使いませんが、username:passwordの形式で表現します。
※ herokuの自動デプロイ設定時にs79ns/portfolioのように指定した記憶があります。
③ ドメイン名・・・DNSで名前解決できるドメイン名 or IPアドレスで、大半はドメイン名が使われます。
※ 指定したドメインを使ってアクセスできるかどうかで、名前解決できるか判断します。
④ ポート番号・・・プロトコルで用いるTCPポート番号です。
※ ポート番号は、家があったとしたら、家のドアにあたります。
⑤ パス・・・階層を表す、一意なリソースを表します。
※ パスは、postsという部屋の中の、更に奥のことを指します。(押入れなど)
⑥ クエリパラメータ・・・名前+値形式で情報を追加していきます。(&でつないで次のカテゴリー=値...)
⑦ URIフラグメント・・・ Webページの内部の位置を示します。
※ HTMLでid属性をつけて、特定の位置までスクロールするアレです。
URIのパス指定方法
今回、3つご紹介します。
絶対URI
先頭からの完全パスです。例えば下のような絶対URIは、editにアクセスする時は、先頭からアクセスをします。
https://qiita.com/edit
相対URI
起点から相対的なパスを指定します。絶対URIで指定すると冗長になってしまう時に使い、cdコマンドでディレクトリ間を移動する方法と考えは同じです。
ベースURI
相対URIの起点を決めるためのURIです。HTMLのheadタグ内にbaseタグを指定するやり方であったり
様々な手法があるようです。
URIと文字
URIは使える文字が限られており、これらのASII文字を使うことができます。
・ アルファベット(大文字小文字問わず):A〜Z
・ 数字:0〜9
・ 記号:-(ハイフン) .(ピリオド) 〜(ニョロ) :(コロン)@(アットマーク)( )(かっこ開きと閉じ)
!(エクスクラメーション)$(ダラー)&(アンパサンド)'(シングルクォーテーション)
日本語などの文字はそのままだと使うことができず、表示する際は、%エンコーディングが必要です。
実際のURIが左のように表示されていても、コンピュータでは%エンコーディングにより右のように処理します。
https://qiita.com/あ → https://qiita.com/%E3%81%B2
UTF-8のような文字コードは、表示するコードやコンピュータが実際に扱う文字の対応表みたいな存在です。