学習記録 〜ネットワーク基礎 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アドレスが分からないとアクセスが出来ない
・DNSの流れ
1.クライアントPCで「~~~.co.jpにアクセスしたい」というリクエストを出す。
2.キャッシュDNSサーバ(参照サーバ)へ対応付いたIPアドレスが保存されている
か確認する。
※キャッシュ=一時的に保存
分かった場合→対応付いたIPアドレスがレスポンスされるのでアクセス可能。
3.キャッシュDNSサーバで分からない場合
→DNSルートサーバに「~~~.co.jpのIPアドレス」を問い合わせる。
4.DNSルートサーバよりトップレベルドメイン(TLD)の「jp」を管理している
DNSサーバを紹介されるので、「~~~.co.jpのIPアドレス」を問い合わせる。
5.TLDのDNSサーバよりセカンドレベルドメイン(SLD)「co.jp」を管理している
DNSサーバを紹介されるので、「~~~.co.jpのIPアドレス」を問い合わせる。
6.SLDのDNSサーバより紹介される「~~~.co.jp」を管理しているDNSサーバへ対応
付いたIPアドレスを問い合わせる。回答はキャッシュDNSサーバへ返ってくる。
7。キャッシュDNSサーバよりクライアントPCへ回答が届き、アクセス可能となる。
DNSプロトコル(ポート番号53番)→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ブラウザを開くことができない。
例)yahoo.co.jp ⇄ 183.79.135.206 / 182.22.59.229 = 「1対n」
n対nの場合もある。主に同時多重アクセスによる負荷分散の為。
terminalで「nslookup ドメイン名」→ サーバーのIPアドレスが返ってくる
terminalで「nslookup IPアドレス」→ ドメインネームが返ってくる
・ドメインの階層構造
例)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番ポートへ届く
・ポート番号 → 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(ネットワーク)の学習記録。
ネットワークの基礎。ITの世界を7つの階層に分類したもの
第1層(レイヤ1)物理層
: インターフェース(境界面)を規定するもの
第2層(レイヤ2)データリンク層
: MACアドレス同士の通信を規定するもの
MACアドレス → 機器一つ一つに割り当てられたアドレス(可変)
割り当てられている場所 → NIC(Network Interface Card) 。
1つのPCに1つとは限らない。
データリンク層は、線と線で繋いだところで通信するイメージ
MACアドレス同士で通信→ケーブルで繋がっていないといけない
・ARP(Address Resolution Protocol)
IPアドレスからEthernetのMACアドレスの情報を得るプロトコル。
第3層(レイヤ3)ネットワーク層
:
IPアドレス → それぞれの機器がネットワークに接続する際に割り当てられ
るアドレス(32bit)
第4層(レイヤ4)トランスポート層
:
第5層(レイヤ5)セッション層
:
第6層(レイヤ6)プレゼンテーション層
:
第7層(レイヤ7)アプリケーション層
:
http/ssh/ftd
学習記録 〜ネットワーク基礎 http/LAN/WAN〜
IT(ネットワーク)の学習記録。
・httpとは
現在使われているものの多くは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)
インターネットなどの開かれたネットワーク → 誰でもアクセス可能