<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>digital matter &#187; ツール</title>
	<atom:link href="http://blog.loadlimits.info/tag/%e3%83%84%e3%83%bc%e3%83%ab/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.loadlimits.info</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Mon, 06 Feb 2012 13:27:58 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>実はFiddlerがすごすぎたので、機能まとめ紹介</title>
		<link>http://blog.loadlimits.info/2009/09/%e5%ae%9f%e3%81%affiddler%e3%81%8c%e3%81%99%e3%81%94%e3%81%99%e3%81%8e%e3%81%9f%e3%81%ae%e3%81%a7%e3%80%81%e6%a9%9f%e8%83%bd%e3%81%be%e3%81%a8%e3%82%81%e7%b4%b9%e4%bb%8b/</link>
		<comments>http://blog.loadlimits.info/2009/09/%e5%ae%9f%e3%81%affiddler%e3%81%8c%e3%81%99%e3%81%94%e3%81%99%e3%81%8e%e3%81%9f%e3%81%ae%e3%81%a7%e3%80%81%e6%a9%9f%e8%83%bd%e3%81%be%e3%81%a8%e3%82%81%e7%b4%b9%e4%bb%8b/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 14:29:54 +0000</pubDate>
		<dc:creator>hotpi</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Fiddler]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[ツール]]></category>

		<guid isPermaLink="false">http://blog.loadlimits.info/2009/09/%e5%ae%9f%e3%81%affiddler%e3%81%8c%e3%81%99%e3%81%94%e3%81%99%e3%81%8e%e3%81%9f%e3%81%ae%e3%81%a7%e3%80%81%e6%a9%9f%e8%83%bd%e3%81%be%e3%81%a8%e3%82%81%e7%b4%b9%e4%bb%8b/</guid>
		<description><![CDATA[今までFiddlerをただのセッションの中身を確認できるLocal Proxyとしてしか見ていなかったのですが 改めて良く調べると色々できることが多すぎると判明。感動したので便利な機能をまとめてみました。 先に簡単に説明しておくと、FiddlerはMicrosoftが無料で配布しているWeb Debugging Proxyです。 Windows環境にインストールして、ブラウザとサーバの間の通信を読んだり操作したりできます。 配布サイトはこちら。 Fiddler Web Debugger &#8211; A free web debugging tool 動作環境は「Windows 2000 / XP / 2003 / Vista with Microsoft .NET Framework v2.0 or later」 今回使ったバージョンは、2009年9月10日時点で最新の安定版、2.2.4.6。 とりあえず簡単に目次。 セッションのリクエスト一覧を確認する やり取りしているヘッダ情報を見る リクエスト・レスポンスの実際のデータの中身を確認する セッション一覧表示をフィルタリングして、特定のContent-Typeだけ表示するようにする リクエストを自分で作る AutoResponderで特定のURLに対して、ローカルのファイルを割り当てる Fiddler起動時にProxyを自動的に切り替える Webページに対する一連の自動テストを実行する サンドボックス JScript.NETで拡張できる C#やVB.NETで拡張できる UIに好きな項目を追加できる ブレークポイントの設定 マークアップエンジニアにおすすめしたいのは セッション一覧表示をフィルタリングして、特定のContent-Typeだけ表示するようにする AutoResponderで特定のURLに対して、ローカルのファイルを割り当てる あたり。 プログラマには全部おすすめ。 詳細は「続き」からどうぞ。 セッションのリクエスト一覧を確認する アクセスしたデータが左カラムのリストにステータスコードやURLとともにリアルタイムで表示されます。このリストは色々な操作で使用します。 [...]]]></description>
			<content:encoded><![CDATA[<p>今までFiddlerをただのセッションの中身を確認できるLocal Proxyとしてしか見ていなかったのですが    <br />改めて良く調べると色々できることが多すぎると判明。感動したので便利な機能をまとめてみました。</p>
<p>先に簡単に説明しておくと、FiddlerはMicrosoftが無料で配布しているWeb Debugging Proxyです。</p>
<p>Windows環境にインストールして、ブラウザとサーバの間の通信を読んだり操作したりできます。</p>
<p>配布サイトはこちら。</p>
<p><a href="http://www.fiddler2.com/fiddler2/" target="_blank">Fiddler Web Debugger &#8211; A free web debugging tool</a></p>
<p>動作環境は「Windows 2000 / XP / 2003 / Vista with Microsoft .NET Framework<b> v2.0</b> or later」</p>
<p>今回使ったバージョンは、2009年9月10日時点で最新の安定版、2.2.4.6。</p>
<p>とりあえず簡単に目次。</p>
<ul>
<li>セッションのリクエスト一覧を確認する </li>
<li>やり取りしているヘッダ情報を見る </li>
<li>リクエスト・レスポンスの実際のデータの中身を確認する </li>
<li>セッション一覧表示をフィルタリングして、特定のContent-Typeだけ表示するようにする </li>
<li>リクエストを自分で作る </li>
<li>AutoResponderで特定のURLに対して、ローカルのファイルを割り当てる </li>
<li>Fiddler起動時にProxyを自動的に切り替える </li>
<li>Webページに対する一連の自動テストを実行する </li>
<li>サンドボックス </li>
<li>JScript.NETで拡張できる </li>
<li>C#やVB.NETで拡張できる </li>
<li>UIに好きな項目を追加できる </li>
<li>ブレークポイントの設定 </li>
</ul>
<p>マークアップエンジニアにおすすめしたいのは</p>
<ul>
<li>セッション一覧表示をフィルタリングして、特定のContent-Typeだけ表示するようにする </li>
<li>AutoResponderで特定のURLに対して、ローカルのファイルを割り当てる </li>
</ul>
<p>あたり。</p>
<p>プログラマには全部おすすめ。</p>
<p>詳細は「続き」からどうぞ。</p>
<p> <span id="more-209"></span><br />
<h2>セッションのリクエスト一覧を確認する</h2>
<p><a href="http://blog.loadlimits.info/wp-content/uploads/2009/09/image16.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.loadlimits.info/wp-content/uploads/2009/09/image_thumb16.png" width="480" height="302" /></a> </p>
<p>アクセスしたデータが左カラムのリストにステータスコードやURLとともにリアルタイムで表示されます。このリストは色々な操作で使用します。</p>
<h2>やり取りしているヘッダ情報を見る</h2>
<p><a href="http://blog.loadlimits.info/wp-content/uploads/2009/09/image17.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.loadlimits.info/wp-content/uploads/2009/09/image_thumb17.png" width="480" height="302" /></a> </p>
<p>サーバとの間でやり取りされたセッションごとのヘッダ情報を見ることができます。ここでAjaxやFlashから送信したリクエストがちゃんとデータを返してきているかとかContent-Typeは正しいかとか、調べることができますね。右側のカラムでInspectorsのHeadersを選べばOKです。上側がクライアントがサーバに送ったリクエスト、下がサーバからのレスポンスです。</p>
<h2>リクエスト・レスポンスの実際のデータの中身を確認する</h2>
<p><a href="http://blog.loadlimits.info/wp-content/uploads/2009/09/image18.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.loadlimits.info/wp-content/uploads/2009/09/image_thumb18.png" width="480" height="302" /></a> </p>
<p>右カラムのタブでTextViewを選択すると、そのセッションのBody部分のテキストを読むことができます。WebページならHTMLが見られたりするわけですね。</p>
<p>ここで、さらに右下にある「View in Notepad」ボタンを押すと、テキストをWindowsのメモ帳で表示できます。それだけではあまり使い道が少ないですが、その隣の「&#8230;」をクリックすると、Bodyを好きなプログラムを指定して開けるようになります。</p>
<p>ブラウザを指定すれば、Webページとして表示できます。例えば、フォームからPOSTした結果のページを、あとで見直したい場合にも使えますね。</p>
<h2>セッション一覧表示をフィルタリングして、特定のContent-Typeだけ表示するようにする</h2>
<p><a href="http://blog.loadlimits.info/wp-content/uploads/2009/09/image19.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.loadlimits.info/wp-content/uploads/2009/09/image_thumb19.png" width="480" height="302" /></a> </p>
<p>HTMLのやり取りを見たいのに、大量の画像でリストが押し流されてしまうのを防げます。</p>
<p><a href="http://blog.loadlimits.info/wp-content/uploads/2009/09/image20.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.loadlimits.info/wp-content/uploads/2009/09/image_thumb20.png" width="480" height="302" /></a> </p>
<p>右カラムのFilterタブを選択して、Use Filtersにチェック、さまざまなフィルタを設定できますが、例えば「Response Type and Size」で「Hide IMAGE/*」を選択すれば、画像ファイルがリストに表示されなくなります。表示されなくなるだけで、通信はできます。</p>
<p>このフィルタはかなり高機能です。</p>
<ul>
<li>特定のHostの通信だけを表示・非表示にする、もしくはフラグをつける機能。 </li>
<li>特定のプロセスからの通信のみを表示する機能。これは例えばChromeのこのタブからの通信だけを表示、ということができます。 </li>
<li>同様にIEからの通信だけ表示、Windows RSS platformからの通信だけ非表示、ということもできます。 </li>
<li>特定のステータスコードだけを非表示にする機能。300系のレスポンスは表示しない、とか。 </li>
<li>一定のサイズ以上・以下のファイル、スクリプト・画像・SWF・CSSをそれぞれ通信ブロックしてくれる機能。画像ブロックすると、Googleもこんな感じでさらにすっきり。      <br /><a href="http://blog.loadlimits.info/wp-content/uploads/2009/09/image21.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.loadlimits.info/wp-content/uploads/2009/09/image_thumb21.png" width="351" height="320" /></a> </li>
<li>ヘッダ情報を追加したり削除したりも、このフィルタで可能です。 </li>
<li>ブレークポイントの指定（これは後述） </li>
</ul>
<p>メニューのRulesでも、いくつかのフィルタを簡単にON/OFFできます。</p>
<h2>リクエストを自分で作る</h2>
<p>サーバに送信するリクエストを自分で組み立てることができます。右カラムのRequest Builderがそれです。</p>
<p><a href="http://blog.loadlimits.info/wp-content/uploads/2009/09/image22.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.loadlimits.info/wp-content/uploads/2009/09/image_thumb22.png" width="480" height="302" /></a> </p>
<p>リクエストメソッドを選択して、URLと送りたいヘッダを書いて、右上のExecuteボタンを押せばOKです。サーバにそのリクエストが送信されます。HTTPのバージョンも選べます。HTTP/2.0も対応という。2.0て。</p>
<p>AjaxやFlashの、サーバとの通信テストで便利なのがここです。パラメータをちょっと修正してExecuteを押すだけで、サーバのAPIから取れるデータが、想定通りのものかテストできます。</p>
<p><a href="http://blog.loadlimits.info/wp-content/uploads/2009/09/image23.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.loadlimits.info/wp-content/uploads/2009/09/image_thumb23.png" width="480" height="302" /></a> </p>
<p>もちろんチマチマとヘッダを書くのは面倒なので、リストから右カラムにセッションをドラッグアンドドロップするだけで、簡単にそのセッションの複製ができます。一度ブラウザから送ったセッションなら、あとから同じ内容でも、修正を加えてPOSTでも、自由にできます。</p>
<p>ここから送ったものは当然ブラウザには反映されませんが、結果ページを見たいなら、Request Builderで送って、レスポンスをInspectorsからブラウザを使って開く、ということもできますね。InspectorsにはXMLや画像のビューアもあるので、組み合わせれば大抵のものは表示できます。</p>
<h2>AutoResponderで特定のURLに対して、ローカルのファイルを割り当てる</h2>
<p>Webデザイナやマークアップエンジニアの方々におすすめしたい機能です。特定のURLへのアクセスを、自分のローカルPC上にあるファイルに置き換えることができます。</p>
<p>つまり、サーバ上にわざわざCSSファイルをアップロードしなくても、CSS変更程度の確認ならローカル作業だけで済むということですね。周りにもCSSをレポジトリにコミット→開発環境に自動反映されるのを待つ→確認→間違ってたら繰り返しという作業をしている人たちがいるので。</p>
<p>APIのレスポンスとしても使えると思います。開発環境で本番と同じレスポンスを返してほしい、とか。</p>
<p><a href="http://blog.loadlimits.info/wp-content/uploads/2009/09/image24.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.loadlimits.info/wp-content/uploads/2009/09/image_thumb24.png" width="480" height="302" /></a></p>
<p>例えば、上記のようにTwitterのプロフィール画像に対してローカルに置いたファイルへの置き換えルールを書きます。そうすると、</p>
<p><a href="http://blog.loadlimits.info/wp-content/uploads/2009/09/image25.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.loadlimits.info/wp-content/uploads/2009/09/image_thumb25.png" width="351" height="320" /></a> </p>
<p>↓</p>
<p><a href="http://blog.loadlimits.info/wp-content/uploads/2009/09/image26.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.loadlimits.info/wp-content/uploads/2009/09/image_thumb26.png" width="351" height="320" /></a></p>
<p>というように置き換えられます。</p>
<p>JPEG画像をリクエストしても、置き換えがPNGなら、ちゃんとContent-Typeはimage/pngで返してくれます。</p>
<p>Proxomitronも使ってましたが、目的のセッションをリストから選択してAddボタン一発で登録できるのが便利ですね。セッションリストからドラッグアンドドロップすると、複数のルールを一気に追加できます。</p>
<p>Rule Editorでは正規表現も指定できるのですが、置き換える先のファイルは正規表現を使えないので、複数ファイル→単一のファイルに置き換えることはできますが、複数ファイル→複数ファイルに置き換えることはできません。これはちょっと残念ですね。フォルダ以下を一括でローカルのチェックアウトしたファイルに置き換えとかできれば最高だったのですが。</p>
<p>さっきのリストを正規表現で書き換えてみるとこんな感じです。画像ではあまり実用的ではないですが、CSSの編集には威力を発揮すると思います。</p>
<p><a href="http://blog.loadlimits.info/wp-content/uploads/2009/09/image27.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.loadlimits.info/wp-content/uploads/2009/09/image_thumb27.png" width="480" height="302" /></a> </p>
<p>ちなみにリストのマッチ順序は+/-で変更できます。</p>
<h2>Fiddler起動時にProxyを自動的に切り替える</h2>
<p>WinINETのProxyを起動時に書き換えてくれるので、起動するだけでIEではFiddler経由のアクセスになります。同じくWinINETを使っているChromeも同様。以下はFiddler起動時に自動的に書き換えられたプロキシの設定画面。もちろんFiddlerを終了したときに自動でもとに戻ります。Fiddlerが使うポートはFiddlerのメニューからTools→Fiddler Optionsで変更可能。</p>
<p><a href="http://blog.loadlimits.info/wp-content/uploads/2009/09/image28.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.loadlimits.info/wp-content/uploads/2009/09/image_thumb28.png" width="373" height="320" /></a> </p>
<p>FireFoxはWinINETを使っていないのですが、Fiddlerの有効・無効を簡単に切り替えられるAddOnがFiddlerと一緒にインストールされます。しかもそのAddOnがFiddlerの起動に連動して有効・無効を切り替えてくれるので、FireFoxでも便利にFiddlerライフが送れます。</p>
<p><a href="http://blog.loadlimits.info/wp-content/uploads/2009/09/image29.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.loadlimits.info/wp-content/uploads/2009/09/image_thumb29.png" width="442" height="320" /></a> </p>
<h2>Webページに対する一連の自動テストを実行する</h2>
<p>なんとテストもできます。</p>
<p>コマンドプロンプトから諸々を操作できるExecAction.exeというファイルが用意されています。バッチファイルから一連のテストを実行したりする場合に便利。動作自体は、スクリプトや拡張に書くことができます。スクリプトや拡張に関しては後述。</p>
<p>WebのAPIに対するテストなんかもこれでできますね。</p>
<h2>サンドボックス</h2>
<p>Fiddlerの機能というわけではないかもしれませんが、FiddlerのサイトにHTTP Sandboxが用意されています。ショッピングカートやアップローダなどが用意されていて、自由にFiddlerの機能を試すことができます。</p>
<p>FiddlerのメニューのTools→Sandboxから行けます。</p>
<h2>JScript.NETで拡張できる</h2>
<p>Fiddler起動時や、リクエストに対する応答など、各種イベントへの挙動をJScript.NETで記述することができます。まぁほぼJavaScript的なもので書けるってことです。</p>
<p>FiddlerのメニューのRules→Customize Rulesを実行すると、メモ帳が開いてカスタムルールの編集が行えます。メモ帳以外のエディタを使いたい場合はメニューのTools→Fiddler Options→ExtensionsからEditorの欄に、使いたいエディタのプログラムを指定すればOKです。</p>
<p><a href="http://blog.loadlimits.info/wp-content/uploads/2009/09/image30.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.loadlimits.info/wp-content/uploads/2009/09/image_thumb30.png" width="442" height="320" /></a> </p>
<p>エディタ上で保存すればすぐに反映されます。</p>
<p>スクリプトの書き方は下記参照。クックブックもすごい充実。</p>
<p><a href="http://www.fiddler2.com/fiddler/dev/scriptsamples.asp" target="_blank">Fiddler Web Debugger &#8211; Script Samples</a></p>
<h2>C#やVB.NETで拡張できる</h2>
<p>.NETでDLLを作成することでも拡張を作成できます。複雑な機能をプラグインとして配布したい場合に便利です。</p>
<p>スクリプトでの拡張で載せたスクリーンショットの下半分を見ると、SimpleFilterとTimelineも実は拡張だったことがわかります。</p>
<p>拡張プラグインの作り方も、細かく説明されています。</p>
<p><a href="http://www.fiddler2.com/fiddler/dev/IFiddlerExtension.asp" target="_blank">Fiddler Web Debugger &#8211; Extending Fiddler with .NET Code</a></p>
<h2>UIに好きな項目を追加できる</h2>
<p>前述の拡張で、右カラムに自由にタブを追加して、好きなインターフェースを追加できます。</p>
<p><a href="http://blog.loadlimits.info/wp-content/uploads/2009/09/image31.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.loadlimits.info/wp-content/uploads/2009/09/image_thumb31.png" width="480" height="302" /></a> </p>
<h2>ブレークポイントの設定</h2>
<p>Filtersでブレークポイントを指定できます。ブレークポイントを指定すると、そのリクエストの時点で以降の通信をストップさせることができます。HTTP/1.0とHTTP/1.1では、リクエストの順序でレスポンスが送られることになっているので、ひとつの通信を止めると、以降そのHostからのレスポンスは止まります。</p>
<p>一旦ストップさせておいて、レスポンスをローカルのファイルで置き換えたり、そのまま再開させたりすることもできます。ちなみに止まっている間、ブラウザは読み込み中のままになります。</p>
<h2>まとめ</h2>
<p>紹介していない機能もまだあります。使えば使うほど便利なFiddler、ホントにおすすめです。もっと拡張機能が増えてほしい！</p>
</p>
</p>
</p>
<p>他の参考記事としてはこの辺。</p>
<p><a href="http://www.infoq.com/jp/news/2009/03/fiddler" target="_blank">InfoQ: Fiddler Webデバッグプロキシ</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loadlimits.info/2009/09/%e5%ae%9f%e3%81%affiddler%e3%81%8c%e3%81%99%e3%81%94%e3%81%99%e3%81%8e%e3%81%9f%e3%81%ae%e3%81%a7%e3%80%81%e6%a9%9f%e8%83%bd%e3%81%be%e3%81%a8%e3%82%81%e7%b4%b9%e4%bb%8b/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

