Миграция с Charles Proxy
Таблица соответствия инструментов Charles и перенос записанной сессии через HAR по шагам: что переносится, что теряется и какие есть ограничения.
Что соответствует чему
Charles разложен по меню Tools; у Solpuga часть того же в меню Инструменты, часть — в самом списке запросов. Где соответствия нет, стоит прочерк.
| Charles | Solpuga |
|---|---|
| Map Local | Локальная подмена |
| Breakpoints | Брейкпоинты |
| SSL Proxying exclusions | Список исключений |
| Client Process | Приложение-источник |
| Export Session → HAR | Экспорт HAR 1.2 |
| Import Session → HAR | Импорт HAR, только чтение |
| Структура по хостам | Группировка по хостам и приложениям |
| Filter | Поиск и фильтры |
| Timing | Тайминг по фазам |
| WebSocket | Частично: запись сообщений, без отправки |
| Map Remote | — |
| Rewrite | — |
| Throttling | — |
| Repeat, Repeat Advanced, Compose | — |
| DNS Spoofing, Mirror, Auto Save, Block List | — |
| HTTP/2 | — |
| Скрипты | — |
Перенос сессий через HAR
Свой формат .chlz не читает ничто, кроме Charles, поэтому переносить надо через
HAR: Charles отдаёт его с версии 3.6, Solpuga открывает.
В Charles. File → Export Session… → формат HTTP Archive (.har) →
сохранить. Для части записи: выделить нужные запросы и
File → Export Selected Session….
В Solpuga. Меню Инструменты → импорт HAR (Cmd/Ctrl + Shift + I), либо
открыть .har из файлового менеджера. Файл открывается в отдельном окне
только для чтения со своим списком и инспектором: живой перехват при этом не
затрагивается, так что импортировать чужую сессию можно не останавливая свою.
Ограничение одно: файлы больше 500 МБ не принимаются. Сессия Charles на сутки записи легко переваливает за эту границу — выгружайте выборкой.
Что переносится
Заголовки запроса и ответа, тела, статусы, тайминги — всё, что HAR 1.2 описывает. В импортированном окне работает тот же инспектор, что и в живом перехвате: JSON сворачивается деревом, изображения показываются с размерами, двоичное — как hex. Тела и исходные сообщения можно сохранить в файлы.
Что теряется
Это ограничения формата, а не чьей-то реализации:
- Правила. Map Local, Rewrite, брейкпоинты и фильтры в HAR не входят вообще — формат описывает трафик, а не настройки. Правила придётся создать заново, и быстрее всего это делается из перехваченного запроса: правило заполняется тем ответом, который реально пришёл.
- WebSocket. В HAR для них нет места.
- Двоичные тела запросов. Solpuga их в свой экспорт не кладёт и помечает комментарием; у других экспортёров свои пределы на размер.
- Незавершённые запросы. В экспорте Solpuga их нет, а неудачные уезжают со
статусом
0. - Повторное распаковывание. Тела в HAR от Solpuga лежат расшифрованными и
распакованными, а заголовки ответа — такими, как пришли. Импортёр, который
верит
Content-Encoding, попробует распаковать второй раз. Если текст открылся мусором — дело в этом, а не в файле.
Что взамен
Интерфейс на русском и английском и бесплатный тариф без ограничения по времени.