🎉

【書評】プロになるためのWeb技術入門

2023/02/19に公開

読んだ本

https://www.amazon.co.jp/「プロになるためのWeb技術入門」-――なぜ、あなたはWebシステムを開発できないのか-小森-裕介/dp/4774142352?crid=1B39CD3L8VAT8&keywords=web技術入門&qid=1676809642&sprefix=web技術%2Caps%2C167&sr=8-1&linkCode=li2&tag=hironobu0824-22&linkId=6dcdd613289860d6ac32545cbb2efd64&language=ja_JP&ref_=as_li_ss_il

対象読者

  • Web技術を学びたくて、本の購入などを検討されている方
  • 買うつもりはないが、「プロになるためのWeb技術入門」がどういう本か気になる方
  • 会社の新卒社員に読ませたい本を検討している方

概要

0. プロローグ

本書の目的や価値について述べている章。
Webアプリケーションを言語やフレームワークを用いて作ることができても、Webの仕組みを理解していないと障害が起きた時に本質的な解決をすることができない。
本書でWebアプリケーションの知識を身につければ、上の問題を避けることができる。

1. Webアプリケーションとは何か

デスクトップアプリとWebアプリを比較して、特徴を整理する。5ページのみの短い章。

デスクトップアプリケーション Webアプリケーション
処理の主体 手元のPC サーバ
画面表示 OS上で表示 Webブラウザ上で表示
インストール 必要 不要

2. Webはどのように発展したか

Webにまつわる歴史を概観している章。
WWWの誕生やブラウザの普及などのインターネットの歴史と、CGIからサーブレット、JSP、フレームワークへと発展していくWebアプリケーションの歴史について述べている。
最初に "必ずしも必要な知識ではないので読み飛ばしても構わない" と書かれているが、

  • WWWやURL、通信プロトコルなどの説明がなされている
  • CGIやサーブレット、JSPなどについて説明があり、その後の章で何度も登場するので、Javaに馴染みがない人は読まないと後でわからなくなる。

という2点の理由から読み飛ばさない方が良さそう。

3. HTTPを知る

HTTPの基本的なやり取りについて説明している章。
横取り丸InetSpy というツールを使って、HTTPのリクエストとレスポンスの中身を見ている。(デベロッパーツールのNetworkのところで見れるのでそれで確認すればいいが)。
IPアドレスや、DNS、ポート番号などのインターネットの通信の流れや、GETメソッドとPOSTメソッドの違いなど。

4 CGIからWebアプリケーション

主にCookieとセッションの考え方について説明している章。
PHPで宅配ピザの注文サイトを作りながらになっている。
Cookieとセッションについては手厚い説明になっていて分かりやすい。
PHPになじみのない人は、あまりコードは気にせず、要点だけを拾う気持ちで読めば良さそう。

5 Webアプリケーションの構成要素

Webサーバ、アプリケーションサーバ、データベースサーバの三層構成について説明している章。
SQLについても軽く触れている。第二章で触れたCGIやサーブレット、JSPの場合はどういう構成になっているかなどの説明がある。
Webサーバとアプリケーションサーバの連携について、Javaで用いるTomcatやmod_jkについて触れており、Javaに馴染みがないと分かりづらい部分はあるが、三層構成についてイメージをつかめれば良さそう。

6 Webアプリケーションを効率よく開発するための仕組み

アーキテクチャやフレームワークについて扱う章。
ここでもJavaを例に話が進み、フォワードとリダイレクトの違いや、リクエストスコープとセッションスコープの違い、DAOやO/Rマッパなどにも触れる。
ページ数が多く、本書の中では内容的にも比較的難しい。

7 セキュリティを確保するための仕組み

代表的なWebアプリケーションへの攻撃手法とその対策について説明している章。
具体的には以下のような攻撃手法について扱う。

  • SQLインジェクション
  • クロスサイトスクリプティング
  • セッションハイジャック
  • クロスサイトリクエストフォージェリ
  • 強制ブラウズ
  • ディレクトリトラバーサル

また、攻撃手法ではないが、ブラウザバックやダブルサブミットによる誤動作を防ぐ方法などにも触れている。

全体の感想

分量的にも多過ぎず、説明もわかりやすいので、初学者がWebに関する勉強をするには良いと思う。
説明だけでなくコードも交えた説明になっているが、実際に手を動かしながらというわけではなさそう。
この本だけではWebの知識は十分ではないが、中級者向けの本を読む前になんとなくのイメージを掴むのに良い。

https://www.amazon.co.jp/「プロになるためのWeb技術入門」-――なぜ、あなたはWebシステムを開発できないのか-小森-裕介/dp/4774142352?crid=1B39CD3L8VAT8&keywords=web技術入門&qid=1676809642&sprefix=web技術%2Caps%2C167&sr=8-1&linkCode=li2&tag=hironobu0824-22&linkId=6dcdd613289860d6ac32545cbb2efd64&language=ja_JP&ref_=as_li_ss_il

GitHubで編集を提案

Discussion