Charles Proxy – это мощный инструмент для отладки и анализа HTTP/HTTPS трафика. Основные функции:
- Proxying: Позволяет перехватывать, просматривать и модифицировать весь HTTP/HTTPS трафик между клиентом и сервером. Поддерживает работу с веб-браузерами, мобильными приложениями и другими клиентами.
- SSL Proxying: Расшифровывает SSL/TLS трафик, позволяя видеть содержимое защищенных запросов и ответов. Требует установки сертификата Charles на клиентском устройстве.
- Recording: Записывает все сессии трафика, позволяя просматривать их позже.
- Sequence: Отображает запросы и ответы в хронологическом порядке.
- Structure: Показывает иерархическую структуру URL-адресов и хостов, к которым обращался клиент.
- Viewers: Различные просмотрщики для содержимого запросов и ответов (текст, JSON, XML, Hex и др.). Автоматическое форматирование JSON и XML.
- Breakpoints: Позволяет останавливать запрос или ответ в процессе его выполнения, изучать и модифицировать его до того, как он достигнет адресата (клиента или сервера).
- Map Local: Перенаправляет запросы к определенному URL на локальный файл. Полезно для тестирования фронтенда с измененными API ответами, без изменения кода клиента.
- Map Remote: Перенаправляет запросы к одному URL на другой удаленный URL. Полезно для тестирования перенаправлений или работы с разными версиями API.
- Rewrite: Модифицирует запросы или ответы "на лету", заменяя, добавляя или удаляя части данных (заголовки, тело, URL, статус).
- Throttle: Имитирует медленное или некачественное сетевое соединение, позволяя тестировать поведение приложения при различных условиях сети. Можно настраивать пропускную способность, задержку, потери пакетов.
- No Caching: Отключает кэширование на клиенте, чтобы каждый запрос выполнялся к серверу.
- Repeat: Позволяет повторить выбранный запрос один или несколько раз.
- Compose: Позволяет создать и отправить новый HTTP запрос.
- Export/Import: Экспорт записанных сессий в различные форматы (Charles Session, XML, HAR) для дальнейшего анализа или совместного использования.
- Publish Gist: Позволяет опубликовать выбранный запрос/ответ или сессию в виде Gist на GitHub.
- Tools: Дополнительные инструменты, такие как DNS spoofing, Client Process filtering, Blacklist/Whitelist хостов.