自分用メモ
既存の記事との組み合わせや
どのように接合するかも考える必要がある。
目次
リクエストとレスポンス
コンピュータ同士の通信においては、
要求する側のコンピュータ(クライアントコンピュータ)と、
それに応答する側のコンピュータ(サーバコンピュータ)の2つから成る
・リクエスト:コンピュータがコンピュータに要求すること
・レスポンス:これに対して返信すること
こうした通信方式を「クライアントサーバーモデル」と呼ぶ
コンピュータ通信の殆どがこのモデルによって成り立っている
クライアントサーバシステム
複数のコンピュータによる通信方式の1つ。情報を要求するコンピュータ(クライアント)と、応答する側のコンピュータ(サーバ)という2種類のコンピュータで処理を行うのが特徴。なおコンピュータがコンピュータに情報を要求する事をリクエストと呼び、それに対して返事をすることをレスポンスと言う。ちなみに「クライアント」「サーバ」はあくまで役割を示す言葉であり。こうした名前の専用の機械がある訳ではない。サーバー自体がクライアントとして他のサーバーに要求を出すこともあるし、1台のサーバーマシンに複数のサーバー機能を兼任させる事もある。
プロトコルとOSI基本参照モデル
プロトコルとは、ネットワークを通してコンピュータ同士がやり取りする為の約束事。
プロトコルには様々な種類がある。
「どんなケーブルを使って」「どんなデータ形式」などが事細かにきまっている。
これらを7階層に分けてみたのがOSI基本参照モデルである。
以下の7階層までの全てを組み合わせることで、
コンピュータ同士のコミュニケーションが成立するようになっている。
⑦アプリケーション層
→具体的にどんなサービスを提供するのか
⑥プレゼンテーション層
→データはどんな形式にするか
⑤セッション層
→通信の開始から終了までをどう管理するか
④トランスポート層
→通信の信頼性はどう確保するか
③ネットワーク層
→ネットワークとネットワークをどう中継するか
②データリンク層
→同一ネットワーク内でどう通信するか
①物理層
→物理的にどう繋ぐか
このように階層に分けることで、「プロトコルを一部改変したいんだけど、
どの機能を差し替えればいいのか」という時に、とても便利である。
現在は、インターネットの世界で標準とされている
「TCP/IP」というプロトコルが広く利用されている。
※参照:TCP/IPモデルとは。5つの階層について解説
LANの装置とOSI基本参照モデルの関係
以下の装置が、OSI基本参照モデルにおける
どの層に属しているのかを把握するのが大事。
ブリッジ
データリンク層(第2層)の中継機能を提供する装置。セグメント間の中継役として、流れてきたパケットの
MACアドレス情報を確認して、必要であれば他のセグメントにパケットを流す。
ブリッジは、流れてきたパケットを関しすることで、最初に
「それぞれのセグメントに属するMACアドレスの一覧」を記録している。
ハブ

LANケーブルの接続口(ポート)を複数持つ集線装置。
ポートの数は様々で、その数の文だけ接続できる。
ハブには内部的にリピータを複数束ねたリピータハブと、
ブリッジを複数束ねたスイッチングハブの②種類がある。
スイッチングハブは、パケットが流れてくると
宛先MACアドレスに該当する
コンピュータが繋がっているポートだけに送出する。
ルータ
OSI基本参照モデルの第3層である、ネットワーク層に位置する装置。パケットのIPアドレス情報を使って、ネットワーク間を中継する機能を果たしている。
※参照:IPアドレスの概要や組織名の把握、グローバルローカル、IPv4とIPv6の違い
ルータは、異なるネットワーク(LAN)同士の中継役として、
流れてきたパケットのIPアドレス情報を確認した後に、
最適な経路へとパケットを転送する。
ルータの役割は、それぞれの地域(LAN)を担当する郵便屋さんみたいなもの。
自分の担当地域外宛のパケットが流れてきたら、
その地域を担当するルータに配送を依頼する。
MACアドレスとは?
ネットワーク機器には、製造段階でMACアドレスという番号が割り振られている。これはIEEE(米国電気電子技術者協会)によって管理される製造メーカー番号と、
自社製品に割り振る製造番号の組み合わせで出来ている。
00:00:F8:02:14:83
「:」で区切られた数字は、これひとつが1バイト(8ビット)を
16進数で表記したもの。
先頭の24ビット「00:00:F8」が製造メーカー番号で、
後ろの24ビット「02:14:83」が製造番号である。
MACアドレスの番号は、世界中で重複したい
一意の番号であることが保証されている。
HTTPやプロトコルの概要
HTTP=Hypertext Transfer Protocolの略
Webブラウザ(=クライアント)と、Webサーバ(サーバ)の間で、
HTMLなどのコンテンツ送受信のために用いられる通信プロトコル
「ハイパーテキスト(=HTML)のための通信プロトコル」
このような意味になる
HTML:Hypertext Markup Language
(ハイパーテキスト・マークアップ・言語)=Web Page
※参考:HTMLとは?head要素やbody要素、属性について解説
http://www.yahoo.co.jp/ の「http」とは、
「HTTPという通信プロトコルを用いるよ」という宣言を指している
HTTPやHTTPSは、Webのための通信プロトコル
プロトコルとは?
規約(取り決め、約束事)のこと通信プロトコルはコンピュータがお互いに通信をするための規約
インターネットに限らず、コンピュータ同士が通信する場合には
「何かしらの取り決め」が必要になる
HTTPSとは?
HTTPでのデータ送受信の際に、全ての通信データを暗号化して、セキュリティを担保する通信プロトコル
パスワードを入力させるWebサイトには、
必ずHTTPSを用いて通信データを暗号化するべき
パスワードを入れるのに暗号化されてない
通信プロトコル(HTTP)のURLになっているサイトは、
「セキュリティに問題があるサイト」と言える
(HTTPSのSはSecurityのSである)
※参考:URLとは?形式や最初に付く符号について
暗号化とは?
通信相手以外は読み取り不可にする技術Web上で個人情報やパスワードを通信する際に、
第三者に読み取られないようにするもの。
「見ても分からないようにデータをぐちゃぐちゃにする」
といった風にも言い換えられる。
HTTPリクエストメッセージの一般形式
以下の形式でリクエストを出すことが、HTTPという通信規約で決まっている
①メソッド URL HTTPのバージョン
「GET」は、読み込みを意味するとメソッドになる
「GET /pickup/6218272」は、
「pickup/6218272」を読み込むという意味に成る
②ヘッダ部(付加情報)
「Host: news.yahoo.co.jp」といった、
ホスト名とドメイン名が合わさったものが指定されている
「news.yahoo.co.jp」というホストにアクセスするという事
③(空行)
④ボディ部
メソッドが「POST:フォームデータ送信時に使うメソッド」
であれば、ボディ部にはフォームデータが入り、
リクエストとしてサーバに送信される
HTTPレスポンスメッセージの一般形式
①HTTPのバージョン ステータスコード ステータス
ステータスコードとは、
「リクエストに対してサーバがどう反応したか」を示す番号のこと
「200」であれば、正常に動作した事を示す
ステータスコードと対応するステータスも文字列として返ってくる
200は「OK」を意味するので、そのまま文字列として返ってきている
②ヘッダ部(付加情報)
サーバ情報やレスポンスデータの情報が記されている
③(空行)
④ボディ部
GETメソッド(読み込み用メソッド)に対するレスポンスの場合、
空行以降のボディ部()が
実際のWebページ(HTML, コンテンツ)になる
このレスポンスメッセージのコンテンツの部分が、
DLされWebページとして表示される
Webブラウザは、レスポンスメッセージで
送られてきたコンテンツをWebページとして表示する
HTTPリクエストの4つのメソッド
Webでは、あるリソース(Web上のページの全て)に対して
CRUD(クラッド)と呼ばれる4つの操作を実行できる
①Create: 作成
HTTPメソッドはPOST、コメントやツイートを投稿する
②Read: 取得
HTTPメソッドはGET、自分が今まで投稿したコメントやツイートを閲覧する
③Update: 更新
HTTPメソッドはPUT、誤変換などを修正する
④Delete: 削除
HTTPメソッドはDELETE、いらない投稿を削除する
ただし、Yahooのニュース記事など、
ユーザー側が操作権限を持っていないリソースに対しては、
Read(取得)以外の3つの操作は弾かれてしまうので注意
※参考:データベース(DB)とは?CRUDやSQL、作成方法も解説
この記事へのコメントはありません。