HTTPやプロトコルの概要。リクエストとレスポンスの関係など

この記事は5分で読めます

自分用メモ

既存の記事との組み合わせや
どのように接合するかも考える必要がある。

リクエストとレスポンス


コンピュータ同士の通信においては、
要求する側のコンピュータ(クライアントコンピュータ)と、
それに応答する側のコンピュータ(サーバコンピュータ)の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、作成方法も解説


  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。