1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【学習ログ】作りながら学ぶWebシステムの教科書 まとめ

Last updated at Posted at 2025-08-27

この記事について

  • 目的:書籍「作りながら学ぶWebシステムの教科書」の学習ログ
  • 立場:学習メモ(誤りの指摘歓迎)
  • 検証環境:macOS 15 / UTM (ARM) / Ubuntu Server 24.04

学習背景

私は2025年8月から日本酒を扱うスタートアップにTechとして関わることになりました。その勉強会で指定された本が「作りながら学ぶ Webシステムの教科書」です。

学習開始時のスキル

  • 学校の授業でPythonを使ったデータ分析を行った経験があり、簡単な分析ならできる
  • Webの仕組みについては何も知らない
  • Udemyで [Web Developer Bootcamp] を受講中のため、HTML、CSSについて基本的な理解がある

課題図書を第3章までざっと読んだものの、理解が十分でないと感じたため、以下の入門書を先に読みました。

図解即戦力 Web技術がこれ1冊でしっかりわかる教科書

図解が多く非常にわかりやすく、HTTPSなどのプロトコルや仮想化について、説明できるほどではないものの「なんとなくイメージが掴める」レベルまで理解を深めることができました。

また、同じ著者による書籍のため説明が重複する部分もありますが、むしろ学習内容を思い出す助けになりました。

5時間ほどでざっと読めるので、この入門書から本書(課題図書)に進む流れは、初心者にとって非常におすすめだと感じます。

第1章 重要度が増すWebシステムとは

Webシステム

  • WebブラウザーやWebサーバーを使って実現される情報システムのこと
  • Webブラウザーによって汎用化され、ITインフラとなった
  • APIによって利用が拡大

クライアントがWebサーバーにリクエストを送信、レスポンスを受信する過程を経て、Webブラウザーにコンテンツが表示されている。スマートフォンやパソコン単体でコンテンツは表示されないし、ネットワークにつながっている必要がある。

APIとは、プログラムのためのインターフェースである。たとえば、郵便番号を入力して住所が自動入力されるが、これはAPIがWebサーバーにリクエストを送信、その結果をクライアントに返答して表示されている。

構成要素

  • 大きくソフトウェアとハードウェアに分けられる
  • ハードウェアは、パソコン、サーバー、ネットワーク機器など
  • ソフトウェアは、OS、ミドルウェア

Webシステムの発展

技術の進歩によってWebコンテンツはリッチなものに。Webサーバーは用意されたコンテンツを送るだけでなく、CGIやSSIによって動的なコンテンツを提供するようになり、Webアプリケーションサーバーと呼ばれるようになった。Web上の通信で使用するプロトコルも進化し、より速く、信頼性の高いものになっている。

第2章 Webシステムの基本

プロトコル

Webコンテンツは、クライアント(利用者の端末)とWebサーバーの間でやり取りされて表示される。そのためには、通信の手順や規格が定められており、これをプロトコルと呼ぶ。
クライアントがWebサーバーと通信する際には、データの送受信を階層的に処理する仕組みが使われる。下位の層でデータを伝送し、その上位の層でデータをアプリケーションに渡すという流れが積み重なって、最終的にWebブラウザに表示される。

代表的なプロトコルには、HTTP/HTTPS(アプリケーション層)、TCP(トランスポート層)、IP(ネットワーク層)、Ethernet(データリンク層)などがある。これらは階層ごとに役割が分かれており、基本的に隣り合った層のプロトコル同士でやり取りする。役割は重複せず、互いに補完し合うことで通信全体を実現している。

これらのプロトコルは、IETFによって標準化されているため、世界で円滑にデータ通信を行うことができている。

Ethernet

物理層とネットワーク層をやり取りする。
Ethernet通信には、Ethernetアダプター(LANカード)が必要である。これには、世界に1つしかないMACアドレスが割り当てられており、これによってコンピューターを識別する。
また、Ethernetではデータを一定の大きさに分割して送受信される。

IP

インターネット通信で使用される基本的なプロトコル。
Ethernetの1フレームには格納できるデータの大きさに上限があるため、IPは必要に応じてデータを小さな単位(パケット)に分割し送信する。

また、IPは宛先アドレスをもとにルーティングテーブルを参照して通信経路を決定する。ルーティングテーブルには「どのネットワークがどの方向(次のルーター)にあるか」という情報がまとめられており、それによって世界中のどの端末とも通信できるようになっている。

*私はEhternetでそれぞれの端末に固有のMACアドレスがあるのなら、わざわざIPを使わずにMACアドレスを利用して通信できるのではと考えた。しかし、MACアドレスだけでは「同じネットワーク(LAN)の中」でしか直接通信できない。そのまま利用すると、大規模な通信網ではアドレス管理が煩雑になり、全体を効率的に運用できない。

そこで、IPアドレスが導入されることで、ネットワーク全体を階層的に分けて整理できる。IPアドレスによって宛先が「どのネットワークに属する端末か」を効率よく仕分けできるため、結果として世界規模でも通信が円滑に行える。

TCP

トランスポート層で使用される。Webサーバーに届いたデータをアプリケーションに正しく渡す役割を担う。
IPにによる通信では、パケットが確実に届くことを保証していない。そのため、TCPでは信頼性を向上されるために様々な機能がある。

  • 再送制御:パケットが欠損した場合に再送を行う
  • 再送タイムアウト:一定時間内に応答がなければ再送を開始
  • シーケンス番号:パケットに通し番号をつけ、順序通りに再構成する
  • スリーウェイハンドシェイク:通信開始時に3回のやり取りで接続可能か確認する

また、TCPではポート番号をふってどのアプリケーションにデータを渡せば良いか区別する。

一方、TCPはスリーウェイハンドシェイクなどの信頼性機構により遅延が発生する。Youtubeや通話など、多少データが欠損しても問題がない場合、転送効率を求めてTCPの代わりにUDPが使用される。

HTTP/HTTPS

アプリケーション層で使用されるプロトコル。
クライアント(Webブラウザなど)がリソースを要求し、Webサーバーがそれに応答することで、アプリケーションレベルの通信が行われる。

HTTPにはバージョンがあり、以下のように進化してきた:

  • HTTP/0.9:テキストのみを返す非常にシンプルな仕様
  • HTTP/1.0, 1.1:ヘッダ導入や持続的接続など、現在も広く利用されている基盤
  • HTTP/2:バイナリ化、ストリーム多重化により効率的な通信を実現
  • HTTP/3:TCPではなくQUIC(UDPベース)を利用し、遅延の低減と信頼性向上を両立

また、HTTPSはHTTP通信にTLSによる暗号化・認証・改ざん検知を加えたもので、現在のWebでは事実上の標準となっている。

*TCPとHTTPの役割が被ってるのではと疑問におもった。HTTPはデータをどの形式で何を送るかを決める。TCPはデータをどう確実に届けるかを考える。HTTPがやり取りするデータはTCPの上ニに乗る。つまり、HTTPは郵便物で、TCPは配達員だと理解すると腑に落ちた。

第3章 Linuxの基本

第4章

以下9/8までに全章終わらせる予定です。

第5章

第6章

第7章

第8章

第9章

第10章

第11章

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?