学習記録 〜ネットワーク基礎 RESTful API 〜

IT(ネットワーク)の学習記録

 

・RESTful API

 RESTful API=「他人が理解できるプログラムを組む」という設計思想≒設計原則。

        URIに規律性が付加されることで、利用する開発者が楽になる。

 REST(REpresentation State Transfer)

 ≒ 状態を表現して送る

 API(Apprication Programing Interface)

  ≒ アプリケーションとプログラムをつなぐ便利なもの

 ※URLとURIの違い

  URL(Uniform Resource Locator):統一資源位置指定子

   web上にあるあらゆるファイルがweb上のどの位置にあるか表したもの≒住所。

  URI(Uniform Resource Identifier):URLの、より広い概念

   web上にあるあらゆるファイルを認識するための識別子の総称。

   URLとURN(Uniform Resource Name=web上にあるあらゆるファイルのweb上

   での名前)で構成されている。

・RESTの4原則

 ①アドレス可能性(Addressability)

  提供する情報がURIを通して表現できること。全ての情報はURIで表現されるなアド

  レスを持っていること。

 ②ステートレス性(Stateless)

  HTTPをベースにしたステートレスなクライアント/サーバプロトコルであること。

  セッション等の状態管理はせず、やり取りされる情報はそれ自体で完結して解釈で

  きること。

 ③接続性(Connectability)

  情報の内部に別の情報や(その情報の別の)状態へのリンクを含めることができる

  こと。

 ④統一インターフェース(Uniform Interface)

  情報の操作は全てHTTPメソッドを利用すること。

  ※HTTPメソッド=クライアントがサーバにしてほしいことを依頼する手段

  1.GETメソッド→(HTML等の)情報の取得

  2.POSTメソッド→      情報の送信

  3.DELETEメソッド→        情報の削除

  4.PUTメソッド→         情報の変更

学習記録 〜ネットワーク基礎 web3層構造〜

IT(ネットワーク)の学習記録。

 

・web3層構造(web3層アーキテクチャ)=web(ネットワーク)構造の設計思想

  ※アーキテクチャ=建築様式・構造・構成

 ネットワークの情報伝達は、以下の3つのサーバによる構成となっている

 ①webサーバ → 静的なもの(HTML/CSS/画像)を返すサーバ

 ②webアプリケーションサーバ → 動的なもの(Ruby/Rails/python/php/GO)を返す

 ③データサーバ → 検索や蓄積が容易に出来るよう整理された情報の集まり(SQL)

 

・webサイトを見る際のネットワーク上の流れ

 ①クライアント(PC)はブラウザを通じてwebサーバへHTTPリクエストを送信

  ※webサーバ→プレゼンテーション層

 ②webサーバはwebアプリケーションサーバへリクエストを処理を送信

  ※webアプリケーションサーバ→アプリケーション層

 ③webアプリケーションサーバはデータサーバへデータ検索を送信

  ※データサーバ→データ・アクセス層

 ④データサーバは検索結果を抽出しwebアプリケーションさーばへ返答

 ⑤webアプリケーションサーバは受け取った返答をリクエスト処理結果としてwebサ

  ーバへ返答

 ⑦webサーバは受け取ったリクエスト処理結果をhttpレスポンスとしてクライアント

  へ返答

 

・サーバの種類色々

 webサーバ/メールサーバ/アプリケーションサーバ/ファイルサーバ/プリントサーバ

学習記録 〜ネットワーク基礎 DNS〜

IT(ネットワーク)の学習記録。

 

DNS(Domain Name System)

 ドメインだけではどこにアクセスしたらいいのか分からない

 →ドメインが対応しているIPアドレスが分からないとアクセスが出来ない

  ⇨ドメインに対応したIPアドレスを特定する仕組み。

 

DNSの流れ

 1.クライアントPCで「~~~.co.jpにアクセスしたい」というリクエストを出す。

 2.キャッシュDNSサーバ(参照サーバ)へ対応付いたIPアドレスが保存されている

   か確認する。

    ※キャッシュ=一時的に保存

   分かった場合→対応付いたIPアドレスがレスポンスされるのでアクセス可能。

 3.キャッシュDNSサーバで分からない場合

   →DNSルートサーバに「~~~.co.jpのIPアドレス」を問い合わせる。

    ※DNSルートサーバ=DNSサーバの最上位層サーバ

 4.DNSルートサーバよりトップレベルドメインTLD)の「jp」を管理している

   DNSサーバを紹介されるので、「~~~.co.jpのIPアドレス」を問い合わせる。

 5.TLDDNSサーバよりセカンドレベルドメイン(SLD)「co.jp」を管理している

   DNSサーバを紹介されるので、「~~~.co.jpのIPアドレス」を問い合わせる。

 6.SLDのDNSサーバより紹介される「~~~.co.jp」を管理しているDNSサーバへ対応

   付いたIPアドレスを問い合わせる。回答はキャッシュDNSサーバへ返ってくる。

 7。キャッシュDNSサーバよりクライアントPCへ回答が届き、アクセス可能となる。

 

DNS通信プロトコル

 DNSプロトコル(ポート番号53番)→UDP通信(プロトコル)を使用する。

  ※TCP≒信頼性/UDP≒速度

 IPアドレスは32bitと値が小さい為、信頼性を担保する必要がない。

  ※IPアドレス:255.255.255.255 ← 255=11.111.111(2進数が8つ=8bitが4つ)

学習記録 〜ネットワーク基礎 ドメイン〜

IT(ネットワーク)の学習記録。

 

ドメインとは

 IPアドレスと文字列の対応付け

 IPアドレス = インターネット上に接続されたサーバの住所

 例)183.79.135.206(:80) ⇄ yahoo.co.jp(~.co.jpまでがドメイン

   (:80)はhttpプロトコルwebブラウザのポート番号。

   80番ポートで動いていないとwebブラウザを開くことができない。

 IPアドレスドメインの対応付けは、1対1とは限らない。

 例)yahoo.co.jp ⇄ 183.79.135.206 / 182.22.59.229 = 「1対n」

   n対nの場合もある。主に同時多重アクセスによる負荷分散の為。

 

ドメインから対応するIPアドレスを検索する方法

 terminalで「nslookup ドメイン名」→ サーバーのIPアドレスが返ってくる

 terminalで「nslookup IPアドレス」→ ドメインネームが返ってくる

 ns=ネームサーバ、+Dでドメインネームサーバ=DNS

 

ドメインの階層構造

 例)yahoo.co.jp

   ①トップレベルドメイン → jp

   ②セカンドレベルドメイン → co

   ③サードレベルドメイン → yahoo

 ドメインの階層はドット( . )で区切られる。

 

学習記録 〜ネットワーク基礎 ポート番号/NAT/NAPT〜

IT(ネットワーク)の学習記録。

 

・ポート番号

 TCP/IP通信において、コンピュータが通信に使用するプログラムを識別する為の番号。大きく3つに分類することができる。

 (1)ウェルノウンポート番号「0〜1023」

 (2)レジストレイテッドポート番号「1024〜49151」

 (3)プライベートポート番号「49152〜65535」

  (1)ウェルノウンポート「0〜1023」

     全てのポート番号にプログラムが割り当てられている

     →(なぜ)→

     サーバーのどのプログラムにパケットを届ければ良いかは、

     IPアドレスだけではわからない為。

     例)http: → サーバの80番ポートへ届く

       https: → サーバの443番ポートへ届く

       ssh: → サーバの22番ポートへ届く

     ・MACアドレス → OSI参照モデル第2層

     ・IPアドレス → OSI参照モデル第3層(≒相手の住所)

     ・ポート番号 → OSI参照モデル第3層

             (コンピュータの中で動いているプログラムの番号)

 

・NATとNAPT

 ・NAT(Network Address Translation) → IPアドレスを変換する技術

  グローバルIPアドレスとプライベートIPアドレスを紐づけて変換する。

  グローバルIPアドレス → インターネット経由でアクセス出来るIPアドレス

  プライベートIPアドレス → インターネット経由ではアクセス出来ないIPアドレス

  NATではグローバルIPアドレスとプライベートIPアドレスを1対1で変換する

  ≒複数のプライベートIPアドレスを1つのグローバルIPアドレスに紐付けることはで

  きない

 ・NAPT(Network Address and Port Translation) → IPアドレスを変換する技術

   1つのグローバルIPアドレスと複数のプライベートIPアドレスを紐づけて変換する。

  例)192.80.0.2:29999

   「:クライアントのポート番号」を付加しグローバルIPアドレスを差別化する。

 

学習記録 〜ネットワーク基礎 OSI参照モデル〜

IT(ネットワーク)の学習記録。

 

OSI参照モデル

 ネットワークの基礎。ITの世界を7つの階層に分類したもの

  第1層(レイヤ1)物理層 

   : インターフェース(境界面)を規定するもの

  第2層(レイヤ2)データリンク層

   : MACアドレス同士の通信を規定するもの

      MACアドレス → 機器一つ一つに割り当てられたアドレス(可変)

      割り当てられている場所 → NIC(Network Interface Card) 。

      1つのPCに1つとは限らない。

     データリンク層は、線と線で繋いだところで通信するイメージ

     MACアドレス同士で通信→ケーブルで繋がっていないといけない

     ・ARP(Address Resolution Protocol)

      IPアドレスからEthernetMACアドレスの情報を得るプロトコル

 

  第3層(レイヤ3)ネットワーク層

   : 

    IPアドレス → それぞれの機器がネットワークに接続する際に割り当てられ

            るアドレス(32bit)

 

  第4層(レイヤ4)トランスポート層

   :

 

  第5層(レイヤ5)セッション層

   :

 

  第6層(レイヤ6)プレゼンテーション層

   : 

 

  第7層(レイヤ7)アプリケーション層

   : 

    http/ssh/ftd

 

学習記録 〜ネットワーク基礎 http/LAN/WAN〜

IT(ネットワーク)の学習記録。

 

・httpとは

 プロトコル(通信のルール)の一つ。RFCに定められている。

 現在使われているものの多くはver1.1。徐々に2.0が主流になってきている。

 例)http://www.yahoo.com(/index.html)→()部分は省略できる(されている)。

 ・origin = プロトコル・ホスト名・ポート番号がセットで書かれたもの

 

・ブラウザとは

 webページを見るためのアプリケーション

 

・GETメソッドとPOSTメソッド

 GETメソッド → サーバーから様々な情報(.html / .jpeg)を取得する為の方法。

 POSTメソッド → クライアントから様々な情報を送る為の方法

 ネットワークの通信は、双方向で行われる。

 例) クライアント →(リクエスト)→ サーバー

    サーバー → (レスポンス) → クライアント

 

・パソコンの3大要素

 ① CPU  → (学習に例えるなら)頭の良さ=高度な情報を処理できる

 ② メモリ → (学習に例えるなら)机の広さ=沢山の情報を処理できる

 ③ ストレージ→(学習に例えるなら)引出しの多さ=多くの情報を取得できる

   CPUは小さい方が良い

 

・LANとWAN

 ・LAN(Local Area Network)

  「会社の中」「家庭の中」「学校の中」など、特定の中だけで繋がっているネット

  ワーク → 部外者はアクセス出来ない

 ・WAN(Wide Area Network)

  インターネットなどの開かれたネットワーク → 誰でもアクセス可能