- Công cụ proxy gỡ lỗi web cho phép phân tích trực quan lưu lượng HTTP và HTTPS, có thể xem toàn bộ thông tin request, response và header
- Tích hợp các tính năng Reverse Proxy, SSL Proxy, HTTP Monitor giúp nhà phát triển theo dõi chi tiết giao tiếp mạng
- Phiên bản mới nhất Charles 5.0.3 đã sửa vấn đề hiệu năng trên macOS và bao gồm một số cải tiến nhỏ
- Các cải tiến về UI, hỗ trợ chế độ tối, nâng cao hiệu năng đã liên tục được bổ sung từ giai đoạn beta 5.x
- Là một công cụ gỡ lỗi web tiêu biểu được cập nhật đều đặn từ giữa những năm 2000, được sử dụng rộng rãi trong môi trường phát triển di động, Flash và iOS
Tổng quan
- Charles là một proxy gỡ lỗi web cho phép nhà phát triển xem toàn bộ lưu lượng HTTP và SSL/HTTPS giữa máy tính của mình và Internet
- Hiển thị đầy đủ request, response, HTTP header (bao gồm thông tin cookie và cache)
- Tích hợp các chức năng HTTP Proxy, HTTPS Proxy, Reverse Proxy, HTTP Monitor
Xu hướng phát triển gần đây
- 20 tháng 9, 2025: Phát hành Charles 5.0.3, sửa vấn đề hiệu năng trên macOS và một số cải tiến nhỏ
- 9 tháng 8, 2025: Phát hành 5.0.2, sửa lỗi và một số cải tiến nhỏ
- 12 tháng 3, 2025: Charles 5 chính thức ra mắt
- 24 tháng 1, 2024: Công bố beta 13 của 5, cải tiến UI trên Windows và hỗ trợ chế độ tối
- Tháng 7~4, 2023: Ở các phiên bản beta 9~11 có cải tiến UI và hiệu năng, thêm tính năng mới, sửa lỗi
- Tháng 9, 2022: Phát hành 4.6.3, cập nhật Java 11 và sửa lỗi
- Tháng 12, 2021: Thông báo liên quan đến lỗ hổng log4j2 — Charles không sử dụng log4j nên không bị ảnh hưởng
- 2020~2019: Trong các phiên bản 4.6~4.5 có hỗ trợ Dark Mode, cải thiện chứng chỉ SSL, vá lỗ hổng bảo mật
- Tháng 5, 2018: Ra mắt Charles cho iOS
- 2016: Phát hành Charles 4 với hỗ trợ HTTP/2 và IPv6
- 2006~2009: Bổ sung hỗ trợ AMF, SOAP, JSON và cải tiến lớn về UI
- 2005: Giới thiệu thiết lập proxy tự động cho Firefox và tính năng phân tích Flash Remoting
- 2003~2004: Hoàn thiện các tính năng cốt lõi như SSL, Reverse Proxy, SOCKS Proxy
Tính năng chính
- Giám sát lưu lượng HTTP/HTTPS: kiểm tra theo thời gian thực request, response, header, cookie, thông tin cache
- SSL Proxy và Reverse Proxy: hỗ trợ phân tích giao tiếp được mã hóa và theo dõi phản hồi từ máy chủ
- Công cụ phân tích dựa trên UI: cung cấp so sánh request/response, lọc lưu lượng, lưu phiên
- Hỗ trợ nhiều nền tảng: hoạt động trên macOS, Windows, iOS...
- Cải thiện hiệu năng và độ ổn định: liên tục sửa lỗi và cập nhật chữ ký mã
Đánh giá bên ngoài và các trường hợp sử dụng
- Andrew Bardallis: giới thiệu cách dùng Charles cùng thiết bị di động để quan sát và chỉnh sửa lưu lượng
- Tobias Sjösten: mô tả các trường hợp giám sát và gỡ lỗi bằng Charles
- Dan Grigsby: sử dụng Charles để phân tích dữ liệu XML của iPhone App Store
- Gary Rogers: ứng dụng Charles để gỡ lỗi kết nối HTTP trên iPhone
- MadeByPi, Frankie Loscavio, Darren Richardson, uberGeek cùng nhiều người khác nhấn mạnh hiệu quả gỡ lỗi trong môi trường phát triển Flash và Flex
Đánh giá tổng hợp
- Qua hơn 20 năm được cập nhật liên tục, Charles đã trở thành công cụ phân tích mạng thiết yếu cho nhà phát triển web và di động
- Với hỗ trợ nhiều giao thức và UI trực quan, công cụ này nâng cao hiệu quả gỡ lỗi, đồng thời các cải tiến về bảo mật, hiệu năng và khả năng tương thích vẫn được duy trì đều đặn
1 bình luận
Ý kiến trên Hacker News
Muốn nhắc đến Fiddler, công cụ mà trước đây tôi từng cực kỳ yêu thích
Khi lần đầu dùng nó cách đây gần 20 năm, tôi đã thấy nó như một công cụ đến từ tương lai. Theo tôi nhớ thì thời đó nó còn mạnh hơn Charles
Ban đầu nó chỉ dành cho Windows, nhưng khi ấy họ cũng đang chuẩn bị các bản dựng cho nền tảng khác. Sau đó công ty bị mua lại nên lộ trình thay đổi, còn tôi thì cũng rời Windows
Trang chính thức của Fiddler
Không biết bạn có từng tìm được công cụ thay thế cho macOS nào không. Tôi đến giờ vẫn chưa tìm được thứ gì thật sự ổn
Đó đúng là một công cụ kiểu viên ngọc ẩn
Phương án miễn phí gần nhất là mitmproxy, nhưng thật lòng là vẫn không thể so sánh được
Tất nhiên còn có Wireshark, nhưng nó quá đa dụng và đường cong học tập khá dốc
Ngày trước có thể dùng mà không cần thuê bao, và nó hoàn toàn xứng đáng với số tiền bỏ ra
Tôi dùng gomitmproxy để xử lý sniffing lưu lượng và mã hóa lại
Mã nguồn trước đây tôi đăng ở đây, nhưng máy chủ git bị hỏng nên không khôi phục được
Dạo này tôi tự hỏi liệu AI có thể biến đống mã sơ sài của tôi thành một bản clone Charles hoàn chỉnh hay không
Nhưng việc Apple yêu cầu tài khoản nhà phát triển trả phí để truy cập Packet Tunnel API thật sự rất khó chịu. Tôi còn mất hơn một ngày loay hoay vì không thể test được cả trên simulator
Dạo này nhiều app bị chặn bởi certificate pinning, nhưng gặp trường hợp đó thì tôi xử lý bằng Frida
Link tải Burp
Burp Suite cũng có chức năng tương tự, nhưng định hướng khác
Charles tập trung vào quan sát và debug lưu lượng HTTP(S), nên rất phù hợp để nhanh chóng xác định vấn đề
Trong khi đó Burp thiên về bảo mật, chuyên cho intercept, gửi lại, tự động hóa và phân tích bề mặt tấn công
Vì vậy khi chỉ cần khả năng quan sát đơn giản thì tôi dùng Charles, còn khi mục tiêu là phân tích bảo mật thì dùng Burp
Tôi đã dùng Charles rất lâu vì không cần tính năng phức tạp, nhưng vài năm trước đã chuyển sang Proxyman và thấy dễ dùng hơn hẳn
Cấu trúc menu khá rối và tính năng liên quan đến DNS còn thiếu. Tôi cũng đã thử Proxyman, nhưng cảm giác không thấy tốt hơn rõ rệt nên không mua thêm giấy phép
Cảm ơn cả hai nhà phát triển
Tôi thấy lạ là tại sao cái này lại đang ở trang chính Hacker News. Tôi nghĩ đây đã là công cụ quá nổi tiếng rồi
Với nhu cầu đơn giản, tôi đang dùng bản miễn phí của HTTP Toolkit
Nó mở một cửa sổ Firefox riêng để chặn lưu lượng, nên rất tiện vì không phải đụng vào cấu hình trình duyệt làm việc của tôi
Khi bắt đầu phát triển iOS vào năm 2011, Charles là công cụ không thể thiếu để debug HTTP API
Thật vui khi thấy nó vẫn được duy trì đều đặn đến tận bây giờ
Năm ngoái tôi mới lần đầu dùng Charles Proxy và thấy nó thật sự rất xuất sắc
Nó còn có cả phiên bản app di động để dùng khi cần proxy SSL cho ứng dụng di động
Tôi vẫn nghĩ đây là một trong những phần mềm tốt nhất
Dạo này tôi đang dùng Proxyman
Tôi là người dùng Burp, nhưng dạo này Caido đang nổi lên
Nó nhẹ và có thể chạy ở chế độ headless. Dù vẫn tập trung vào bảo mật, nó được thiết kế để proxy toàn bộ lưu lượng trên VPS hoặc container