プロになるためのシリーズ『プロになるためのWeb技術入門』
――なぜ,あなたはWebシステムを開発できないのか
――なぜ,
2010年4月10日紙版発売
2021年12月10日電子版発売
小森裕介 著
B5変形判/288ページ
定価2,508円(本体2,280円+税10%)
ISBN 978-4-7741-4235-7
書籍の概要
この本の概要
『なぜあなたはJavaでオブジェクト指向開発できないのか』の著者である小森祐介氏の新刊です。Webアプリケーションの開発方法を,インターネットの仕組みの根本原理から,じっくり解説します。Webアプリケーションとは何か?――という根本的な問いかけから始まり,基礎の基礎をかためつつ,本物の実力を養成することを目標に内容を構成しています。これにより一貫した流れでWebアプリケーション開発の真髄を学ぶことができます。図解をたくさん用意しましたので,これで直感的に楽しく理解も進むようになっています。
こんな方におすすめ
- Webアプリケーションの基礎の基礎を学びたい方
- Webのしくみを根本的に知りたい方
この書籍に関連する記事があります!
- ロングセラーで売れ続ける理由
- 『プロになるためのWeb技術入門――なぜあなたはWebシステムを開発できないのか』は,発売開始以来,AmazonでのIT書籍ランキングで570日以上100位以内にランキングされ,2011年のBest Book of 2011コンピュータ書籍で総合13位を達成しました。
本書のサンプル
本書の一部ページを,PDFで確認することができます。
- サンプルPDFファイル(660KB)
目次
LESSON 0 はじめに
- 市民権を得た「Webアプリケーション」
- 「Webアプリケーション」開発の難しさ
- 「Webアプリケーション」の開発技術はどこで学べる?
- なぜ,あなたはWebアプリケーション開発技術を学べないのか
- 本書の対象読者
- 本書を読む上での想定知識
- 最も効率よく「技術」を学ぶ方法
LESSON 1 「Webアプリケーション」とは何か
- 1.1 デスクトップアプリケーション
- 1.2 Webアプリケーション
- 1.3 まとめ
LESSON 2 Webはどのように発展したか
2.1 WWWの誕生と普及
- 世界中のコンピュータを結ぶインターネット
- インターネット普及の立役者・World-Wide WebとMosaic
- WWWの誕生
- 現代Webブラウザの祖先・NCSA Mosaic
2.2 Webを支える技術の発明
- WebサーバとWebクライアント
- なぜ,クライアントとサーバに分けるのか
- コラム 「クライアント」と「サーバ」偉いのはどっち?
- 「そのリソースはどこにある?」- URL
- HTTP
- コラム インターネットに公開された技術仕様・RFC
2.3 CGIの誕生
- 動的なコンテンツへの要求
- CGIの誕生
- Webの爆発的な普及
2.4 サーブレットの登場
- CGIにまつわる問題点
- Java/サーブレットの誕生
- Javaでアプリケーションを開発することの利点
- コラム 早すぎた技術,Javaアプレット
2.5 JSPの誕生
- サーブレットの問題点
- 発想の逆転!JSPの誕生
2.6 Webアプリケーションフレームワークの時代
- サーブレットやJSPの問題点
- Webアプリケーションフレームワークの誕生
2.7 まとめ
LESSON 3 HTTPを知る
3.1 HTTPの知識はなぜ必要か
- コラム ハードウェアさえも信じられない事態!?
3.2 WebブラウザとWebサーバの通信をのぞいてみよう
- 横取り丸とInetSpyのインストール
- HTTP通信をのぞいてみよう
- HTTPリクエストをのぞく
- コラム URL とURI は何が違うのか?
- HTTPレスポンスをのぞく
- HTTPでは1回で1つのリソースを取得
- ファイル名を省略した場合のリクエスト
3.3 情報はどうやってインターネットの大海原を越えるのか
- インターネット上の住所・IPアドレス
- IPアドレスを頼りに情報を届けるTCP/IP
- IPアドレスは誰が決めるのか
- グローバルIPアドレスとプライベートIPアドレス
- コラム IPアドレスと個人情報
- ホスト名をIPアドレスに変換するDNS
- DNSはどのようにして実現されるのか
- ホスト内の宛先を決定するポート番号
3.4 Webサーバへの要求をどのように伝えるか
- GETメソッドによるパラメータ渡し
- アプリケーション側でのパラメータの受け取り
- POSTメソッドによるパラメータ渡し
- GETとPOSTどちらを使えばよい?
- 日本語はどのようにして渡せばよいか
3.5 まとめ
LESSON 4 CGIからWebアプリケーションへ
4.1 宅配ピザ注文サイトを作ろう
4.2 画面構成を考える
- コラム 実際のWebシステム開発の流れ
4.3 画面モックを作ろう
4.4 ログイン認証機能を作成する
- PHPで認証機能を作ろう
- 認証機能の動作を確認しよう
- リダイレクト動作のHTTP通信を確認しよう
- コラム PHPはどのように実行されるのか?CGIとモジュールの違い?
4.5 ログイン状態をどのようにして記憶するのか
- ステートフルなプロトコルとステートレスなプロトコル
- ステートレスなHTTP上で状態をどのように表現するか
- Cookieを利用して状態を保持する
- Cookie利用の実際を確認する
4.6 安全に状態を保存するための技術 ?セッション?
- Cookieにまつわる問題点
- コラム Cookieはどこに保存されている?
- 銀行の窓口業務でセッションを理解しよう
- 口座開設業務の進行状況をどのように管理するか
- セッションで処理の進行状況を管理する
- セッションの状態をどこで保持するか
- HTTPにおけるセッションIDの受け渡し方法
- セッションID利用の実際を確認する
- セッションIDによるユーザの識別
4.7 ピザ・ペントミノの完成
- コラム Webサーバによる認証機能 ?Basic認証?
4.8 まとめ
LESSON 5 Webアプリケーションの構成要素
- なぜWebアプリケーションの構成を理解しなければならないのか
- コラム コンピュータは「節」?
5.1 WebサーバとWebクライアントの時代
- WWWの黎明期
- CGIの時代
- コラム ソフトウェア? プログラム? アプリケーション? サーバ?
5.2 データベースサーバの登場
- 大量の情報をどのようにして管理するか
- データベース管理システムの登場
- コラム DB? DBMS? RDBMS?
- データベースに対する操作
- データベースによる情報の管理
- コラム データベース設計はITシステムの要
- データベースから情報を抽出する
- 必要な情報をSQLでデータベースへ伝える
- コラム データベースに対するCRUD操作とSQL文の関係
- データベースとクライアントの関係
- データベースサーバの分離
- Webアプリケーションとデータベースの通信
- コラム 代表的なデータベース製品
5.3 アプリケーションサーバの登場
- ServletやJSPはどこで動いているのか
- Servlet / JSPを動かすためのアプリケーションサーバ
- Webサーバとアプリケーションサーバの連携
- Webサーバとアプリケーションサーバの分担
- Webサーバとアプリケーションサーバ連携のメリット
- 複数のTomcatへの転送
- Webサーバの機能を持ったアプリケーションサーバ
- コラム アプリケーションサーバの提供する機能
5.4 Webシステムの三層構成
- 最小構成のWebシステム
- 一般的な構成
- Webシステムの三層構成
- コラム 現代のWebシステムを支えるオープンソース
5.5 まとめ
LESSON 6 Webアプリケーションを効率よく開発するための仕組み
6.1 サーブレット/JSPだけではいけないのか
- Webアプリケーション開発のスタンダード・Java
- サーブレットとJSPの連携
6.2 サーブレット/JSPで「ピザ・ペントミノ」のログイン処理を実現する
- JSPによるログイン画面の表示
- サーブレットの呼び出し
- ログインサーブレットの処理
- フォワードとリダイレクトの違い
- リクエストスコープにおける情報の受け渡し
- JSPにおけるリクエストスコープからの情報の取り出し
- なぜリクエストスコープが必要なのか
- セッションスコープとリクエストスコープの違い
- コラム さまざまなセッションの実現方法
6.3 Webアプリケーションのアーキテクチャ
- ロジックとデザインの分離
- ソフトウェアの建築様式
- コラム カスタムタグとJSTL
- 「ピザ・ペントミノ」の構造を俯瞰しよう
- MVCモデルによるWebアプリケーションのアーキテクチャ
- MVCモデルによる処理の流れ
6.4 フレームワークによるアーキテクチャの実現
- フレームワークとは何か
- StrutsによるMVCモデルの実現
- Strutsによる「ピザ・ペントミノ」のログイン処理
- JSPからのログイン処理アクションの呼び出し
- コラム Javaを部品化するための仕組み - Java Beans -
- ログイン処理アクションでのログインチェック処理
- 商品一覧画面への遷移
6.5 レイヤパターンによるデータアクセス層の分離
- モデルをどのように実現するか
- JDBCによるデータベースからの情報の取得
- レイヤパターンによるデータアクセス層の分離
- DAOパターンによるデータアクセス層の実現
6.6 O/Rマッピングフレームワークによるデータアクセス層の実現
- O/Rマッピングフレームワークの必要性
- RDBとオブジェクトのインピーダンス・ミスマッチ
- iBATISによるO/Rマッピングの実際
- Data MapperとSQLマップファイルによるO/Rマッピング処理
- Dao Frameworkを利用したDAOの作成
6.7 フレームワーク利用におけるメリットとデメリット
- フレームワーク利用のメリット
- フレームワーク利用のデメリット
6.8 まとめ
LESSON 7 セキュリティを確保するための仕組み
7.1 なぜセキュリティを確保しなければならないのか
- Webアプリケーションが守るべきセキュリティ
7.2 代表的なWebアプリケーションの攻撃手法とその対策
- SQLインジェクション
- クロスサイトスクリプティング(XSS)
- セッションハイジャック
- コラム SSLによる通信路の暗号化
- クロスサイトリクエストフォージェリ
- コラム セキュリティの陰の立役者・ハッシュ関数
- 強制ブラウズ
- ディレクトリトラバーサル
- コラム より安全な認証方式?Digest認証?
7.3 設計・実装ミスに起因する誤動作やセキュリティ問題を防ぐための対策
- 「戻る」ボタン対策
- ダブルサブミット対策
- hiddenタグに重要な情報を持たせない
- デバッグ情報を出力させない
- グローバル変数に情報を持たせない
7.4 まとめ
- 謝辞
LESSON 8 おわりに
LESSON 9 付録
9.1 参考書籍・サイト
- Lesson 0
- Lesson 2
- Lesson 3
- Lesson 4
- Lesson 5
- Lesson 6
- Lesson 7
この本に関連する書籍
-
[改訂新版]プロになるためのWeb技術入門
なぜWebシステムをうまく作ることができないのか?――本書は2010年に初版が発行されました。Webに携わるエンジニアだけでなく,Webマーケティング担当者にいたるまでWeb...
-
図解即戦力 Web技術がこれ1冊でしっかりわかる教科書
本書は,Web開発やインフラ運用におけるWeb関連技術の基本知識と重要なテーマを初心者でも理解できるよう,図解でわかりやすくまとめた1冊です。TCP/IPやHTTPなどのプロ...
-
Webサーバを作りながら学ぶ 基礎からのWebアプリケーション開発入門
Webアプリ開発には幅広い知識と,多様な技術を使いこなせることが求められます。HTTP・Webサーバ・サーブレット・JSP・Cookie・セッション・プロキシサーバ・TLS・認証...
-
過負荷に耐えるWebの作り方―― 国民的アイドルグループ選抜総選挙の舞台裏
恒例となった国民的アイドルグループ選抜総選挙。このウェブ投票システムに求められるものは非常にシビアな条件である。秒間10000アクセス,不正が行われないこと,そし...
-
Mapion・日本一の地図システムの作り方
日本オリジナルの地図サービスを開発し,月間6000万PV超える莫大なアクセスを捌くWebサービスを運営するマピオン。本書は同社の技術を余すことなく公開する。「大量アク...
-
Webを支える技術 ―― HTTP,URI,HTML,そしてREST
Webは誕生から20年で爆発的な普及を果たし,17億人のユーザと2億台のサーバを抱える巨大システムへと成長しました。Webがここまで成功した秘密は,その設計思想,いわゆ...
-
ゼロからわかるPHP超入門
Webプログラマの第一歩となれるようWebの仕組みからPHP(PHP 5)の言語仕様を中心に重要な説明だけを厳選しています。やさしく解説しているため,コンパクトで,読みや...
-
なぜ,あなたはJavaでオブジェクト指向開発ができないのか
Javaプログラミング言語習得において,新人プログラマーの最初の障害は「オブジェクト指向の壁」です。本書は,Javaのソフトウェア開発を中心に事業を発展させてきたア...