HTTPRY(1)

πŸ“¦
version 0.1.8 Β· 2 versions
, in debian bookworm, debian trixie, ubuntu jammy, ubuntu noble, ubuntu questing, ubuntu resolute

πŸ‘‘ httpry(1) β€” General Commands Manual, but make it a group chat πŸ‘‘

okay bestie, so this is httpry(1), from the General Commands Manual, and it's genuinely one of the most useful little tools ever, so let's get into it πŸ’–


🌸 NAME 🌸

httpry β€” the HTTP logging and information retrieval tool, aka your new fave ✨


πŸ¦‹ SYNOPSIS πŸ¦‹

httpry [ -dFpq ] [ -b file ] [ -f format ] [ -i device ] [ -m methods ]
[ -n count ] [ -o file ] [ -P file ] [ -r file ] [ -S bytes ] [ -u user
] [ 'expression' ]
httpry -s [ -l threshold ] [ -t seconds ]
httpry -h

πŸ’… DESCRIPTION πŸ’…

so httpry is a tool made for displaying and logging HTTP traffic. and here's the important part, bestie β€” it is not designed to do the analysis itself. no no. it captures, parses and logs the traffic so you can analyze it later. main character energy but make it humble 🫢

you can run it in real time and watch the live traffic on the wire, or run it as a daemon process that logs everything into an output file. both are iconic, pick your vibe ✨


πŸ’– OPTIONS πŸ’–

  • -b file β€” write every single processed HTTP packet to a binary pcap dump file. lowkey so good if you wanna dig into the logged data later πŸ”₯
  • -d β€” run the program as a daemon process. all the program status output goes to syslog, and a pid file gets created for the process in /var/run/httpry.pid by default. requires an output file specified with -o. no -o, no daemon, fr fr.
  • -f format β€” hand it a comma-delimited string saying which parsed HTTP data to output. go peek at the doc/format-string file for all the deets on the available options and syntax πŸ“–
  • -F β€” disable all output buffering. super helpful when you're piping httpry output into another program. it's giving instant gratification πŸ’…
  • -h β€” show a brief description of these options. short and sweet, we love her.
  • -i device β€” specify an ethernet interface for the program to listen on. if you don't specify one, the program polls the system for a list of interfaces and picks the first one found. bestie, just set it yourself, trust πŸ™ˆ
  • -l threshold β€” set a requests-per-second rate threshold value when you're running in rate statistics mode (-s). only hosts with a rps value greater than or equal to this number get displayed. defaults to 1.
  • -m methods β€” give it a comma-delimited string that specifies which request methods to parse. if you don't set this option, it defaults to parsing all of the standard RFC2616 method strings. see the doc/method-string file for more info πŸ“š
  • -n count β€” parse this number of HTTP packets and then exit. defaults to 0, which means loop forever ♾️
  • -o file β€” specify an output file for writing parsed packet data. the classic move.
  • -p β€” do not put the NIC in promiscuous mode on startup. heads up though: the NIC could already be in that mode for another reason, so don't be shocked πŸ‘€
  • -P file β€” specify a path and filename for creating the PID file when you're in daemon mode.
  • -q β€” suppress non-critical output (the startup banner, statistics, etc.). quiet luxury πŸŽ€
  • -r file β€” provide an input capture file to read from instead of doing a live capture. and the best part?? this option does not require root privileges πŸŽ‰
  • -s β€” run httpry in an HTTP request per second display mode. this periodically displays the rate per active host and the total rate at a specified interval. the numbers, the drama, obsessed ✨
  • -S β€” specify a number of bytes to skip in the ethernet header. this lets you account for custom header offsets.
  • -t seconds β€” specify the host statistics display interval in seconds when running in rate statistics mode (-s). defaults to 5 seconds.
ok so heads up, the original page has a stray merge-conflict marker sitting right here in this entry: >>>>>>> HEAD~0. not me noticing that πŸ’€ anyway, the actual info is the sentence above.
  • -u user β€” specify an alternate user to take ownership of the process and any output files. you will need root privileges to do this; it switches to the new user after initialization.
  • 'expression' β€” specify a bpf-style capture filter, overriding the default. here are a few basic examples, starting with the default filter:
'tcp port 80 or 8080'
'tcp dst port 80'
'tcp dst port 80 and src host 192.168.1.1'

so those filters, in order, will: capture all web traffic both directions on two common ports, capture only requests made to port 80, and capture requests to port 80 by a particular host. respectively πŸ’… see man tcpdump for more info on the syntax and the available primitives.


🫢 AUTHOR 🫢

httpry was written by Jason Bittel <jason.bittel@gmail.com>. see the included COPYING file for specific licensing information.


and that's the whole page, bestie 🌈 β€” General Commands Manual, httpry(1), that's the footer, and honestly? slay. periodt πŸ’–βœ¨