aboutsummaryrefslogtreecommitdiffstats
path: root/docs/src/content/overview-tools.md
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2018-02-22 17:21:34 +1300
committerAldo Cortesi <aldo@nullcube.com>2018-02-22 18:07:58 +1300
commit982508d30f887b4fe8b2a855792ae1e33f378222 (patch)
tree9d749a57929a950f0e177a9bf4d6cd7d9a88c16b /docs/src/content/overview-tools.md
parent1cacefa104626e4e0df5ffb2aa8b0c6f16b615b2 (diff)
downloadmitmproxy-982508d30f887b4fe8b2a855792ae1e33f378222.tar.gz
mitmproxy-982508d30f887b4fe8b2a855792ae1e33f378222.tar.bz2
mitmproxy-982508d30f887b4fe8b2a855792ae1e33f378222.zip
All new documentation
This patch does a lot. - Ditch sphinx in favor of hugo. This gives us complete control of the layout and presentation of our docs. Henceforth, docs will be hosted on our website rather than ReadTheDocs. - Create a simple, clean doc layout and theme. - Remove large parts of the documentaion. I've ditched anything that was a) woefully out of date, b) too detailed, or c) too hard to maintain in the long term. - Huge updates to the docs themselves: completely rewrite addons documentation, add docs for core concepts like commands and options, and revise and tweak a lot of the existing docs. With this patch, we're also changing the way we publish and maintain the docs. From now on, we don't publish docs for every release. Instead, the website will contain ONE set of docs for each major release. The online docs will be updated if needed as minor releases are made. Docs are free to improve during minor releases, but anything that changes behaviour sufficiently to require a doc change warrants a new major release. This also leaves us free to progressively update and improve docs out of step with our release cadence. With this new scheme, I feel CI over the docs is less important. I've removed it for now, but won't object if someone wants to add it back in.
Diffstat (limited to 'docs/src/content/overview-tools.md')
-rw-r--r--docs/src/content/overview-tools.md105
1 files changed, 105 insertions, 0 deletions
diff --git a/docs/src/content/overview-tools.md b/docs/src/content/overview-tools.md
new file mode 100644
index 00000000..7612383a
--- /dev/null
+++ b/docs/src/content/overview-tools.md
@@ -0,0 +1,105 @@
+---
+title: "Tools"
+menu: "overview"
+menu:
+ overview:
+ weight: 3
+---
+
+# Overview
+
+You should thin of the mitmproxy project's tools as a set of front-ends that
+expose the same underlying functionality. We aim to have feature parity across
+all of our tooling, and all tools share a common configuration mechanism and
+most command-line options.
+
+## mitmproxy
+
+{{< figure src="/screenshots/mitmproxy.png" >}}
+
+**mitmproxy** is a console tool that allows interactive examination and
+modification of HTTP traffic. It differs from mitmdump in that all flows are
+kept in memory, which means that it's intended for taking and manipulating
+small-ish samples. Use the `?` shortcut key to view, context-sensitive
+documentation from any **mitmproxy** screen.
+
+
+## mitmweb
+
+{{< figure src="/screenshots/mitmweb.png" >}}
+
+**mitmweb** is mitmproxy's web-based user interface that allows
+interactive examination and modification of HTTP traffic. Like
+mitmproxy, it differs from mitmdump in that all flows are kept in
+memory, which means that it's intended for taking and manipulating
+small-ish samples.
+
+{{% note %}}
+Mitmweb is currently in beta. We consider it stable for all features
+currently exposed in the UI, but it still misses a lot of mitmproxy's
+features.
+{{% /note %}}
+
+
+## mitmdump
+
+**mitmdump** is the command-line companion to mitmproxy. It provides
+tcpdump-like functionality to let you view, record, and programmatically
+transform HTTP traffic. See the `--help` flag output for complete
+documentation.
+
+
+### Example: Saving traffic
+
+{{< highlight bash >}}
+mitmdump -w outfile
+{{< / highlight >}}
+
+Start up mitmdump in proxy mode, and write all traffic to **outfile**.
+
+### Filtering saved traffic
+
+{{< highlight bash >}}
+mitmdump -nr infile -w outfile "~m post"
+{{< / highlight >}}
+
+Start mitmdump without binding to the proxy port (`-n`), read all flows
+from infile, apply the specified filter expression (only match POSTs),
+and write to outfile.
+
+### Client replay
+
+{{< highlight bash >}}
+mitmdump -nc outfile
+{{< / highlight >}}
+
+Start mitmdump without binding to the proxy port (`-n`), then replay all
+requests from outfile (`-c filename`). Flags combine in the obvious way,
+so you can replay requests from one file, and write the resulting flows
+to another:
+
+{{< highlight bash >}}
+mitmdump -nc srcfile -w dstfile
+{{< / highlight >}}
+
+See the [client-side replay]({{< relref "overview-features#client-side-replay"
+>}}) section for more information.
+
+### Running a script
+
+{{< highlight bash >}}
+mitmdump -s examples/add_header.py
+{{< / highlight >}}
+
+This runs the **add_header.py** example script, which simply adds a new
+header to all responses.
+
+### Scripted data transformation
+
+{{< highlight bash >}}
+mitmdump -ns examples/add_header.py -r srcfile -w dstfile
+{{< / highlight >}}
+
+This command loads flows from **srcfile**, transforms it according to
+the specified script, then writes it back to **dstfile**.
+