Visual RFC.
ALL RFCs / RFC 6266
Read the RFC ↗
RFC 6266 / HTTP RESPONSE DISPOSITION

Encode an international filename and provide a fallback

03

filename* uses an extended character-encoding form. UTF-8 bytes and percent escapes can carry a name such as € rates without guessing the header encoding.

RFC 6266 · § 4.3EXAMPLE
3 / 3
Encode an international filename and provide a fallbackThe public euro rates filename is encoded as nine UTF8 bytes E2 82 AC 20 72 61 74 65 73, then represented by UTF8 apostrophe apostrophe percent e2 percent82 percentac percent20 rates with an empty language. Next the full public parameter pair has ASCII filename EURO rates followed by filename star; a capable recipient follows SHOULD and selects euro rates. A separate legacy recipient without extension support uses EURO rates. Encoding is not encryption, plain filename is not generically percent decoded, and historical fallback is not a claim that modern implementations may skip required support.Carry an international name without guessingContent-Disposition: attachment;filename="EURO rates";filename*=utf-8''%e2%82%ac%20ratesSeparate legacy recipient: no extension supportFallback name: EURO ratesCompatibility, not a modern conformance claim
03
Retain a legacy fallback.

A separate legacy recipient without filename* support ignores that parameter and uses EURO rates. This fallback need not reproduce the original name exactly and does not certify older software as conforming today.

Source for this drawing: RFC 6266 · Read RFC section 4.3 ↗

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

A message needs an address.

Think of a packet as a small addressed envelope. Devices pass it onward; transport protocols decide what delivery promises an application gets.

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

Decode the declared bytes, then choose the appropriate advisory name.

  • filename* uses the extended parameter syntax: charset, an optional language, and the encoded value separated by apostrophes. The illustrated UTF-8 example leaves the language empty.
  • When both filename and filename* are present, recipients SHOULD choose filename* and ignore filename. A legacy recipient that does not implement the extension can use the filename fallback.
  • RFC6266 Appendix D advises UTF-8, an ASCII fallback where possible and filename before filename* for older implementations. Original reference5987 is superseded by8187, whose producers MUST use UTF-8. Do not generalize filename* decoding into percent-decoding plain filename or using MIME encoded-words.
DETAILS

The public§5 name € rates encodes the euro sign as E2 82 AC; %20 encodes the space. UTF-8 is a character encoding, not encryption. Supporting current RFC8187§3.2/§3.2.1 covers this same valid syntax; no fixed malformed-input recovery algorithm is invented. Legacy behavior is historical compatibility, not a current conformant implementation skipping required support.

Read the RFC section ↗

All chapters in RFC 6266

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 ↗