Glossary
API — a programmatic front door to a service: URLs that return data (often JSON) instead of pages. Most curl work after chapter 1 is API work.
Base64 — an encoding that carries arbitrary bytes as printable text. It is a representation, not protection: anyone can decode it, as chapter 5 does to a basic-auth header.
Basic authentication — the oldest HTTP
login scheme: username and password joined
with a colon, Base64-encoded into an
Authorization header. Safe only inside
HTTPS.
Bearer token — a credential presented as
Authorization: Bearer <token>. Whoever
bears it is believed; there is nothing
behind it. Handle like a password.
Body — the content of a request or
reply, after the blank line that ends the
headers. What plain curl prints.
Certificate — a signed document binding a public key to a name, presented by TLS servers. Chapter 8 verifies them; OpenSSL for Mere Mortals dissects them.
Checksum — a hash of a file's bytes,
published beside the file so a downloader
can prove the copy is whole. Chapter 10
checks one with sha256sum -c.
Content-Type — the header declaring what
a body is: text/plain,
application/json,
application/x-www-form-urlencoded,
multipart/form-data. The label and the
bytes are separate facts (chapter 4).
Cookie — a name-and-value pair a server asks your client to remember and present on later requests. The mechanism behind staying logged in.
Cookie jar — curl's cookie file, in
Netscape format. -c writes it, -b reads
and sends from it. A file of live session
credentials; treat it as one.
Exit code — the number a command leaves
behind for the shell: 0 for success, a
specific failure number otherwise. curl's
are listed in chapter 9; $? reads the
last one.
Form encoding — application/x-www-form-urlencoded,
the browser-form format: fields as
name=value&..., with special characters
percent-encoded. -d's default label;
--data-urlencode applies the escapes.
Header — a Name: value metadata line
in a request or reply. Host,
Content-Length, Authorization, and
Set-Cookie carry most of this guide.
HEAD — the HTTP method that asks for a
reply's headers without its body. Sent by
-I.
HTTP method — the verb of a request:
GET (show me), POST (take this), PUT,
DELETE, PATCH. -d implies POST; -X names
one outright.
Loopback — 127.0.0.1, a machine's
address for itself. The lab lives there:
real HTTP, no network, nothing leaves the
computer.
Multipart — multipart/form-data, the
encoding that sends form fields and files
as separate sections divided by a boundary
string. Built by -F; how web uploads
travel.
Progress meter — curl's running report
of a transfer (totals, speed, time), drawn
on the error stream so it never pollutes
piped output. Silenced by -s, barred by -#.
Proxy — a middleman that carries
requests on your behalf, named in -v's
first lines when your environment sets one.
--noproxy lists exceptions.
Query string — the ?name=value&...
tail of a URL, carrying data inside the
address itself. Assembled by -G; logged
by servers in full.
Range request — asking a server for part
of a file ("bytes 3000 onward"), answered
with status 206. The mechanism -C -
resumes with; advertised as
Accept-Ranges: bytes.
Redirect — a 3xx reply whose
Location header names a new address.
curl reports it and stops; -L follows.
Status code — the server's three-digit verdict: 2xx success, 3xx redirect, 4xx the request's fault, 5xx the server's. Not the same as curl's exit code — chapter 2's trap is confusing the two.
Trace — the byte-exact record of an
exchange written by --trace-ascii /
--trace: offsets, chunks, and all.
Evidence, kept in a file.
Trust store — the bundle of root
certificates a system or program believes
by default. --cacert adds one authority
for a single command.
URL — the address curl is given: scheme, host, port, path, query. One transfer per URL, exactly as written.
User-Agent — the header in which a
client introduces itself. curl says
curl/8.5.0, honestly; -A changes it.
Verbose (-v) — curl narrating the
whole exchange: * its own actions, >
what you sent, < what came back.
Write-out (-w) — printing curl's own
measurements of a finished transfer —
%{http_code}, %{time_total},
%{num_redirects}, and dozens more.
How scripts ask questions.