README - hurl - Gopher/HTTP/HTTPS file grabber
(HTM) git clone git://git.codemadness.org/hurl
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
README (1583B)
---
1 hurl
2 ----
3
4 Relatively simple HTTP, HTTPS and Gopher client/file grabber.
5
6
7 Why?
8 ----
9
10 Sometimes (or most of the time?) you just want to fetch a file via the HTTP,
11 HTTPS or Gopher protocol.
12
13 The focus of this tool is only this.
14
15
16 Dependencies
17 ------------
18
19 - C compiler (C99).
20 - libc + some BSD functions like err() and strlcat().
21 - LibreSSL(-portable)
22 - libtls (part of LibreSSL).
23
24
25 Optional dependencies
26 ---------------------
27
28 - POSIX make(1) (for Makefile).
29 - mandoc for documentation: https://mdocml.bsd.lv/
30
31
32 Features
33 --------
34
35 - Uses OpenBSD pledge(2) and unveil(2). Allow no filesystem access (writes to
36 stdout).
37 - Impose time-out and maximum size limits.
38 - Use well-defined exitcodes for reliable scripting (curl sucks at this).
39 - Send as little information as possible (no User-Agent etc by default).
40
41
42 Anti-features
43 -------------
44
45 - No HTTP byte range support.
46 - No HTTP User-Agent.
47 - No HTTP If-Modified-Since/If-* support.
48 - No HTTP auth support.
49 - No HTTP/2+ support.
50 - No HTTP keep-alive.
51 - No HTTP chunked-encoding support.
52 - No HTTP redirect support.
53 - No (GZIP) compression support.
54 - No cookie-jar or cookie parsing support.
55
56 - No Gopher text handling (".\r\n").
57
58 - ... etc...
59
60
61 Get self-signed certificates of a host
62 --------------------------------------
63
64 To show the certificates of a host the following openssl command can be used.
65 This can be used to create a CA file also, useful for self-signed certificates:
66
67 openssl s_client -showcerts -connect "codemadness.org:443" </dev/null | \
68 sed -n '/^-----BEGIN CERTIFICATE-----/,/^-----END CERTIFICATE-----/p'