Visual RFC.
ALL RFCs / RFC 2397
Read the RFC ↗
RFC 2397 / INLINE DATA URLS

Distinguish a Base64 marker from a parameter

04

The special ;base64 suffix has no equals sign. It selects an encoding step for the carried payload.

RFC 2397 · § 3EXAMPLE
3 / 3
Distinguish a Base64 marker from a parameterThree Base64 views. The bare semicolon base64 immediately before comma is an encoding marker. SGk equals then decodes to bytes48 69, spelling Hi; its equals is padding inside the payload. A separate metadata base64 equals yes is an ordinary parameter, so without a bare marker its SGk equals payload remains four literal ASCII bytes rather than Hi. The example parameter is not assigned standardized semantics. Encoding is not encryption or authentication.Parameter with = is not the markerdata:text/plain;base64=yes,SGk=decode as Base64Literal bytes: 53 47 6B 3DThe data spells SGk=, not Hi
03
Do not mistake a parameter for a marker.

Separate example: data:text/plain;base64=yes,SGk= has an ordinary metadata parameter. Without a bare ;base64 marker the carried bytes spell SGk=; they do not become Hi.

Source for this drawing: RFC 2397 · Read RFC section 3 ↗

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
New to this? Start hereA quick picture + helpful background

A request starts a conversation.

A client asks for a resource. A server sends a response. The method, address, headers, and status explain what that conversation means.

Helpful first, if these ideas are unfamiliar

These pictures are analogies to help you learn. The linked RFC explains the actual rules.

Related RFCs and changes

“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.

KEY POINT

An equals sign changes the metadata role.

  • The optional ;base64 marker appears immediately before the comma. When present, the payload is Base64-encoded data; it is not an extra network protocol.
  • Base64 maps bytes into a text alphabet. In the example, SGk= decodes to hexadecimal bytes 48 69, spelling Hi. The padding equals sign is part of the payload, not a metadata parameter delimiter.
  • A metadata item base64=yes has a following equals sign, so it is a content-type parameter, not the ;base64 encoding marker. No semantics for that example parameter are defined here.
DETAILS

Base64 is an encoding, not encryption, compression or authentication. RFC2397 uses MIME Base64; URL escaping is also relevant to the URL representation. The bounded model percent-unescapes the payload before its optional strict Base64 step. It accepts standard padded examples and does not claim to reproduce every MIME decoder or current browser tolerance. No data URL is navigated or used as an image/script source in these demonstrations.

Read the RFC section ↗

All chapters in RFC 2397

Drawing view

Scroll the drawing to see every part. Playback controls stay above it.

RFC 9700 / CHAPTERS

Chapters

For full details, tables, algorithms, and exceptions, read the original RFC.

RFC status and corrections ↗