はじめに
株式会社船井総研デジタルの よもぎた と申します。所属はインフラストラクチャーチームになります。
2022年9月に中途で入社しました。日々研修に励んでおります。中途採用=即戦力・即現場投入という先入観があったため、ホントにいいのか?と若干困惑気味です。
先日、開発チームのHTTPのモブワークに参加してツールの紹介とデモ・ハンズオンをしたので、その内容を簡単ですがご紹介したいと思います。なお、参加者全員がリモート参加でした。
ツールの紹介
開発チームはWebアプリの研修をしています。そこで、LinuxのコマンドラインからHTTP(S)アクセスに使えるツールを紹介しました。
具体的には、wget、curl、ncとその派生版、opensslコマンドのs_clientコマンドです。
w3mとかのテキストベースのWebブラウザで阿部寛のページを表示するデモをやろうかと思いましたが、ボツにしました。
紹介するにあたって軽く調べなおして、自分でも新たに知ったことが2つほどありました。
-
wgetは、いまwget2の開発が始まっている。wgetも更新されているので、wgetがオワコンというわけではないようですが、どうなっていくのか、たまに気にしたいと思います。
-
ncの最新版リリースは1996年3月。もう25年以上前です。そのツールが現役というのもすごいですが、一緒に研修している人に その時生まれていなかった人がいる という事実に震えました。
デモ・ハンズオン
拡張子の違いによってWebブラウザでの表示に違いが出るのを見る
Webサーバにデモ用のHTMLファイルを置きます。内容はタイトルとボディに1行メッセージだけという簡単なものです。そのファイルを、拡張子を .txt に変えてコピーします。
cp -pv demo.html demo.txt
WebサーバはUbuntu上のApache2.4です。まずは、それぞれのファイルにWebブラウザでアクセスしてもらいました。拡張子 .html は普通に見えますが、拡張子 .txt はファイル全体がテキストで表示されます。
curlでアクセスしてもらって、種明かしをしました。
curl -i https://<DemoDomain>/demo.html
curl -i https://<DemoDomain>/demo.txt
もうお分かりと思いますが、レスポンスヘッダのうち Content-Type ヘッダが異なり、Webブラウザでの表示が変わるというのを見てもらいました。
その後、ファイルをダウンロードして、ハッシュ値を比較して同じファイルであることも確認してもらいました。
curl -o demo.html https://<DemoDomain>/demo.html
curl -o demo.txt https://<DemoDomain>/demo.txt
md5sum demo.html demo.txt
エコーサーバにアクセスしてWebブラウザのリクエストの違いを見る
まずは、Webブラウザから受け取ったリクエストをそのまま出力するエコーサーバ(スクリプト)を用意します。それに手持ちで使っていないドメイン名を割り当てました。
そして、Webブラウザで次のURLにアクセスしてもらいました。
http://<DemoServerIPAddress>/echoscript
http://<DemoDomain>/echoscript
Webブラウザが送信しているリクエストのうち、 アクセスするURLによって Host ヘッダが異なることを確認してもらいました。実際にはデモ用ドメインは複数用意して、みんな同じIPアドレスに向けました。
Wiresharkで通信を見てみる
実際のコンテンツをHTTPで配信しているサイトを探すより、自分でたてた方が256倍早い、と思い、自分でクラウド上にWebサーバを立てて、それにアクセスした様子をパケットキャプチャしてみてもらいました。まあ、実際には上記のエコーサーバなのですが。
Wiresharkよりtcpdumpがいい!という人がいて、将来有望だと思いました。
やり終えての言い訳など
ここで紹介するまでもないデモ・ハンズオンもすこしやりました。
やることが決まってから二日後に実施、という強行スケジュールだったのが大変でした。(完全に言い訳。とはいえ、実際に手を動かした時間はそれほどでもなく、何を見せるか考えるほうに時間がかかってます)。とはいえ、自分で言い出したことなので、なんとか最低限の形にはなってよかったです。
内容が体系化されてなくて抜け漏れがあるとか、ツッコミどころ満載だと思います。たとえばBasic認証に触れてないとか。(最低限の形になったとは一体・・・)。次の機会に活かせればと思います。(もしあれば、ですが)
当日の説明も至らないところがあったな、と反省してます。
次は、複数人で内容を揉んで準備してやりたいですね。(これを読んでくれるであろう会社のエライ人向け)