2009-07-15
ビギナー Web プログラマに一皮むけるためにやってほしい5つのこと
1. Web サーバの設定方法を覚えてほしい
そんなに深くじゃなくてもいいんです。Apache でも IIS でも、なんだったら AN HTTPD だっていい(というか AN HTTPD って学習用にはかなりおすすめです)。それでどこにファイルを置くと外部からアクセスできちゃうのかということを知ってほしい。直リンクで様々なファイルを叩いてほしい。
「どんなところで稼働するのか」ということをほとんど学ばずに Web アプリケーションを書いている人って意外と多くて、そういう人が顧客情報がぎっしりつまったデータファイルを平気で外部からアクセス可能なところに置いたりするんですよね。
2. HTTP クライアントを作ってみてほしい
とにかく Web プログラム自身が吐き出した HTML を善意に解釈するブラウザ(IE や Firefox)からのみアクセスされるものだと思い込んでいる 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 プロトコルを覚えてほしい。
- 428 http://ariel.s8.xrea.com/
- 177 http://ariel.s8.xrea.com/index.htm
- 95 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4GGLL_jaJP324JP324&q=SDEM
- 67 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja:official&hs=aCy&q=jdk+1.6+Linux+インストール&btnG=検索&lr=
- 61 http://ariel.s8.xrea.com/news/2009_07.htm
- 60 http://reader.livedoor.com/reader/
- 60 http://www.google.co.jp/search?hl=ja&q=javadoc+書き方&sourceid=navclient-ff&rlz=1B3GGGL_jaJP328JP328&ie=UTF-8
- 53 http://www.google.co.jp/search?hl=ja&lr=lang_ja&client=firefox-a&rls=org.mozilla:ja:official&hs=kFd&ei=nKZeSsfDI4PY7AP19rmSCQ&sa=X&oi=spell&resnum=0&ct=result&cd=1&q=Ajax+Rails+select&spell=1
- 29 http://www.google.co.jp/search?hl=ja&q=単体テスト仕様書+書き方&lr=&aq=9&oq=単体
- 24 http://www.google.co.jp/search?q=javadoc+書き方&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a

