ビギナー Web プログラマに一皮むけるためにやってほしい5つのこと

1. Web サーバの設定方法を覚えてほしい

 そんなに深くじゃなくてもいいんです。Apache でも IIS でも、なんだったら AN HTTPD だっていい(というか AN HTTPD って学習用にはかなりおすすめです)。それでどこにファイルを置くと外部からアクセスできちゃうのかということを知ってほしい。直リンクで様々なファイルを叩いてほしい。

 「どんなところで稼働するのか」ということをほとんど学ばずに Web アプリケーションを書いている人って意外と多くて、そういう人が顧客情報がぎっしりつまったデータファイルを平気で外部からアクセス可能なところに置いたりするんですよね。

2. HTTP クライアントを作ってみてほしい

 とにかく Web プログラム自身が吐き出した HTML を善意に解釈するブラウザIEFirefox)からのみアクセスされるものだと思い込んでいる Web プログラマが多すぎます。なので、ひどいとラジオボタンを UI に使っていれば入力値のチェックが必要ないと思っている人もいます。

 そんな考えなんて毛ほども起きないようにぜひ、自分で HTTP クライアントを作ってみてほしいです。ブラウザじゃありません。とにかく任意の HTTP リクエストを発行するプログラムという意味での HTTP クライアントです。また、レスポンスも最初から最後まで見れるようにしておけば HTTP ヘッダという普段はお目にかかれない情報をしっかりと確認することができます。

3. HTML 以外のコンテンツを返す Web プログラムを作ってみてほしい

 HTTP ヘッダと HTML ヘッダを混同している人が意外といます。なので、画像を返すプログラムを組ませると HTML の BODY タグの中に画像データをテキストにして入れようとして「やっぱ Base64 でテキスト化するんですか?」なんてとんちんかんなことを聞いてくる人もいます。

 結局こういう人は、HTTP プロトコルをちゃんと理解していないということですよね。だから、HTML 以外のコンテンツを返す Web プログラムを早々に作ってみてほしいと思います。

4. CGI ライブラリを使わずに CGI を作ってみてほしい

 環境変数 QUERY_STRING や標準入力からリクエストパラメータを取得してみてほしい。そして、ユーザエージェントやリモートホストなどのアクセス元の情報を環境変数から取得してみてほしい。これによって Web プログラミングというのは常にエンコーディングとの戦いであることを実感して欲しい。

 さらにはセッション的なものも自作してみて欲しい。そうすればセッションには何が保存できて何が保存できないのかが見えてくるだろうし、問題点も見えてくるはず。

5. あるのにないことにしてみてほしい

 つまり、ステータスコードを操って見てほしいということです。自分で 404 を投げたりすることができることを知ってほしい。さらにはいろいろな意味のステータスコードがあるということを知りより深く HTTP プロトコルを覚えてほしい。