Webサーバを作りながら学ぶ 基礎からのWebアプリケーション開発入門
Webサーバを作りながら学ぶ 基礎からのWebアプリケーション開発入門 (Software Design plus)
技術評論社
まえがき
序章 はじめに
I.1 なぜWebサーバを作るのか
I.2 「Webアプリケーション」という不幸
I.3 対象読者
I.4 本書の構成
I.5 本書のサポートページについて
第1章 Webサーバを作る
1.1 Webサーバとはそもそも何か
1.2 URL―スキーム,ホスト,ドメイン,ポート
1.3 TCPサーバ/クライアントを作る
1.3.1 TCPとソケット
1.3.2 TCPサーバ/クライアントのプログラム
[補足] C,C#の場合
1.3.3 TCPサーバをWebブラウザで叩く
1.3.4 TCPクライアントでWebサーバを叩く
[補足] Apache入れるの面倒なんですけど
1.4 HTTP―Hypertext Transfer Protocolについて
1.4.1 HTTPとはそもそも何か
[補足] HTTP/2
1.4.2 HTTPステータスコード
1.4.3 RFCとは何か
1.4.4 画像を表示する―Content-Type
1.4.5 Apacheのアクセスログを見る
[補足] なぜIEのユーザエージェントが「Mozilla」なのか?
1.5 Webサーバを作る
1.5.1 Webサーバは何を返せばよいのか
1.5.2 レスポンスヘッダを取捨選択する
1.5.3 1つのHTMLファイルを返す
[補足] ディレクトリトラバーサル脆弱性
1.5.4 普通にWebページを表示できるようにする
[補足] 1つのサーバ側のポート番号で,複数の通信を行う
第2章 Webサーバを完成させる
2.1 この章で扱うこと
2.2 「404 Not Found」を返す
2.3 ディレクトリトラバーサル脆弱性に対応する
2.4 ディレクトリを指定した場合―リダイレクト
[補足] URLの末尾のスラッシュはいるの? いらないの?
2.5 URLエンコードに対応する
[補足] クエリストリング部分の文字コード
[補足] JavaのURLDecoder.decode()がたいへんにタコである話
2.6 Modoki/0.2のソースコード
第3章 へなちょこサーブレットコンテナ「Henacat」を作る
3.1 Webアプリケーションとはそもそも何か
3.1.1 Webアプリケーションの基本的な動き
[補足] 静的コンテンツ/動的コンテンツ
3.1.2 GETのパラメタ―クエリストリング
3.1.3 POSTメソッド
3.2 POSTを受け付ける
3.2.1 HTMLの