技術記事ノック #17~#23
WebサーバとWebアプリケーションサーバの違い
- Webサーバ
- 良く言うサーバのこと
- クライアントからリクエストを受け、レスポンスを返す所
- 静的(HTML/CSS)であればそのままクライアントに返す
- 動的であればWebアプリケーションサーバにリクエストを送る
- クライアント ⇆ Webサーバ
- よく利用されるWebサーバ
- Apache, nginx など
- Webアプリケーションサーバ
- Webサーバからリクエストを受け、レスポンスを返す所
- 動的ページに対応する(プログラミング言語)
- Webサーバ ⇆ Webアプリケーションサーバ
- JabaアプリケーションサーバではオープンソースのApache Tomcatが有名(簡単なWebサーバとしての機能も有する)
Webアプリケーションサーバの仕組み
-
多く採用される「3層階層システム / Web3層構成」と呼ばれる
- { クライアント ⇆ } Webサーバ ⇆ Webアプリケーションサーバ ⇆ データベース
- Webサーバ(プレゼンテーション層)
- クライアントとシステムのやりとりをコントロールする
- APサーバ(アプリケーション層)
- システムの中核を担う処理を実行する
- DBサーバ(データベース層)
- データベースとの連携
- Webサーバ(プレゼンテーション層)
- Webアプリケーションサーバのメリット
- 導入やメンテナンスが容易
- 全てのPCを更新する必要がなくなった
- 情報処理の付加を軽減
- 従来の クライアント ⇆ Webサーバ の2層構造ではサーバに負荷がかかりすぎていた
- サーバが担ってた役割をサーバとAPサーバに分離することによって情報処理負荷を軽減するとともに、効率よく大量の処理が可能となった
- 導入やメンテナンスが容易
Linuxディストリビューション
主要な所だけをまとめる
JavaScriptとは何なのか
- ほぼ全てのデバイスにJavaScriptが相当使われている
- 今後も当分なくならず発展するであろうと言われている
- エンジニアには学習必須言語
- プログラミング言語である
- ユーザー側のWebブラウザとWebサイトまたはWebサービスの相互間のやりとりを円滑にするために使われている
- ブラウジングで体験出来る事(HTML/CSSで表現出来る限界以上の事)の全てはJavaScriptの処理によるもの
- Webサイトの外観のデザインや使い心地から、動画配信サービスのサイトに表示される映画の題名のようなサイト内の情報表示に至るまで、JavaScriptが使われている
- ユーザーの使っているデバイス上で即時にタスクを処理する事が出来る
コンピュータの3大要素
CPU RAM ROM
- CPUは頭脳 RAMは机の広さ ROMは本棚 とイメージすると分かりやすい
- CPU
- PCを買う上でこれの性能が上がるほどに高い
- 処理速度に影響する
- PCで自分が何をするかによって性能を選ぼう
- RAM
- Random Access Memory
- 揮発性である
- 机の広さをイメージし、広げる物をアプリやソフトだとする
- RAMが少ないということは狭い場所で作業するような事
- 同時に利用する場面は多いと思うのである程度の容量を持った物を選ぼう
- ROM
- Read Only Memory
- 作成したデータ、画像、動画を保存する場所
- スペックは容量で表される(〜GBなど)
- 自分が保存する物を想定して選ぼう
- CPU
-
まとめ
OSI参照モデル
- ISOにより策定され、7階層に分割される
- 現在はTCP/IPモデルが主流だが、ネットワークの仕組みを理解する上でOSI参照モデルを用いられる事が多い
-
ネットワークエンジニアが設計、構築、障害対応などでプロトコルに関して議論する場合は、OSI参照モデルに基づき話をすることが一般的であり、OSI参照モデルは完全に理解しておく必要があります。
- 物理層
- LANケーブルやコネクタなどの物理的な部分
- データリンク層
- 直接的に接続されたノード間の通信
- MACアドレス
- ネットワーク層
- ネットワーク間のエンドツーエンドの通信
- IPアドレス
- トランスポート層
- セッション層
- 通信プログラム間の通信の確立、維持、終了の規定
- まだ理解不足
- プレゼンテーション層
- 主にユーザの目に見える部分
- 文字コードなど
- アプリケーション層
- アプリケーションごとの固有の規定
- HTTPなど
これはレイヤ毎に表記したが、通常上から第7層~第1層まで表記される
覚え方は「アプセトネデブ」
各層のPDU(プロトコルデータユニット)
- レイヤ2
- フレーム
- レイヤ3
- パケット
- レイヤ4
- セグメント
一般的にコンピュータのデータの単位はパケットと呼ぶ人が非常に多い
携帯のパケットがさ〜
Memo
- 爆速でプログラミングを身につけるには
- 言語の選定
- 言語自体への理解
- そもそも何が作りたいのか
- 「何が作れるか + 何が得意か」
- 言語の選定
- CPU使用率100%は悪なのか
- CPU使用率100%の意味
- 悪いイメージだが、解釈としては「CPU使用率とは、プログラムがどの程度効率的にCPUを使えているかということ」を示す物であり、「この値が大きければ大きいほど望ましい状態」らしい
- ただ、CPU100%はコンピュータのパフォーマンスを上げる手段であり、目的ではない
- CPU100%の状態が長く続いてしまえば悪い結果をもたらしてしまう
- CPU使用率100%の意味