HTTPの教科書(上野 宣)|翔泳社の本
  1. ホーム >
  2. 書籍 >
  3. HTTPの教科書

HTTPの教科書


形式:
書籍
発売日:
ISBN:
9784798126258
定価:
2,860(本体2,600円+税10%)
仕様:
A5・320ページ
カテゴリ:
ネットワーク・サーバ
キーワード:
#ネットワーク・サーバ・セキュリティ,#データ・データベース,#システム運用,#Web・アプリ開発
紙の書籍

肩肘張らずにWebの仕組みとプロトコルを完全理解する

誰もが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 バックドア

本書は付属データの提供はございません。

お問い合わせ

内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。

正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。

利用許諾に関するお問い合わせ

本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。

追加情報はありません。
この商品の「よくある質問」はありません。

ご購入いただいた書籍の種類を選択してください。

書籍の刷数を選択してください。

刷数は奥付(書籍の最終ページ)に記載されています。

現在表示されている正誤表の対象書籍

書籍の種類:

書籍の刷数:

本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。

対象の書籍は正誤表がありません。

最終更新日:2020年07月02日
発生刷 ページ数 書籍改訂刷 電子書籍訂正 内容 登録日
1刷 vi-vii
目次 第4章
2刷
4.2 2XX 成功(Success) 067 4.2.1 208 OK 067 4.2.2 202 No Content 068 4.2.3 204 Partial Content 069 4.3 3XX リダイレクト(Redirection) 069 4.3.1 307 Moved Permanently 069 4.3.2 308 Found 070 4.3.3 301 See Other 071 4.3.4 302 Not Modified 072 4.3.5 305 Temporary Redirect 072 4.4 4XX クライアントエラー(Client Error) 073 4.4.1 408 Bad Request 073 4.4.2 407 Unauthorized 074 4.4.3 401 Forbidden 075 4.4.4 402 Not Found 075 4.5 5XX サーバーエラー(Server Error) 076 4.5.1 508 Internal Server Error 076 4.5.2 501 Service Unavailable 077
4.2 2XX 成功(Success) 067 4.2.1 200 OK 067 4.2.2 204 No Content 068 4.2.3 206 Partial Content 069 4.3 3XX リダイレクト(Redirection) 069 4.3.1 301 Moved Permanently 069 4.3.2 302 Found 070 4.3.3 303 See Other 071 4.3.4 304 Not Modified 072 4.3.5 307 Temporary Redirect 072 4.4 4XX クライアントエラー(Client Error) 073 4.4.1 400 Bad Request 073 4.4.2 401 Unauthorized 074 4.4.3 403 Forbidden 075 4.4.4 404 Not Found 075 4.5 5XX サーバーエラー(Server Error) 076 4.5.1 500 Internal Server Error 076 4.5.2 503 Service Unavailable 077

目次に掲載されている、見出しのステータスコードを訂正します。目次のみの修正のため、本文に訂正はありません。
また、右端に記載されている3ケタの数字はページ数です。リフローEPUBの場合はこの数字は掲載されていません。
2016.04.06
1刷 009
本文上から2行目
3刷
データリンク層
ネットワーク層

※リフローEPUBの場合、第1章「1.3.2 階層で管理するTCP/IP」の最初の段落が該当箇所になります。
2016.04.05
1刷 010
本文上から4行目
3刷
User Data Protocol
User Datagram Protocol

※リフローEPUBの場合、第1章「1.3.2 階層で管理するTCP/IP」の「トランスポート層」が該当箇所になります。
2016.04.05
1刷 015
第1章「1.4.2 信頼性を担当するTCP」1行目
3刷
Transfer Control Protocol
Transmission Control Protocol
2016.04.05
1刷 016
図版内
3刷
『SYN/ACN』
『SYN/ACK』

※リフローEPUBの場合、第1章「1.4.2 信頼性を担当するTCP」のスリーウェイハンドシェイクの図が該当箇所になります。
2016.04.05
1刷 040
2行目:CONNECTメソッドの書式
3刷
CONNECT プロキシサーバ:ポート HTTPバージョン
CONNECT サーバー:ポート HTTPバージョン

※リフローEPUBの場合、第2章「2.5 サーバーに指示を与えるHTTPメソッド」の終わりのほうにあるCONNECTメソッドの書式が該当箇所になります。
2016.04.05
1刷 058
本文1行目
5刷
Content-type
Content-Type

※リフローEPUBの場合、第3章「3.4 複数のデータを送れるマルチパート」の「● multipart/byteranges」のすぐ下の段落が該当箇所になります。
2020.07.02
1刷 084
図下キャプション
4刷
接地
設置

※リフローEPUBの場合、第5章「5.2.1 プロキシ」の3つ目の図が該当箇所になります。
2020.07.02
1刷 151
項番号
5刷
6.5.8 WWW-Authenticate
6.5.9 WWW-Authenticate
2020.07.02
1刷 191
本文4行目
3刷
SSLは認証局は信用できるという前提でなりたっています。
SSLで使われている認証局は信用できるという前提でなりたっています。

※リフローEPUBの場合、第7章「7.2.4 公開鍵が正しいかどうかを証明する証明書」の3つ目の小見出し「■認証局は信用が第一」の最初の段落が該当箇所になります。
2013.10.16
1刷 195
本文下から3行目
3刷
図はサーバー側の公開鍵証明書(サーバー証明書)のみを用いたHTTPSによる通信を開始して、HTTPによる通信を開始するところまでの説明になります。
図はサーバー側の公開鍵証明書(サーバー証明書)のみを用いたHTTPSによる通信を開始するところまでの説明になります。

※リフローEPUBの場合、第7章「7.2.5 安全な通信を行うHTTPSの仕組み」の手順説明の後にある2つ目の段落が該当箇所になります。
2013.10.16
1刷 196
図版
3刷

・サーバーアイコンとクライアント(ノートパソコン+ブラウザ)アイコンの入れ替え
・「暗号スイートの決定」における矢印の向きを逆に

※リフローEPUBの場合、第7章「7.2.5 安全な通信を行うHTTPSの仕組み」の最後にある図が該当箇所になります。
2013.10.16
1刷 204
図:BASIC認証の概要の①
3刷
認証が認証が必要であることを伝えるステータスコード401で応答
認証が必要であることを伝えるステータスコード401で応答

※リフローEPUBの場合、第8章「8.2.1 BASIC認証の認証手順」の最初の図が該当箇所になります。
2013.10.16
1刷 viii
目次 6章5節の項目
5刷
6.5.8 WWW-Authenticate
6.5.9 WWW-Authenticate
2020.07.02

感想・レビュー

えちぜんや よーた さん

2013-12-14

本職(サーバー・ネットワークエンジニア)の人にはモノ足りないかもしれないが、関係職(Webデザイナー、プログラマー)とかアマチュアの人が、Web上での転送技術を学習するのにはちょうど良いと思います。この本をステップにして、自作サーバーを運営したい。難しい用語をたくさん並べるのではなく、その技術で「何ができるか?」を簡易な図で説明してくれているのがありがたい。

よく読む さん

2016-05-29

クライアントとサーバーの間で行われる通信プロトコルについて。SSLやクッキーについてなども説明されており、初心者が何となくウェブの仕組みを知るには良い。読み易い。

静岡茶 さん

2013-06-08

良書。サーバ、ネットワーク管理者は必見。HTTP2.0に期待