学習忘備録

学習のアウトプットや感じた事を発信していきます

技術記事ノック #17~#23

WebサーバとWebアプリケーションサーバの違い

Webアプリケーションサーバの仕組み

  • 多く採用される「3層階層システム / Web3層構成」と呼ばれる
  • { クライアント ⇆ } Webサーバ ⇆ Webアプリケーションサーバ ⇆ データベース
    • Webサーバ(プレゼンテーション層)
      • クライアントとシステムのやりとりをコントロールする
    • APサーバ(アプリケーション層)
      • システムの中核を担う処理を実行する
    • DBサーバ(データベース層)
      • データベースとの連携
  • 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など)
      • 自分が保存する物を想定して選ぼう
  • まとめ
    • RAMはメモリ、ROMはストレージやHDDなどと呼ばれるが、正確にはRAM、ROMで覚えた方が良い

    • なぜって?

      • RAMにもROMにもメモリーと付くからだ。

      • 揮発性メモリーか永続性メモリーか、そういったイメージで覚えると定着しやすいと思う

 

OSI参照モデル

  • ISOにより策定され、7階層に分割される
  • 現在はTCP/IPモデルが主流だが、ネットワークの仕組みを理解する上でOSI参照モデルを用いられる事が多い
  • ネットワークエンジニアが設計、構築、障害対応などでプロトコルに関して議論する場合は、OSI参照モデルに基づき話をすることが一般的であり、OSI参照モデルは完全に理解しておく必要があります。

  1. 物理層
    • LANケーブルやコネクタなどの物理的な部分
  2. データリンク層
  3. ネットワーク層
    • ネットワーク間のエンドツーエンドの通信
    • IPアドレス
  4. トランスポート層
    • ノード間のデータ転送の信頼性を確保するため
    • TCP / UDP
  5. セッション層
    • 通信プログラム間の通信の確立、維持、終了の規定
    • まだ理解不足
  6. プレゼンテーション層
  7. アプリケーション層
    • アプリケーションごとの固有の規定
    • HTTPなど

これはレイヤ毎に表記したが、通常上から第7層~第1層まで表記される

  • カプセル化と非カプセル化
    • カプセル化
      • コンピュータ同士で通信される時、まずはレイヤ7からレイヤ1まで順番に処理される。
      • その時に各層で処理された情報はヘッダとして付加されていく
      • こうして上位層の処理情報を下位層で包み込んでいくことをカプセル化という
      • ※レイヤ2ヘッダでは受信したフレームに誤りがないかどうかを調べるためのFCSヘッダも付加される
    • カプセル化
      • 受信した側は逆にレイヤ1〜レイヤ7の順で処理される
      • 下位層から上位層にデータがいくにつれて各層でヘッダを取り外していく
      • このことをカプセル化という
  • 通信のイメージとしてはパソコンから有線でルータなどのネットワーク機器までの通信をイメージすればいいだろう
    • 物理層を有線ケーブルと考えれば理解が早いはず
覚え方は「アプセトネデブ」

各層のPDU(プロトコルデータユニット)

  • レイヤ2
    • フレーム
  • レイヤ3
    • パケット
  • レイヤ4
    • セグメント

一般的にコンピュータのデータの単位はパケットと呼ぶ人が非常に多い

携帯のパケットがさ〜

 

Memo

  • 爆速でプログラミングを身につけるには
    • 言語の選定
      • 言語自体への理解 
      • そもそも何が作りたいのか
      • 「何が作れるか + 何が得意か」
  • CPU使用率100%は悪なのか
    • CPU使用率100%の意味
      • 悪いイメージだが、解釈としては「CPU使用率とは、プログラムがどの程度効率的にCPUを使えているかということ」を示す物であり、「この値が大きければ大きいほど望ましい状態」らしい
    • ただ、CPU100%はコンピュータのパフォーマンスを上げる手段であり、目的ではない
      • CPU100%の状態が長く続いてしまえば悪い結果をもたらしてしまう