Ответ
Да, Charles Proxy поддерживает перехват и анализ трафика WebSocket (WS/WSS).
Настройка для захвата WebSocket-трафика:
- Включите поддержку WebSocket: Proxy → SSL Proxying Settings → Enable WebSocket.
- Добавьте целевой хост и порт (например,
*.example.com:443) в Proxy → SSL Proxying Settings. - Убедитесь, что устройство/браузер используют Charles как прокси, и доверенный сертификат Charles установлен.
Что можно увидеть в Charles:
- Handshake: Начальное HTTP-соединение с заголовками
Upgrade: websocket. - Сообщения (Frames): Отдельные текстовые или бинарные сообщения, отправленные в обе стороны.
- Метаданные: Временные метки, размер, направление (Outgoing/Incoming).
Пример отображения сообщения в Charles:
WebSocket Message (text)
Timestamp: 14:25:10.123
Direction: Outgoing
Content: {"type":"chat","user":"Alice","message":"Hello!"}
Ограничения и особенности:
- Charles отображает сообщения как отдельные события, а не как непрерывный поток.
- Для зашифрованного WebSocket (WSS) требуется расшифровка SSL.
- Можно использовать Breakpoints для модификации сообщений на лету, что полезно для тестирования обработки ошибок клиентом.