Zuck3r’s Study

エンジニアではありません

「プロになるためのweb技術入門」を読みました(後編)

 初めに

これは少し前に書いた記事の後編です。

「プロになるためのweb技術入門」を読みました(前編) - Zuck3r’s Study

「プロになるためのWeb技術入門」 ――なぜ、あなたはWebシステムを開発できないのか

「プロになるためのWeb技術入門」 ――なぜ、あなたはWebシステムを開発できないのか

本題

後編という事で、今回はLesson5~7を触れていきたいと思います

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

この章は、Webアプリケーションを構成するサーバの種類やその役割に対する説明でした。DBサーバや、APサーバ、Webサーバについてです。APサーバだとTomcat、DBサーバだとMYSQLやポスグレなどを知っていたので理解しやすかったです。個人的に曖昧になっていた、WebサーバとAPサーバの役割をはっきりできたので良かったです。前者は静的コンテンツへのリクエストがメインで、後者は動的コンテンツのリクエストがメインといった感じです。

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

この章が最も内容が多いと思います。なので、個人的に理解が深まった部分いくつかを紹介したいと思います。
まずは、MVCモデルの詳細についてです。「Model,View,Controler」程度の知識はありましたが、詳しくはどうして分けて、何を分割しているのは曖昧でした。しかし、この章を読み、モデルは主にアプリケーションの処理、ビューはモデルによる処理結果の画面への表示を、コントローラは画面からの情報の入力と、モデルの呼び出し、そしてその結果に従ったビューの呼び出しを担当するといった風に分かりました。

f:id:Zuck3r:20190925013726p:plain
MVC Model
また、O/Rマッピングフレームワークによるデータアクセス層の実現では、どのようにDBサーバからSQLを使いほしい情報を取ってくるのか分かり易く解説してありました。

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

CTFのWeb問の解説見たりしているので、それなりに知っている脆弱性が多かったです。(SQLiやXSS...)。CSRFは何となくしか理解していなかったのですが、丁寧に説明しており分かり易かったです。ワンタイムトークンの利用には”だからか”と思わされました。このワンタイムトークン、注文ボタンを押した後、戻るボタンを押して、再度注文ボタンを押してしまった際の多重注文の対策にも使われていると知り、何故そういった事が回避されているのか分かりました。

f:id:Zuck3r:20190925013525p:plain
CSRFの概要

最後に

Webアプリケーションについて、思っていたよりも丁寧に分かりやすく書いてあって良かったです。これから、Webを学んでいくぞ。という方にはおススメの一冊だと思います。何か挙げるのであれば、本の内容で使うブラウザがIE準拠なので少し古く感じることだと思いました。基本的なWeb技術を学ぶという点では問題ありませんでした。