SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

連載記事

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

翔泳社では、「独習」「徹底入門」「スラスラわかる」「絵で見てわかる」「一年生」などの人気シリーズをはじめ、言語や開発手法、最新技術を解説した書籍を多数手がけています。プロジェクトマネジメントやチームビルティングといった管理職向けの書籍も豊富です。

ITエンジニアとしてのスキルアップ・リスキリングに、ぜひお役立てください。

書籍に関する記事を見る

'); googletag.cmd.push(function() { googletag.pubads().addEventListener('slotRenderEnded', function(e) { var ad_id = e.slot.getSlotElementId(); if (ad_id == 'div-gpt-ad-1659428980688-0') { var ad = $('#'+ad_id).find('iframe'); if ($(ad).width() == 728) { var ww = $(window).width(); ww = ww*0.90; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/728+","+ww/728+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/728+","+ww/728+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/728+","+ww/728+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/728+","+ww/728+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(90*ww/728)+"px;width:"+728+"px;}", 0 ); } else { if ($(window).width() < 340) { var ww = $(window).width(); ww = ww*0.875; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/320+","+ww/320+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/320+","+ww/320+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/320+","+ww/320+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/320+","+ww/320+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(180*ww/320)+"px;width:"+320+"px;}", 0 ); } } } }); }); } else { document.write('
'); document.write('
'); }
LINEフロントエンドレンジャーのWeb開発術

フロントエンド開発が捗るHTTP通信モニタリングツール「Charles」を使いこなす

LINEフロントエンドレンジャーのWeb開発術 第2回

 本連載はLINEのフロントエンドエンジニアのチームがWeb開発において注目・活用している技術を紹介します。今回は、HTTPのプロキシ・モニタを行えるGUIのツール「Charles」について紹介します。

はじめに

 「Charles」はHTTPのプロキシ・モニタを行えるGUIのツールです。似たようなツールとしてはFidllerが代表的ですが、CharlesはUIや操作性がシンプルです(その分機能は限定的です)。「HTTPをモニタする」というとなんだか取っ付きにくそうに感じるかもしれませんが、Charlesを使うことでその認識は大きく変わります。今回はこのツールのさまざまな使い方をWebフロントエンドの開発視点から紹介していきたいと思います。その便利さから弊社のWebフロントエンド開発チームにはなくてはならないツールとなっています。

Charlesとは

 Charlesは公式サイトの説明にもある通り、HTTPプロキシ/HTTPモニタを行うツールです。機能を大きく分類するとできることはその2点だけですが、かゆいところに手が届く細かな機能を多く持っています。公式サイトから引用すると、機能としては以下のとおりです。

  • SSL Proxying - view SSL requests and responses in plain text
  • Bandwidth Throttling to simulate slower Internet connections including latency
  • AJAX debugging - view XML and JSON requests and responses as a tree or as text
  • AMF - view the contents of Flash Remoting / Flex Remoting messages as a tree
  • Repeat requests to test back-end changes
  • Edit requests to test different inputs
  • Breakpoints to intercept and edit requests or responses
  • Validate recorded HTML, CSS and RSS/atom responses using the W3C validator

 今回はこの中からいくつかの機能を紹介し、さらにそれらをWebの開発現場ではどのように利用しているのかを解説していきます。

Charlesの基本設定

 早速Charlesを使うための基本的な設定を見ていきます。なお、ここで紹介する設定はデフォルト値が設定されており、特に理由がなければ変更する必要はありません。

 Charlesを起動すると以下のようなGUIが開きます。3つのプラットフォームに対応しているCharlesですが、基本的な構成要素はどのプラットフォームでも同じです。

gui

 頻繁に利用される機能は上部に切り替えのボタンが設置されています。それぞれショートカットキーが割り振られていますので、よく使う機能については覚えておくと便利です。[Structure]を選択していると大きく左右にビューが分かれ、左側に通信のログが、右側にログを選択した時の詳細が表示されるようになります。[Sequence]を選択した場合は上下に分かれ、上部が通信ログ、下部が詳細です。

プロキシの設定

 プロキシの設定を見ていきます。メニューから[Proxy]→[Proxy Settings]を開きます。

proxy settings

 [Proxies]のタブを見ると[HTTP Proxy]の設定項目があり、デフォルトでPortに8888が設定されています。Charlesはここで設定されたポートを使い、やり取りされる通信を監視します。後述する操作もこのプロキシの設定と設定されたポートが使われていることが前提になります。

 Charlesを起動するとこの設定値に基づき、自動でプロキシの設定が行われます。自動で設定される項目は以下のようになります。

Windowsの場合

win proxy

 [コントロールパネル]→[インターネットオプション]→[接続]→[ローカルエリアネットワーク(LAN)の設定 - LANの設定]→[プロキシサーバー - 詳細設定]、[HTTP]の項目の[使用するプロキシのアドレス]に127.0.0.1、[ポート]に8888が設定されています。

Mac OSの場合

mac proxy

 [システム環境設定]→[ネットワーク]→[利用するネットワーク]→[詳細]→[プロキシ]、[Webプロキシ(HTTP)]の項目にチェックが入った状態で、Web プロキシサーバに127.0.0.1、その横にポート番号の8888が設定されています。

 HTTPS通信も同じように自動で設定がされています。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます
  • ・翔泳社の本が買える!
    500円分のポイントをプレゼント

メールバックナンバー

次のページ
HTTP通信をモニタする

この記事は参考になりましたか?

LINEフロントエンドレンジャーのWeb開発術連載記事一覧

もっと読む

この記事の著者

縣 亮太(LINE株式会社)(アガタ リョウタ)

LINE株式会社Webフロントエンド担当のJavaScript書き。NAVERまとめやLINE内Webアプリを担当する。 Backbone.jsが好きで仕事でもプライベートでも利用する機会が多い。最近はKnockoutjsに注目しており、JavaScriptのデータバインディングな世界を試行錯誤中。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/8461 2015/02/20 14:00
" ); }

おすすめ

アクセスランキング

  1. 1
    「Dify」、イベントやスケジュールを契機にAIワークフローを開始する新基盤を追加 NEW
  2. 2
    日本IBM、AIエージェント主導の開発ツール「Project Bob」を発表——要件定義から実装までを自律実行
  3. 3
    アリババ、Qwenを統合したAIブラウザ「Quark」デスクトップ版発表 NEW
  4. 4
    Linux Foundation、「Linuxカーネル開発 初心者向けガイド」日本語版を無料公開
  5. 5
    青山学院大学、設置を構想する「統計データサイエンス学環(仮称)」の特設ページを公開 NEW
  1. 6
    「属人化テスト」からの脱却。AIを味方にして未経験者を即戦力にしたtoridoriのQA組織の作り方
  2. 7
    Unity、Webベースのノーコード3Dエディタ「Unity Studio」ベータ版を発表
  3. 8
    GitHub CopilotがBYOK機能のパブリックプレビューを開始、各プロバイダーのAPIキーを直接接続
  4. 9
    エクセルソフト、12月4日にオンラインでAIデータ解析入門ウェビナーを開催
  5. 10
    GoogleがAI駆動開発を支援するIDE「Antigravity」を無料公開

アクセスランキング

  1. 1
    「Dify」、イベントやスケジュールを契機にAIワークフローを開始する新基盤を追加 NEW
  2. 2
    日本IBM、AIエージェント主導の開発ツール「Project Bob」を発表——要件定義から実装までを自律実行
  3. 3
    アリババ、Qwenを統合したAIブラウザ「Quark」デスクトップ版発表 NEW
  4. 4
    Linux Foundation、「Linuxカーネル開発 初心者向けガイド」日本語版を無料公開
  5. 5
    青山学院大学、設置を構想する「統計データサイエンス学環(仮称)」の特設ページを公開 NEW
  6. 6
    「属人化テスト」からの脱却。AIを味方にして未経験者を即戦力にしたtoridoriのQA組織の作り方
  7. 7
    Unity、Webベースのノーコード3Dエディタ「Unity Studio」ベータ版を発表
  8. 8
    GitHub CopilotがBYOK機能のパブリックプレビューを開始、各プロバイダーのAPIキーを直接接続
  9. 9
    エクセルソフト、12月4日にオンラインでAIデータ解析入門ウェビナーを開催
  10. 10
    GoogleがAI駆動開発を支援するIDE「Antigravity」を無料公開
  1. 1
    Linux Foundation、「Linuxカーネル開発 初心者向けガイド」日本語版を無料公開
  2. 2
    VS CodeでPython開発環境を構築しよう
  3. 3
    VSCodeでGitHub Copilotのタスク管理が可能に
  4. 4
    MCP Python SDKで天気予報サーバーを開発──実装から動作確認まで徹底解説
  5. 5
    マネーフォワード流Cursorでの開発自動化方法。「コンテキストエンジニアリング」で一歩先の生産性へ
  6. 6
    GoogleがAI駆動開発を支援するIDE「Antigravity」を無料公開
  7. 7
    Claude Codeでレビュー負荷軽減──KINTOテクノロジーズが実践する「説明補助ツール」としての生成AI活用術
  8. 8
    【トップページを実装しよう!】PythonとSQLで実装する「ホームページ」の仕組み
  9. 9
    Google、Gemini API向けのRAGシステム「File Search Tool」を発表
  10. 10
    Googleがコード理解を支援する「Code Wiki」を公開、リポジトリ更新に合わせたドキュメントの自動生成など

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

メールバックナンバー

アクセスランキング

  1. 1
    「Dify」、イベントやスケジュールを契機にAIワークフローを開始する新基盤を追加 NEW
  2. 2
    日本IBM、AIエージェント主導の開発ツール「Project Bob」を発表——要件定義から実装までを自律実行
  3. 3
    アリババ、Qwenを統合したAIブラウザ「Quark」デスクトップ版発表 NEW
  4. 4
    Linux Foundation、「Linuxカーネル開発 初心者向けガイド」日本語版を無料公開
  5. 5
    青山学院大学、設置を構想する「統計データサイエンス学環(仮称)」の特設ページを公開 NEW
  1. 6
    「属人化テスト」からの脱却。AIを味方にして未経験者を即戦力にしたtoridoriのQA組織の作り方
  2. 7
    Unity、Webベースのノーコード3Dエディタ「Unity Studio」ベータ版を発表
  3. 8
    GitHub CopilotがBYOK機能のパブリックプレビューを開始、各プロバイダーのAPIキーを直接接続
  4. 9
    エクセルソフト、12月4日にオンラインでAIデータ解析入門ウェビナーを開催
  5. 10
    GoogleがAI駆動開発を支援するIDE「Antigravity」を無料公開

アクセスランキング

  1. 1
    「Dify」、イベントやスケジュールを契機にAIワークフローを開始する新基盤を追加 NEW
  2. 2
    日本IBM、AIエージェント主導の開発ツール「Project Bob」を発表——要件定義から実装までを自律実行
  3. 3
    アリババ、Qwenを統合したAIブラウザ「Quark」デスクトップ版発表 NEW
  4. 4
    Linux Foundation、「Linuxカーネル開発 初心者向けガイド」日本語版を無料公開
  5. 5
    青山学院大学、設置を構想する「統計データサイエンス学環(仮称)」の特設ページを公開 NEW
  6. 6
    「属人化テスト」からの脱却。AIを味方にして未経験者を即戦力にしたtoridoriのQA組織の作り方
  7. 7
    Unity、Webベースのノーコード3Dエディタ「Unity Studio」ベータ版を発表
  8. 8
    GitHub CopilotがBYOK機能のパブリックプレビューを開始、各プロバイダーのAPIキーを直接接続
  9. 9
    エクセルソフト、12月4日にオンラインでAIデータ解析入門ウェビナーを開催
  10. 10
    GoogleがAI駆動開発を支援するIDE「Antigravity」を無料公開
  1. 1
    Linux Foundation、「Linuxカーネル開発 初心者向けガイド」日本語版を無料公開
  2. 2
    VS CodeでPython開発環境を構築しよう
  3. 3
    VSCodeでGitHub Copilotのタスク管理が可能に
  4. 4
    MCP Python SDKで天気予報サーバーを開発──実装から動作確認まで徹底解説
  5. 5
    マネーフォワード流Cursorでの開発自動化方法。「コンテキストエンジニアリング」で一歩先の生産性へ
  6. 6
    GoogleがAI駆動開発を支援するIDE「Antigravity」を無料公開
  7. 7
    Claude Codeでレビュー負荷軽減──KINTOテクノロジーズが実践する「説明補助ツール」としての生成AI活用術
  8. 8
    【トップページを実装しよう!】PythonとSQLで実装する「ホームページ」の仕組み
  9. 9
    Google、Gemini API向けのRAGシステム「File Search Tool」を発表
  10. 10
    Googleがコード理解を支援する「Code Wiki」を公開、リポジトリ更新に合わせたドキュメントの自動生成など