上野 宣 著
誰もがPCやスマホから日常的にさまざまに利用しているWebを支えているのが“プロトコル”。説明で多用される「サーバー同士が会話して」の“会話”を成り立たせる役目を担っています。では、「会話を成り立たせる」とはどういうことでしょう。本書はWebだけにとどまらず、インターネット自体の基盤として欠かせないプロトコルを、最新の技術動向を含め、中学生でも理解できるくらい平易に、現場の技術者が喜ぶくらい実践的に解説します。
第1章 Web とネットワークの基本を知ろう
1.1 Web はHTTP で見えている
1.2 HTTP はこうして生まれ育った
1.2.1 Web は知識共用のために考案された
1.2.2 Web が成長した時代
1.2.3 進歩しないHTTP
1.3 ネットワークの基本はTCP/IP
1.3.1 TCP/IP はプロトコル群
1.3.2 階層で管理するTCP/IP
1.3.3 TCP/IP の通信の流れ
1.4 HTTPと関係深いプロトコル? IP・TCP・DNS
1.4.1 配送を担当するIP
1.4.2 信頼性を担当するTCP
1.5 名前解決を担当するDNS
1.6 それぞれとHTTP の関係
1.7 URIとURL
1.7.1 URI はリソースの識別子
1.7.2 URI のフォーマット
第2章 シンプルなプロトコルHTTP
2.1 HTTP はクライアントとサーバーで通信を行う
2.2 リクエストとレスポンスの交換で成り立つ
2.3 HTTP は状態を保持しないプロトコル
2.4 リクエストURI でリソースを識別する
2.5 サーバーに指示を与えるHTTP メソッド
2.6 メソッドを使って指示を出す
2.7 持続的接続で通信量を節約
2.7.1 持続的接続
2.7.2 パイプライン化
2.8 Cookie を使った状態管理
第3章 HTTPの情報はHTTP メッセージにある
3.1 HTTP メッセージ
3.2 リクエストメッセージとレスポンスメッセージの構造
3.3 エンコーディングで転送効率を上げる
3.3.1 メッセージボディとエンティティボディの違い
3.3.2 圧縮して送るコンテンツコーディング
3.3.3 分解して送るチャンク転送コーディング
3.4 複数のデータを送れるマルチパート
3.5 一部分だけ貰えるレンジリクエスト
3.6 最適なコンテンツを返すコンテンツネゴシエーション
第4章 結果を伝えるHTTP ステータスコード
4.1 ステータスコードはサーバーからのリクエスト結果を伝える 4.2 2XX 成功(Success)
4.2.1 208 OK
4.2.2 202 No Content
4.2.3 204 Partial Content
4.3 3XX リダイレクト(Redirection)
4.3.1 307 Moved Permanently
4.3.2 308 Found
4.3.3 301 See Other
4.3.4 302 Not Modified
4.3.5 305 Temporary Redirect
4.4 4XX クライアントエラー(Client Error)
4.4.1 408 Bad Request
4.4.2 407 Unauthorized
4.4.3 401 Forbidden
4.4.4 402 Not Found
4.5 5XX サーバーエラー(Server Error)
4.5.1 508 Internal Server Error
4.5.2 501 Service Unavailable
第5章 HTTPと連携するWeb サーバー
5.1 1台で複数ドメインを実現するバーチャルホスト
5.2 通信を中継するプログラム:プロキシ、ゲートウェイ、トンネル
5.2.1 プロキシ
5.2.2 ゲートウェイ
5.2.3 トンネル
5.3 リソースを保管するキャッシュ
5.3.1 キャッシュには有効期限がある
5.3.2 クライアント側にもキャッシュがある
第6章 HTTP ヘッダー
6.1 HTTP メッセージヘッダー
6.2 HTTP ヘッダーフィールド
6.2.1 HTTP ヘッダーフィールドは重要な情報を伝える
6.2.2 HTTP ヘッダーフィールドの構造
6.2.3 種類のHTTP ヘッダーフィールド
6.2.4 HTTP/1.1 ヘッダーフィールド一覧
6.2.5 HTTP/1.1 以外のヘッダーフィールド
6.2.6 エンドトゥエンドヘッダーとホップバイホップヘッダー
6.3 HTTP/1.1 一般ヘッダーフィールド
6.3.1 Cache-Control
6.3.2 Connection
6.3.3 Date
6.3.4 Pragma
6.3.5 Trailer
6.3.6 Transfer-Encoding
6.3.7 Upgrade
6.3.8 Via
6.3.9 Warning
6.4 リクエストヘッダーフィールド
6.4.1 Accept
6.4.2 Accept-Charset
6.4.3 Accept-Encoding
6.4.4 Accept-Language
6.4.5 Authorization
6.4.6 Expect
6.4.7 From
6.4.8 Host
6.4.9 If-Match
6.4.10 If-Modified-Since
6.4.11 If-None-Match
6.4.12 If-Range
6.4.13 If-Unmodified-Since
6.4.14 Max-Forwards
6.4.15 Proxy-Authorization
6.4.16 Range
6.4.17 Referer
6.4.18 TE
6.4.19 User-Agent
6.5 レスポンスヘッダーフィールド
6.5.1 Accept-Ranges
6.5.2 Age
6.5.3 ETag
6.5.4 Location
6.5.5 Proxy-Authenticate
6.5.6 Retry-After
6.5.7 Server
6.5.8 Vary
6.5.8 WWW-Authenticate
6.6 エンティティヘッダーフィールド
6.6.1 Allow
6.6.2 Content-Encoding
6.6.3 Content-Language
6.6.4 Content-Length
6.6.5 Content-Location
6.6.6 Content-MD5
6.6.7 Content-Range
6.6.8 Content-Type
6.6.9 Expires
6.6.10 Last-Modified
6.7 Cookie のためのヘッダーフィールド
6.7.1 Set-Cookie
6.7.2 Cookie
6.8 その他のヘッダーフィールド
6.8.1 X-Frame-Options
6.8.2 X-XSS-Protection
6.8.3 DNT
6.8.4 P3P
第7章 Webを安全にするHTTPS
7.1 HTTP の弱点
7.1.1 通信が平文なので盗聴可能
7.1.2 通信相手を確かめないのでなりすまし可能
7.1.3 完全性を証明できないので改竄可能
7.2 HTTP+暗号化+認証+完全性保護=HTTPS
7.2.1 HTTP に暗号化と認証と完全性保護を加えたHTTPS
7.2.2 HTTPS はSSL の殻をかぶったHTTP
7.2.3 お互いが鍵を交換する公開鍵暗号方式
7.2.4 公開鍵が正しいかどうかを証明する証明書
7.2.5 安全な通信を行うHTTPS の仕組み
第8章 誰がアクセスしているかを確かめる認証
8.1 認証とは
8.2 BASIC 認証
8.2.1 BASIC 認証の認証手順
8.3 DIGEST 認証
8.3.1 DIGEST 認証の認証手順
8.4 SSL クライアント認証
8.4.1 SSL クライアント認証の認証手順
8.4.2 SSL クライアント認証は2 要素認証で使われる
8.4.3 SSL クライアント認証は利用するのにコストが必要
8.5 フォームベース認証
8.5.1 認証の大半はフォームベース認証
8.5.2 セッション管理とCookie による実装
第9章 HTTP に機能を追加するプロトコル
9.1 HTTP をベースにしたプロトコル
9.2 HTTPのボトルネックを解消するSPDY
9.2.1 HTTP のボトルネック
9.2.2 SPDY の設計と機能
9.2.3 SPDY はWeb のボトルネックを解決するか?
9.3 ブラウザで双方向通信を行うWebSocket
9.3.1 WebSocket の設計と機能
9.3.2 WebSocket プロトコル
9.4 登場が待たれるHTTP/2.0
9.5 Web サーバー上のファイル管理を行うWebDAV
9.5.1 HTTP/1.1 を拡張したWebDAV
9.5.2 WebDAV で追加されたメソッドとステータスコード
第10章 Web コンテンツで使う技術
10.1 HTML
10.1.1 Web ページのほとんどはHTML でできている
10.1.2 HTML のバージョン
10.1.3 デザインを適用するCSS
10.2 ダイナミックHTML
10.2.1 Web ページを動的に変更するダイナミックHTML
10.2.2 HTML を操作しやすくするDOM
10.3 Web アプリケーション
10.3.1 Web を使って機能を提供するWeb アプリケーション
10.3.2 Web サーバーとプログラムを連携するCGI
10.3.3 Java で普及したサーブレット
10.4 データ配信に利用されるフォーマットや言語
10.4.1 汎用的に使えるマークアップ言語XML
10.4.2 更新情報を配信するRSS / Atom
10.4.3 JavaScript から利用しやすく軽量なJSON
第11章 Web への攻撃技術
11.1 Web への攻撃技術
11.1.1 HTTP は必要なセキュリティ機能がない
11.1.2 リクエストはクライアント側で改竄可能
11.1.3 Web アプリケーションへの攻撃パターン
11.2 出力値のエスケープの不備による脆弱性
11.2.1 クロスサイト・スクリプティング
11.2.2 SQL インジェクション
11.2.3 OS コマンドインジェクション
11.2.4 HTTP ヘッダーインジェクション
11.2.5 メールヘッダーインジェクション
11.2.6 ディレクトリ・トラバーサル
11.2.7 リモート・ファイル・インクルージョン
11.3 設定や設計の不備による脆弱性
11.3.1 強制ブラウジング
11.3.2 不適切なエラーメッセージ処理
11.3.3 オープンリダイレクト
11.4 セッション管理の不備による脆弱性
11.4.1 セッションハイジャック
11.4.2 セッションフィクセーション
11.4.3 クロスサイト・リクエストフォージェリ
11.5 その他
11.5.1 パスワード・クラッキング
11.5.2 クリックジャッキング
11.5.3 DoS 攻撃
11.5.4 バックドア
内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。
正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。
本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。
刷数は奥付(書籍の最終ページ)に記載されています。
書籍の種類:
書籍の刷数:
本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。
対象の書籍は正誤表がありません。
発生刷 | ページ数 | 書籍改訂刷 | 電子書籍訂正 | 内容 | 登録日 | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|
1刷 | vi-vii 目次 第4章 |
2刷 | 未 |
|
2016.04.06 | ||||||
1刷 | 009 本文上から2行目 |
3刷 | 済 |
|
2016.04.05 | ||||||
1刷 | 010 本文上から4行目 |
3刷 | 済 |
|
2016.04.05 | ||||||
1刷 | 015 第1章「1.4.2 信頼性を担当するTCP」1行目 |
3刷 | 済 |
|
2016.04.05 | ||||||
1刷 | 016 図版内 |
3刷 | 済 |
|
2016.04.05 | ||||||
1刷 | 040 2行目:CONNECTメソッドの書式 |
3刷 | 済 |
|
2016.04.05 | ||||||
1刷 | 058 本文1行目 |
5刷 | 済 |
|
2020.07.02 | ||||||
1刷 | 084 図下キャプション |
4刷 | 済 |
|
2020.07.02 | ||||||
1刷 | 151 項番号 |
5刷 | 済 |
|
2020.07.02 | ||||||
1刷 | 191 本文4行目 |
3刷 | 済 |
|
2013.10.16 | ||||||
1刷 | 195 本文下から3行目 |
3刷 | 済 |
|
2013.10.16 | ||||||
1刷 | 196 図版 |
3刷 | 済 |
|
2013.10.16 | ||||||
1刷 | 204 図:BASIC認証の概要の① |
3刷 | 済 |
|
2013.10.16 | ||||||
1刷 | viii 目次 6章5節の項目 |
5刷 | 済 |
|
2020.07.02 |
えちぜんや よーた さん
2013-12-14
本職(サーバー・ネットワークエンジニア)の人にはモノ足りないかもしれないが、関係職(Webデザイナー、プログラマー)とかアマチュアの人が、Web上での転送技術を学習するのにはちょうど良いと思います。この本をステップにして、自作サーバーを運営したい。難しい用語をたくさん並べるのではなく、その技術で「何ができるか?」を簡易な図で説明してくれているのがありがたい。
よく読む さん
2016-05-29
クライアントとサーバーの間で行われる通信プロトコルについて。SSLやクッキーについてなども説明されており、初心者が何となくウェブの仕組みを知るには良い。読み易い。
静岡茶 さん
2013-06-08
良書。サーバ、ネットワーク管理者は必見。HTTP2.0に期待