Skip to content

Commit f66e469

Browse files
Merge pull request #2435 from projectdiscovery/dev
release httpx v1.9.0
2 parents 4a09273 + 73afc60 commit f66e469

27 files changed

Lines changed: 1643 additions & 972 deletions

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
## Proposed changes
2+
3+
<!-- Describe the overall picture of your modifications to help maintainers understand the pull request. PRs are required to be associated to their related issue tickets or feature request. -->
4+
5+
### Proof
6+
7+
<!-- How has this been tested? Please describe the tests that you ran to verify your changes. -->
8+
9+
## Checklist
10+
11+
<!-- Put an "x" in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code. -->
12+
13+
- [ ] Pull request is created against the [dev](https://github.com/projectdiscovery/httpx/tree/dev) branch
14+
- [ ] All checks passed (lint, unit/integration/regression tests etc.) with my changes
15+
- [ ] I have added tests that prove my fix is effective or that my feature works
16+
- [ ] I have added necessary documentation (if appropriate)

.github/workflows/build-test.yml

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,7 @@ jobs:
1515
steps:
1616
- uses: actions/checkout@v4
1717
- uses: projectdiscovery/actions/setup/go@v1
18-
- name: Run golangci-lint
19-
uses: golangci/golangci-lint-action@v5
20-
with:
21-
version: latest
22-
args: --timeout 5m
23-
working-directory: .
18+
- uses: projectdiscovery/actions/golangci-lint/v2@v1
2419

2520
build:
2621
name: Test Builds

.github/workflows/functional-test.yml

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,18 @@ on:
77
- '**.mod'
88
workflow_dispatch:
99

10-
jobs:
10+
jobs:
1111
functional:
1212
name: Functional Test
1313
runs-on: ${{ matrix.os }}
1414
strategy:
1515
matrix:
1616
os: [ubuntu-latest, windows-latest, macOS-latest]
1717
steps:
18-
- name: Set up Go
19-
uses: actions/setup-go@v4
20-
with:
21-
go-version: 1.21.x
22-
2318
- name: Check out code
24-
uses: actions/checkout@v3
19+
uses: actions/checkout@v4
20+
21+
- uses: projectdiscovery/actions/setup/go@v1
2522

2623
- name: Functional Tests
2724
run: |

.github/workflows/release-binary.yml

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,23 +11,20 @@ jobs:
1111
runs-on: ubuntu-latest-16-cores
1212
steps:
1313
- name: "Check out code"
14-
uses: actions/checkout@v3
15-
with:
14+
uses: actions/checkout@v4
15+
with:
1616
fetch-depth: 0
17-
18-
- name: "Set up Go"
19-
uses: actions/setup-go@v4
20-
with:
21-
go-version: 1.21.x
22-
17+
18+
- uses: projectdiscovery/actions/setup/go@v1
19+
2320
- name: "Create release on GitHub"
2421
uses: goreleaser/goreleaser-action@v4
25-
with:
22+
with:
2623
args: "release --clean"
2724
version: latest
2825
workdir: .
29-
env:
26+
env:
3027
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
3128
SLACK_WEBHOOK: "${{ secrets.RELEASE_SLACK_WEBHOOK }}"
3229
DISCORD_WEBHOOK_ID: "${{ secrets.DISCORD_WEBHOOK_ID }}"
33-
DISCORD_WEBHOOK_TOKEN: "${{ secrets.DISCORD_WEBHOOK_TOKEN }}"
30+
DISCORD_WEBHOOK_TOKEN: "${{ secrets.DISCORD_WEBHOOK_TOKEN }}"

.github/workflows/release-test.yml

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,12 @@ jobs:
1212
runs-on: ubuntu-latest-16-cores
1313
steps:
1414
- name: "Check out code"
15-
uses: actions/checkout@v3
16-
with:
15+
uses: actions/checkout@v4
16+
with:
1717
fetch-depth: 0
1818

19-
- name: Set up Go
20-
uses: actions/setup-go@v4
21-
with:
22-
go-version: 1.21.x
23-
19+
- uses: projectdiscovery/actions/setup/go@v1
20+
2421
- name: release test
2522
uses: goreleaser/goreleaser-action@v4
2623
with:

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Base
2-
FROM golang:1.24.5-alpine AS builder
2+
FROM golang:1.25.7-alpine AS builder
33

44
RUN apk add --no-cache git build-base gcc musl-dev
55
WORKDIR /app

README.md

Lines changed: 54 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@
6262

6363
# Installation Instructions
6464

65-
`httpx` requires **go >=1.24.0** to install successfully. Run the following command to get the repo:
65+
`httpx` requires **go >=1.25.0** to install successfully. Run the following command to get the repo:
6666

6767
```sh
6868
go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest
@@ -98,42 +98,40 @@ INPUT:
9898
-im, -input-mode string mode of input file (burp)
9999

100100
PROBES:
101-
-sc, -status-code display response status-code
102-
-cl, -content-length display response content-length
103-
-ct, -content-type display response content-type
104-
-location display response redirect location
105-
-favicon display mmh3 hash for '/favicon.ico' file
106-
-hash string display response body hash (supported: md5,mmh3,simhash,sha1,sha256,sha512)
107-
-jarm display jarm fingerprint hash
108-
-rt, -response-time display response time
109-
-lc, -line-count display response body line count
110-
-wc, -word-count display response body word count
111-
-title display page title
112-
-bp, -body-preview display first N characters of response body (default 100)
113-
-server, -web-server display server name
101+
-sc, -status-code display response status-code
102+
-cl, -content-length display response content-length
103+
-ct, -content-type display response content-type
104+
-location display response redirect location
105+
-favicon display mmh3 hash for '/favicon.ico' file
106+
-hash string display response body hash (supported: md5,mmh3,simhash,sha1,sha256,sha512)
107+
-jarm display jarm fingerprint hash
108+
-rt, -response-time display response time
109+
-lc, -line-count display response body line count
110+
-wc, -word-count display response body word count
111+
-title display page title
112+
-bp, -body-preview display first N characters of response body (default 100)
113+
-server, -web-server display server name
114114
-td, -tech-detect display technology in use based on wappalyzer dataset
115115
-cff, -custom-fingerprint-file string path to a custom fingerprint file for technology detection
116-
-cpe display CPE (Common Platform Enumeration) based on awesome-search-queries
117-
-wp, -wordpress display WordPress plugins and themes
118116
-method display http request method
119-
-ws, -websocket display server using websocket
120-
-ip display host ip
121-
-cname display host cname
122-
-extract-fqdn, -efqdn get domain and subdomains from response body and header in jsonl/csv output
123-
-asn display host asn information
124-
-cdn display cdn/waf in use (default true)
125-
-probe display probe status
117+
-ws, -websocket display server using websocket
118+
-ip display host ip
119+
-cname display host cname
120+
-extract-fqdn, -efqdn get domain and subdomains from response body and header in jsonl/csv output
121+
-asn display host asn information
122+
-cdn display cdn/waf in use (default true)
123+
-probe display probe status
126124

127125
HEADLESS:
128126
-ss, -screenshot enable saving screenshot of the page using headless browser
129127
-system-chrome enable using local installed chrome for screenshot
130128
-ho, -headless-options string[] start headless chrome with additional options
131129
-esb, -exclude-screenshot-bytes enable excluding screenshot bytes from json output
132-
-no-screenshot-full-page disable saving full page screenshot
133130
-ehb, -exclude-headless-body enable excluding headless header from json output
131+
-no-screenshot-full-page disable saving full page screenshot
134132
-st, -screenshot-timeout value set timeout for screenshot in seconds (default 10s)
135133
-sid, -screenshot-idle value set idle time before taking screenshot in seconds (default 1s)
136-
-jsc, -javascript-code string[] execute JavaScript code after navigation
134+
-jsc, -javascript-code string[] execute JavaScript code after navigation
137135

138136
MATCHERS:
139137
-mc, -match-code string match response with specified status code (-mc 200,302)
@@ -143,7 +141,7 @@ MATCHERS:
143141
-mfc, -match-favicon string[] match response with specified favicon hash (-mfc 1494302000)
144142
-ms, -match-string string[] match response with specified string (-ms admin)
145143
-mr, -match-regex string[] match response with specified regex (-mr admin)
146-
-mcdn, -match-cdn string[] match host with specified cdn provider (cloudfront, fastly, google)
144+
-mcdn, -match-cdn string[] match host with specified cdn provider (cloudfront, fastly, google, etc.)
147145
-mrt, -match-response-time string match response with specified response time in seconds (-mrt '< 1')
148146
-mdc, -match-condition string match response with dsl expression condition
149147

@@ -152,19 +150,22 @@ EXTRACTOR:
152150
-ep, -extract-preset string[] display response content matched by a pre-defined regex (url,ipv4,mail)
153151

154152
FILTERS:
155-
-fc, -filter-code string filter response with specified status code (-fc 403,401)
156-
-fep, -filter-error-page filter response with ML based error page detection
157-
-fd, -filter-duplicates filter out near-duplicate responses (only first response is retained)
158-
-fl, -filter-length string filter response with specified content length (-fl 23,33)
159-
-flc, -filter-line-count string filter response body with specified line count (-flc 423,532)
160-
-fwc, -filter-word-count string filter response body with specified word count (-fwc 423,532)
161-
-ffc, -filter-favicon string[] filter response with specified favicon hash (-ffc 1494302000)
162-
-fs, -filter-string string[] filter response with specified string (-fs admin)
163-
-fe, -filter-regex string[] filter response with specified regex (-fe admin)
164-
-fcdn, -filter-cdn string[] filter host with specified cdn provider (cloudfront, fastly, google)
165-
-frt, -filter-response-time string filter response with specified response time in seconds (-frt '> 1')
166-
-fdc, -filter-condition string filter response with dsl expression condition
167-
-strip strips all tags in response. supported formats: html,xml (default html)
153+
-fc, -filter-code string filter response with specified status code (-fc 403,401)
154+
-fpt, -filter-page-type string[] filter response with specified page type (e.g. -fpt login,captcha,parked)
155+
-fep, -filter-error-page [DEPRECATED: use -fpt] filter response with ML based error page detection
156+
-fd, -filter-duplicates filter out near-duplicate responses (only first response is retained)
157+
-fl, -filter-length string filter response with specified content length (-fl 23,33)
158+
-flc, -filter-line-count string filter response body with specified line count (-flc 423,532)
159+
-fwc, -filter-word-count string filter response body with specified word count (-fwc 423,532)
160+
-ffc, -filter-favicon string[] filter response with specified favicon hash (-ffc 1494302000)
161+
-fs, -filter-string string[] filter response with specified string (-fs admin)
162+
-fe, -filter-regex string[] filter response with specified regex (-fe admin)
163+
-fcdn, -filter-cdn string[] filter host with specified cdn provider (cloudfront, fastly, google, etc.)
164+
-frt, -filter-response-time string filter response with specified response time in seconds (-frt '> 1')
165+
-fdc, -filter-condition string filter response with dsl expression condition
166+
-strip strips all tags in response. supported formats: html,xml (default html)
167+
-lof, -list-output-fields list of fields to output (comma separated)
168+
-eof, -exclude-output-fields string[] exclude output fields output based on a condition
168169

169170
RATE-LIMIT:
170171
-t, -threads int number of threads to use (default 50)
@@ -202,10 +203,16 @@ OUTPUT:
202203
-include-chain include redirect http chain in JSON output (-json only)
203204
-store-chain include http redirect chain in responses (-sr only)
204205
-svrc, -store-vision-recon-cluster include visual recon clusters (-ss and -sr only)
205-
-pr, -protocol string protocol to use (unknown, http11)
206+
-pr, -protocol string protocol to use (unknown, http11, http2, http3)
206207
-fepp, -filter-error-page-path string path to store filtered error pages (default "filtered_error_page.json")
207-
-lof, -list-output-fields list available output field names for filtering
208-
-eof, -exclude-output-fields string[] exclude specified output fields from results
208+
-rdb, -result-db store results in database
209+
-rdbc, -result-db-config string path to database config file
210+
-rdbt, -result-db-type string database type (mongodb, postgres, mysql)
211+
-rdbcs, -result-db-conn string database connection string (env: HTTPX_DB_CONNECTION_STRING)
212+
-rdbn, -result-db-name string database name (default "httpx")
213+
-rdbtb, -result-db-table string table/collection name (default "results")
214+
-rdbbs, -result-db-batch-size int batch size for database inserts (default 100)
215+
-rdbor, -result-db-omit-raw omit raw request/response data from database
209216

210217
CONFIGURATIONS:
211218
-config string path to the httpx configuration file (default $HOME/.config/httpx/config.yaml)
@@ -214,9 +221,9 @@ CONFIGURATIONS:
214221
-deny string[] denied list of IP/CIDR's to process (file or comma separated)
215222
-sni, -sni-name string custom TLS SNI name
216223
-random-agent enable Random User-Agent to use (default true)
217-
-auto-referer set the Referer header to the current URL (default false)
224+
-auto-referer set the Referer header to the current URL
218225
-H, -header string[] custom http headers to send with request
219-
-http-proxy, -proxy string http proxy to use (eg http://127.0.0.1:8080)
226+
-http-proxy, -proxy string proxy (http|socks) to use (eg http://127.0.0.1:8080)
220227
-unsafe send raw requests skipping golang normalization
221228
-resume resume scan using resume.cfg
222229
-fr, -follow-redirects follow http redirects
@@ -252,14 +259,14 @@ DEBUG:
252259

253260
OPTIMIZATIONS:
254261
-nf, -no-fallback display both probed protocol (HTTPS and HTTP)
255-
-nfs, -no-fallback-scheme probe with protocol scheme specified in input
262+
-nfs, -no-fallback-scheme probe with protocol scheme specified in input
256263
-maxhr, -max-host-error int max error count per host before skipping remaining path/s (default 30)
257264
-e, -exclude string[] exclude host matching specified filter ('cdn', 'private-ips', cidr, ip, regex)
258265
-retries int number of retries
259266
-timeout int timeout in seconds (default 10)
260267
-delay value duration between each http request (eg: 200ms, 1s) (default -1ns)
261-
-rsts, -response-size-to-save int max response size to save in bytes (default 2147483647)
262-
-rstr, -response-size-to-read int max response size to read in bytes (default 2147483647)
268+
-rsts, -response-size-to-save int max response size to save in bytes (default 512000000)
269+
-rstr, -response-size-to-read int max response size to read in bytes (default 512000000)
263270

264271
CLOUD:
265272
-auth configure projectdiscovery cloud (pdcp) api key (default true)

0 commit comments

Comments
 (0)