LoginSignup
3
5

More than 3 years have passed since last update.

Web API入門#3 〜URIの基礎知識〜

Last updated at Posted at 2021-01-11

はじめに

タイトルについて記事にしました。
この記事で得る内容は以下の通りです。

・ 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のような文字コードは、表示するコードやコンピュータが実際に扱う文字の対応表みたいな存在です。

次の記事はこちら

Web API入門#4 〜クールなURIの設計方法について〜

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5