プロになるためのWeb技術入門―なぜ、あなたはWebシステムを開発できないのか 改訂新版 [単行本]
    • プロになるためのWeb技術入門―なぜ、あなたはWebシステムを開発できないのか 改訂新版 [単行本]

    • ¥3,960119 ゴールドポイント(3%還元)
    • 在庫あり2025年7月17日木曜日までヨドバシエクストリームサービス便(無料)がお届け
100000009003947319

プロになるためのWeb技術入門―なぜ、あなたはWebシステムを開発できないのか 改訂新版 [単行本]



ゴールドポイントカード・プラスのクレジット決済で「書籍」を購入すると合計12%ゴールドポイント還元!合計12%還元書籍の購入はゴールドポイントカード・プラスのクレジット決済がお得です。
通常3%ゴールドポイント還元のところ、後日付与されるクレジット決済ポイント(1%)と特典ポイント(6%)、さらにご利用明細WEBチェックにご登録いただくと2%追加して合計12%ゴールドポイント還元!詳しくはこちら

価格:¥3,960(税込)
ゴールドポイント:119 ゴールドポイント(3%還元)(¥119相当)
フォーマット:
お届け日:在庫あり今すぐのご注文で、2025年7月17日木曜日までヨドバシエクストリームサービス便(無料)がお届けします。届け先変更]詳しくはこちら
出版社:技術評論社
販売開始日: 2024/11/28
お取り扱い: のお取り扱い商品です。
ご確認事項:返品不可
店舗受け取りが可能です
マルチメディアAkibaマルチメディア梅田マルチメディア博多にて24時間営業時間外でもお受け取りいただけるようになりました

プロになるためのWeb技術入門―なぜ、あなたはWebシステムを開発できないのか 改訂新版 の 商品概要

  • 要旨(「BOOK」データベースより)

    なぜWebシステムをうまく作ることができないのか?―本書は2010年に初版が発行されました。Webに携わるエンジニアだけでなく、Webマーケティング担当者にいたるまでWebの仕組みを根本から理解するための技術書として多くの方々に利用されました。それから10数年の月日が流れ、本書の特徴である技術の根本をていねいに解説するスタイルはそのままにアップデートを図りました。最新のWeb技術を取り入れて全面改訂です。さらに技術を学ぶ上でのさまざまな悩みを解消し、エンジニアとして成長していく手がかりをふんだんに盛り込みました。もちろんサンプルアプリケーションプログラムを試しながら理解を深めていく工夫もしています。本書によって本質をとらえるプロの技術力も得てください。
  • 目次

    ■第1章 技術の学び方
    1.1 技術の学びはなぜ難しくなったのか
     1.1.1 要件の多様さと複雑さ
     1.1.2 技術的選択肢の増加と進化
     1.1.3 クラウドサービスの普及による要求スキルの広がり
    1.2 「技術の引き出し」を作ろう
     1.2.1 歴史を知って「点」の理解を「線」にする
     1.2.2 技術のつながりを把握して「線」の理解を「面」にする
     1.2.3 技術の「面」を階層としてとらえ「立体」的に理解する
    ■第2章 Webシステムの全体像
    2.1 Webシステムの構造
    2.2 Webコンテンツ
    2.3 クライアントサイドの構成要素
     2.3.1 デバイス
     2.3.2 Webブラウザ
     2.3.3 HTTPクライアント
     2.3.4 レンダリングエンジン
     2.3.5 JavaScriptエンジン
    2.4 サーバサイドの構成要素
     2.4.1 Webサーバ
     2.4.2 Webアプリケーションのはじまり
     2.4.3 Webアプリケーションの実行方式
     2.4.4 Webアプリケーションのソフトウェアスタック
    2.5 ネットワークとインターネット
     2.5.1 大量アクセスをさばくロードバランサ
     2.5.2 CDNで縮まる世界
     2.5.3 ネットワークに対する理解は必要か
    2.6 Webシステムの実行環境と開発環境
     2.6.1 クライアントサイドの実行環境
     2.6.2 サーバサイドの実行環境
     2.6.3 Webシステムの開発環境
    2.7 Webシステムを実現するための技術

    ■第3章 WWWの基本要素とその発展
    3.1 World Wide Webの始まり
     3.1.1 WWWの基本要素
     3.1.2 連続的変化の維持
    3.2 URIとハイパーリンク
     3.2.1 Memexとザナドゥ
     3.2.2 リンクの単純化
     3.2.3 ハイパーメディアの実現
    3.3 HTTP
     3.3.1 HTTPを試してみよう
     3.3.2 HTTP設計時の工夫
     3.3.3 スキーム
     3.3.4 フォーマットネゴシエーション
    3.4 SGMLから生まれたHTML
     3.4.1 汎用マークアップ言語・SGML
     3.4.2 SGMLと文書構造
     3.4.3 論理構造と体裁の分離
    3.5 CSSによる視覚情報の分離
     3.5.1 WWWの普及とブラウザ戦争
     3.5.2 CSSの考え方
     3.5.3 CSSのさまざまな指定方法
     3.5.4 さまざまなCSSセレクタ
    3.6 データ構造を記述するXML
     3.6.1 データ表現に適さないHTML
     3.6.2 XMLの登場
     3.6.3 スキーマによるデータ構造の規定
     3.6.4 XHTMLの登場と衰退
    3.7 HTML5策定とHTML Living Standardへの統一
     3.7.1 WHATWGの発足
     3.7.2 HTML 5の登場
     3.7.3 HTML Living Standardへの統一
    ■第4章 HTTPクライアントとHTTPサーバ
    4.1 Webアプリケーションの根本を学ぼう
     4.1.1 フレームワークに隠されたWebアプリケーションの本質
     4.1.2 Webアプリケーションの根本はシンプル
    4.2 最小のHTTPサーバを実現する
     4.2.1 ncコマンドで実現するHTTPサーバ
     4.2.2 リクエストの待ち受け
     4.2.3 レスポンスの返却
     4.2.4 パイプによるサーバ実行の効率化
    4.3 レンダリングエンジンの働きを確認する
     4.3.1 レスポンスを保存してブラウザで開く
     4.3.2 HTMLファイルの準備
    4.4 HTTPクライアントをブラウザに変更する
     4.4.1 仕組みを理解して問題解決に役立てよう
     4.4.2 正しいレスポンスを返す
    4.5 動的なコンテンツの生成
     4.5.1 fortuneコマンドによる動的コンテンツ
     4.5.2 CGIの登場
     4.5.3 テンプレートエンジンの元祖・SSI
     4.5.4 テンプレートエンジンへの進化
    4.6 Webアプリケーションへの発展
    ■第5章 URLとHTTP
    5.1 URLの基本構造
     5.1.1 スキーム
     5.1.2 ホスト
     5.1.3 パス
    5.2 URLの詳細構造
     5.2.1 ユーザとパスワード
     5.2.2 ポート
     5.2.3 オーソリティ
     5.2.4 クエリ
     5.2.5 フラグメント
     5.2.6 URLに使える文字
     5.2.7 パーセントエンコーディング
    5.3 HTTPの基本
     5.3.1 HTTPリクエスト
     5.3.2 HTTPレスポンス
    5.4 HTTPリクエストの実践
     5.4.1 サーバが受信したリクエストを確認しよう
     5.4.2 GETリクエストの確認
     5.4.3 POSTリクエストの確認
     5.4.4 Content-Typeによる送信形式の違い
     5.4.5 GETとPOSTの使い分け
    ■第6章 従来型のWebアプリケーション
    6.1 GoによるWebアプリケーション
    6.2 Goによる簡単なWebサーバの作成
     6.2.1 文字列を返すアプリケーション
     6.2.2 ファイルの内容を返すアプリケーション
    6.3 ToDoアプリケーションで学ぶ基礎
     6.3.1 アプリケーション本体(main.go)
     6.3.2 テンプレートファイル(todo.html)
     6.3.3 ToDo項目の追加
    6.4 Webアプリケーションの画面遷移
     6.4.1 画面遷移の問題点
     6.4.2 リダイレクトによる安全な画面遷移
     6.4.3 Post-Redirect-Getの実装
     6.4.4 Post-Redirect-Getの動作確認
    6.5 Webアプリケーションの状態管理
     6.5.1 ステートレスなHTTP
     6.5.2 ブラウザの情報保管庫「クッキー」
     6.5.3 セッションの考え方
     6.5.4 セッションの実装
     6.5.5 セッション管理不備の危険性
    6.6 セッションとユーザ管理
     6.6.1 ユーザ認証の必要性
     6.6.2 ユーザ認証に対応したTiny ToDo
    6.7 ユーザ認証の実装
     6.7.1 セッション情報を保持する構造体
     6.7.2 セッションを管理する構造体
     6.7.3 ユーザ情報を保持する構造体
     6.7.4 ログイン画面の表示
     6.7.5 /loginのリクエストハンドラ
     6.7.6 認証処理
     6.7.7 Post-Redirect-Getでのメッセージ受渡
     6.7.8 ハッシュ値によるパスワードの照合
     6.7.9 認証のチェック
    6.8 Webアプリケーションの複雑性をカバーするフレームワーク
     6.8.1 Webアプリケーションの複雑さ
     6.8.2 Webアプリケーションフレームワークが提供する機能
     6.8.3 Webアプリケーション・フレーワークの裏側を知ろう
    ■第7章 SPAへの進化
    7.1 SPAへの潮流
     7.1.1 従来型Webアプリケーションの問題点
     7.1.2 Ajaxによるブレイクスルー
    7.2 JavaScriptの起源と発展
     7.2.1 JavaScriptの誕生
     7.2.2 クライアントサイドJavaScriptとサーバサイドJavaScript
     7.2.3 簡単なクライアントサイドJavaScript
     7.2.4 Document Object Model
     7.2.5 イベントドリブンプログラミング
     7.2.6 JavaScriptの不遇
     7.2.7 JavaScriptの発展
    7.3 Tiny ToDoのUIを改善する
     7.3.1 編集のUIを考える
     7.3.2 JavaScriptによる編集UIの改善
    7.4 サーバとの非同期通信
     7.4.1 form要素によるPOSTリクエストの送信
     7.4.2 同期通信と非同期通信
     7.4.3 XMLHttpRequestによる非同期通信
     7.4.4 Fetch APIによる非同期通信
    7.5 Tiny ToDoに非同期通信を実装する
     7.5.1 ToDoリストの管理方法を改善する
     7.5.2 Fetch APIによるToDoの更新
     7.5.3 編集処理の実装
     7.5.4 編集処理の動作確認
    7.6 JSONによるデータ交換
     7.6.1 XMLとJSON
     7.6.2 ToDoの追加をJSONでやりとりする
     7.6.3 ToDoリストをJSONで返す
     7.6.4 SPA化されたTiny ToDoの動作確認
    7.7 フラグメントによる状態の表現
     7.7.1 変化しないURLの課題
     7.7.2 フラグメントによる状態表現
     7.7.3 Tiny ToDoでのフラグメント活用
    7.8 SPAの課題とサーバサイドレンダリング
     7.8.1 初期のSPAが抱えた課題
     7.8.2 History APIによる画面遷移とルータ
     7.8.3 サーバサイドレンダリングへの回帰
    ■第8章 Web API
    8.1 APIのWeb化
     8.1.1 URLの役割の変化
     8.1.2 APIとはなにか
     8.1.3 ネットワーク越しのAPI
     8.1.4 SOAPに頼らないWeb APIの課題
    8.2 REST
     8.2.1 RESTの登場と論争
     8.2.2 RESTとWeb API
    8.3 リソース指向アーキテクチャ
     8.3.1 アドレス可能性
     8.3.2 接続性
     8.3.3 統一インターフェース
     8.3.4 ステートレス性
     8.3.5 RESTful Web API
    8.4 Tiny ToDoのWeb API設計
     8.4.1 ToDoのリソース設計
     8.4.2 リソースに対する操作の抽出
     8.4.3 ToDoリストの取得
     8.4.4 ToDo項目の新規追加
     8.4.5 ToDo項目の編集
     8.4.6 ToDo項目の削除
     8.4.7 Tiny ToDo Web API仕様のまとめ
     8.4.8 HTTPメソッドとCRUD
     8.4.9 HTTPメソッドの「安全」と「べき等」
    8.5 Tiny ToDoのWeb API化
     8.5.1 ToDoの追加
     8.5.2 ToDoの編集
     8.5.3 サーバサイドのWeb API化
     8.5.4 パスパラメータの解析
    8.6 Web APIの公開
     8.6.1 Web APIを直接呼び出す
     8.6.2 API公開で広がるWebの世界
     8.6.3 クロスオリジン通信
     8.6.4 同一オリジンポリシー
     8.6.5 CORSによるクロスオリジン制限の回避
     8.6.6 CORSに対応したTiny ToDo
    8.7 再注目されるRPCスタイル
     8.7.1 APIの粒度
     8.7.2 小粒度APIの課題
     8.7.4 GraphQL
    ■第9章 サーバプッシュ技術
    9.1 サーバプッシュ技術の歴史
     9.1.1 メタリフレッシュによる疑似サーバプッシュ
     9.1.2 通信量の削減
     9.1.3 Ajaxによるポーリング
     9.1.4 Comet(ロングポーリング)
    9.2 Server-sent eventsによるプッシュ配信
     9.2.1 チャンク転送
     9.2.2 Server-sent events
    9.3 Server-sent eventsの実践
     9.3.1 Tniy ToDoをSSEに対応させる
     9.3.2 SSEの実装(クライアント側)
     9.3.3 SSEの実装(サーバ側)
    9.4 WebSocket

     9.4.1 WebSocketの登場
     9.4.2 WebSocketの概要
     9.4.3 WebSocketのハンドシェイク
    9.5 WebSocketの実践
     9.5.1 WebSocket通信の確認
     9.5.2 WebSocketの実装(クライアント側)
     9.5.3 WebSocketの実装(サーバ側)
     9.5.4 WebSocketの課題
    ■付録A コンピュータの基礎
    A.1 2進数と16進数
     A.1.1 2進数を扱いやすく表現する16進数
     A.1.2 16進数の利用例
    A.2 テキストとバイナリ
     A.2.1 テキストデータとバイナリデータ
     A.2.2 テキストデータの符号化方式
     A.2.3 テキストとバイナリの効率
    A.3 文字コード
     A.3.1 文字の取り扱いの難しさ
     A.3.2 符号化文字集合
     A.3.3 フォント
     A.3.4 Unicode
     A.3.5 文字符号化方式(エンコーディング)
     A.3.6 文字符号化方式はなぜ生まれたか
     A.3.7 改行コード
    A.4 Base64エンコーディング
    A.5 ハッシュ値
     A.5.1 ハッシュ関数の特徴
     A.5.2 ハッシュ値の用途
    A.6 IPアドレスとドメイン名
     A.6.1 IPv4アドレスとIPv6アドレス
     A.6.2 ドメイン名とDNS
    A.7 TCP/IP
     A.7.1 通信レイヤ
     A.7.2 TCPコネクション
     A.7.3 UDP
     A.7.4 ポートとファイアウォール
    A.8 標準入力と標準出力
    A.9 構造化データの表現
     A.9.1 CSV/TSV
     A.9.2 プロパティファイル/INIファイル
     A.9.3 XML
     A.9.4 JSON
     A.9.5 YAML
    ■付録B WSLのインストール
    B.1 環境の確認
     B.1.1 Windowsのバージョン確認
     B.1.2 仮想化支援機能の有効化確認
    B.2 WSLのインストールと実験の準備
     B.2.1 WSLとUbuntuのインストール
     B.2.2 ncコマンドのエイリアス設定
    B.3 WSLの使い方
     B.3.1 WSLの起動と終了
     B.3.2 ディストリビューションの再インストール
    ■付録C Go言語入門
    C.1 Goのインストール方法
     C.1.1 Windows環境へのインストール
     C.1.2 macOS環境へのインストール
    C.2 はじめてのGoプログラム
     C.2.1 hello, worldを表示するプログラム
     C.2.2 プログラムの実行
     C.2.3 実行ファイルのビルド
     C.2.4 Goプログラムの基本要素
     C.2.5 A Tour of Go
     C.2.6 Go Playground
    C.3 Go学習時の注意点
    ■付録D 補足資料
    D.1 telnetコマンドのインストール方法
     D.1.1 Windows環境へのインストール
     D.1.2 macOS環境へのインストール
    D.2 サンプルコードのダウンロードと実行
     D.2.1 サンプルコード
     D.2.2 サンプルコードの実行
     D.2.3 利用ポートが重複して起動できないときの対処
     D.2.4 プログラムを修正したときの実行方法

     おわりに
     謝辞
     索引
  • 内容紹介

    なぜWebシステムをうまく作ることができないのか?――本書は2010年に初版が発行されました。Webに携わるエンジニアだけでなく、Webマーケティング担当者にいたるまでWebの仕組みを根本から理解するための技術書として多くの方々に利用されました。それから10数年の月日が流れ、本書の特徴である技術の根本をていねいに解説するスタイルはそのままにアップデートを図りました。最新のWeb技術を取り入れて全面改訂です。さらに技術を学ぶ上でのさまざまな悩みを解消し、エンジニアとして成長していく手がかりをふんだんに盛り込みました。もちろんサンプルアプリケーションプログラムを試しながら理解を深めていく工夫もしています。本書によって本質をとらえるプロの技術力も得てください。
  • 著者紹介(「BOOK著者紹介情報」より)(本データはこの書籍が刊行された当時に掲載されていたものです)

    小森 裕介(コモリ ユウスケ)
    キャディ株式会社勤務。ソフトウェアエンジニアとして、製造業の変革を目指す自社サービスの開発・運用に携わる。2000年、東京工業大学(現・東京科学大学)工学部情報工学科卒業。進学と就職で悩み「研究よりも実際に役に立つソフトウェアを創りたい」という思いから、就職を決意。独立系システム開発会社を経て、2009年にウルシステムズ株式会社へ入社。エンタープライズ系を中心としたシステム開発、技術支援、プロジェクトマネジメント支援を幅広くこなしつつ、新人技術研修の企画・講師を担当し、若手育成にも携わる。2019年、「世界中の人々に使ってもらえるプロダクトを開発する」という夢を追いかけて、LINE株式会社(現・LINEヤフー株式会社)に入社、金融系サービスの新規開発に携わった後、2022年より現職
  • 著者について

    小森 裕介 (コモリ ユウスケ)
    キャディ株式会社 勤務。ソフトウェアエンジニアとして、製造業の変革を目指す自社サービスの開発・運用に携わる。 2000年、東京工業大学(現・東京科学大学)工学部情報工学科卒業。進学と就職で悩み「研究よりも実際に役に立つソフトウェアを創りたい」という思いから、就職を決意。独立系システム開発会社を経て、2009年にウルシステムズ株式会社へ入社。エンタープライズ系を中心としたシステム開発、技術支援、プロジェクトマネジメント支援を幅広くこなしつつ、新人技術研修の企画・講師を担当し、若手育成にも携わる。 2019年、「世界中の人々に使ってもらえるプロダクトを開発する」という夢を追いかけて、LINE株式会社(現・LINEヤフー株式会社)に入社、金融系サービスの新規開発に携わった後、2022年より現職。■著書 『プロになるためのWeb技術入門―なぜ,あなたはWebシステムを開発できないのか』(2010年、技術評論社)等。 SoftwareDesign誌 連載『Google Cloudで実践するSREプラクティス』監修・執筆(2023年、技術評論社) ほか、雑誌寄稿多数。

プロになるためのWeb技術入門―なぜ、あなたはWebシステムを開発できないのか 改訂新版 の商品スペック

商品仕様
出版社名:技術評論社
著者名:小森 裕介(著)
発行年月日:2024/12/11
ISBN-10:4297145715
ISBN-13:9784297145712
判型:B5
対象:専門
発行形態:単行本
内容:電子通信
言語:日本語
ページ数:528ページ
縦:23cm
他の技術評論社の書籍を探す

    技術評論社 プロになるためのWeb技術入門―なぜ、あなたはWebシステムを開発できないのか 改訂新版 [単行本] に関するレビューとQ&A

    商品に関するご意見やご感想、購入者への質問をお待ちしています!