【書評】プロになるためのWeb技術入門
読んだ本
対象読者
- 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の知識は十分ではないが、中級者向けの本を読む前になんとなくのイメージを掴むのに良い。
Discussion