yujiroのプログラミング

勉強内容をアウトプットし、サボらないようにする為のブログ

<DAY68>WEBを支える技術を読んで第6章

\ Follow me!! /

f:id:yujiro0320:20190415152250p:plain

●学習日数 68日 

●学習時間(本日) 8.0時間

●累計学習時間 182.0時間

●一日あたりの平均学習時間 2.68時間 

インターネットのプロトコルは階層型

4つの層に分かれている。

f:id:yujiro0320:20190427225019p:plain

ネットワークインターフェイス

物理的なケーブルやアダプタに相当する部分。

インターネット層

この層を担当するのが、IPです。IPではデーターの通信単位をパケットと呼ぶ。 パケットとは指定したIPアドレスをパケット単位で通信している。 送り出したデーターが最終的な送り先まで届くかは保証しない。

トランスポート層

IPが保証しなかったデーターの転送を保証する。TCPが相当する。 保証の仕方は、コネクションを使って漏れをチェックする。どのアプリケーションに渡るのかを決定するのがポート番号。

アプリケーション層

HTTPやメールやDNSを実現する層です。 

HTTPのバージョンについて

今は1、1で後継のバージョンも議論されている。 ただ、現在ではRESTアーキテクチャスタイルに価値を見出しており、HTTP1.1を有効に活用できる開発をしていく流れとなっている。

リクエストとレスポンスについて

HTTPはクライアントが出したリクエストをサーバーで処理してレスポンスを返します。 クライアントはレスポンスが返るまで待機します。

クライアントで行われる事

1.リクエストメッセージの構築

2.リクエストのメッセージの送信

3.(レスポンスが返るまで待機)

4.レスポンスメッセージの受信

5.レスポンスメッセージの解析

6.クライアントの目的を達成するために必要な処理

サーバーで行われる事

1.(リクエストの待機)

2.リクエストのメッセージの受信

3.リクエストメッセージの解析

4.適切なアプリケーションプログラムへの処理の委譲

5.アプリケーションプログラムから結果を取得

6.レスポンスメッセージの構築

7.レスポンスメッセージの送信

HTTPメッセージ

リクエストメッセージとレスポンスメッセージをまとめた言い方。 HTTPのメッセージの構造

f:id:yujiro0320:20190427225035p:plain

ステートフルとステートレスについて

RESTの設計の重要なアーキテクチャである ステートレスなサーバー設計ですが、意味を完結に表すなら、ステートレスはくどい会話になる。 一見ステートフルがいいように見えるが、無数のクライアントのリクエストを受けるサーバーにおいて、処理しきれない問題が生じる。

ステートレスの欠点

送信するデーター量が多くなる。 リクエストを重複してレスポンスを返す恐れがある。