[982] | 1 | <!DOCTYPE html |
---|
| 2 | PUBLIC "-//W3C//DTD HTML 4.01//EN"> |
---|
| 3 | <html lang="en"> |
---|
| 4 | <head profile="http://www.w3.org/2006/03/hcard http://dublincore.org/documents/2008/08/04/dc-html/"> |
---|
| 5 | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
---|
| 6 | <title>Use of the Content-Disposition Header Field |
---|
| 7 | in the Hypertext Transfer Protocol (HTTP) |
---|
| 8 | </title><style type="text/css" title="Xml2Rfc (sans serif)"> |
---|
| 9 | a { |
---|
| 10 | text-decoration: none; |
---|
| 11 | } |
---|
| 12 | a.smpl { |
---|
| 13 | color: black; |
---|
| 14 | } |
---|
| 15 | a:hover { |
---|
| 16 | text-decoration: underline; |
---|
| 17 | } |
---|
| 18 | a:active { |
---|
| 19 | text-decoration: underline; |
---|
| 20 | } |
---|
| 21 | address { |
---|
| 22 | margin-top: 1em; |
---|
| 23 | margin-left: 2em; |
---|
| 24 | font-style: normal; |
---|
| 25 | } |
---|
| 26 | blockquote { |
---|
| 27 | border-style: solid; |
---|
| 28 | border-color: gray; |
---|
| 29 | border-width: 0 0 0 .25em; |
---|
| 30 | font-style: italic; |
---|
| 31 | padding-left: 0.5em; |
---|
| 32 | } |
---|
| 33 | body { |
---|
| 34 | color: black; |
---|
| 35 | font-family: verdana, helvetica, arial, sans-serif; |
---|
| 36 | font-size: 10pt; |
---|
| 37 | } |
---|
| 38 | cite { |
---|
| 39 | font-style: normal; |
---|
| 40 | } |
---|
[1041] | 41 | div.note { |
---|
| 42 | margin-left: 2em; |
---|
| 43 | } |
---|
[982] | 44 | dd { |
---|
| 45 | margin-right: 2em; |
---|
| 46 | } |
---|
| 47 | dl { |
---|
| 48 | margin-left: 2em; |
---|
| 49 | } |
---|
| 50 | |
---|
| 51 | ul.empty { |
---|
| 52 | list-style-type: none; |
---|
| 53 | } |
---|
| 54 | ul.empty li { |
---|
| 55 | margin-top: .5em; |
---|
| 56 | } |
---|
| 57 | dl p { |
---|
| 58 | margin-left: 0em; |
---|
| 59 | } |
---|
| 60 | dt { |
---|
| 61 | margin-top: .5em; |
---|
| 62 | } |
---|
| 63 | h1 { |
---|
| 64 | font-size: 14pt; |
---|
| 65 | line-height: 21pt; |
---|
| 66 | page-break-after: avoid; |
---|
| 67 | } |
---|
| 68 | h1.np { |
---|
| 69 | page-break-before: always; |
---|
| 70 | } |
---|
| 71 | h1 a { |
---|
| 72 | color: #333333; |
---|
| 73 | } |
---|
| 74 | h2 { |
---|
| 75 | font-size: 12pt; |
---|
| 76 | line-height: 15pt; |
---|
| 77 | page-break-after: avoid; |
---|
| 78 | } |
---|
| 79 | h3, h4, h5, h6 { |
---|
| 80 | font-size: 10pt; |
---|
| 81 | page-break-after: avoid; |
---|
| 82 | } |
---|
| 83 | h2 a, h3 a, h4 a, h5 a, h6 a { |
---|
| 84 | color: black; |
---|
| 85 | } |
---|
| 86 | img { |
---|
| 87 | margin-left: 3em; |
---|
| 88 | } |
---|
| 89 | li { |
---|
| 90 | margin-left: 2em; |
---|
| 91 | margin-right: 2em; |
---|
| 92 | } |
---|
| 93 | ol { |
---|
| 94 | margin-left: 2em; |
---|
| 95 | margin-right: 2em; |
---|
| 96 | } |
---|
| 97 | ol p { |
---|
| 98 | margin-left: 0em; |
---|
| 99 | } |
---|
| 100 | p { |
---|
| 101 | margin-left: 2em; |
---|
| 102 | margin-right: 2em; |
---|
| 103 | } |
---|
| 104 | pre { |
---|
| 105 | margin-left: 3em; |
---|
| 106 | background-color: lightyellow; |
---|
| 107 | padding: .25em; |
---|
| 108 | } |
---|
| 109 | pre.text2 { |
---|
| 110 | border-style: dotted; |
---|
| 111 | border-width: 1px; |
---|
| 112 | background-color: #f0f0f0; |
---|
| 113 | width: 69em; |
---|
| 114 | } |
---|
| 115 | pre.inline { |
---|
| 116 | background-color: white; |
---|
| 117 | padding: 0em; |
---|
| 118 | } |
---|
| 119 | pre.text { |
---|
| 120 | border-style: dotted; |
---|
| 121 | border-width: 1px; |
---|
| 122 | background-color: #f8f8f8; |
---|
| 123 | width: 69em; |
---|
| 124 | } |
---|
| 125 | pre.drawing { |
---|
| 126 | border-style: solid; |
---|
| 127 | border-width: 1px; |
---|
| 128 | background-color: #f8f8f8; |
---|
| 129 | padding: 2em; |
---|
| 130 | } |
---|
| 131 | table { |
---|
| 132 | margin-left: 2em; |
---|
| 133 | } |
---|
| 134 | table.tt { |
---|
| 135 | vertical-align: top; |
---|
| 136 | } |
---|
| 137 | table.full { |
---|
| 138 | border-style: outset; |
---|
| 139 | border-width: 1px; |
---|
| 140 | } |
---|
| 141 | table.headers { |
---|
| 142 | border-style: outset; |
---|
| 143 | border-width: 1px; |
---|
| 144 | } |
---|
| 145 | table.tt td { |
---|
| 146 | vertical-align: top; |
---|
| 147 | } |
---|
| 148 | table.full td { |
---|
| 149 | border-style: inset; |
---|
| 150 | border-width: 1px; |
---|
| 151 | } |
---|
| 152 | table.tt th { |
---|
| 153 | vertical-align: top; |
---|
| 154 | } |
---|
| 155 | table.full th { |
---|
| 156 | border-style: inset; |
---|
| 157 | border-width: 1px; |
---|
| 158 | } |
---|
| 159 | table.headers th { |
---|
| 160 | border-style: none none inset none; |
---|
| 161 | border-width: 1px; |
---|
| 162 | } |
---|
| 163 | table.left { |
---|
| 164 | margin-right: auto; |
---|
| 165 | } |
---|
| 166 | table.right { |
---|
| 167 | margin-left: auto; |
---|
| 168 | } |
---|
| 169 | table.center { |
---|
| 170 | margin-left: auto; |
---|
| 171 | margin-right: auto; |
---|
| 172 | } |
---|
| 173 | caption { |
---|
| 174 | caption-side: bottom; |
---|
| 175 | font-weight: bold; |
---|
| 176 | font-size: 9pt; |
---|
| 177 | margin-top: .5em; |
---|
| 178 | } |
---|
| 179 | |
---|
| 180 | table.header { |
---|
| 181 | border-spacing: 1px; |
---|
| 182 | width: 95%; |
---|
| 183 | font-size: 10pt; |
---|
| 184 | color: white; |
---|
| 185 | } |
---|
| 186 | td.top { |
---|
| 187 | vertical-align: top; |
---|
| 188 | } |
---|
| 189 | td.topnowrap { |
---|
| 190 | vertical-align: top; |
---|
| 191 | white-space: nowrap; |
---|
| 192 | } |
---|
| 193 | table.header td { |
---|
| 194 | background-color: gray; |
---|
| 195 | width: 50%; |
---|
| 196 | } |
---|
| 197 | table.header a { |
---|
| 198 | color: white; |
---|
| 199 | } |
---|
| 200 | td.reference { |
---|
| 201 | vertical-align: top; |
---|
| 202 | white-space: nowrap; |
---|
| 203 | padding-right: 1em; |
---|
| 204 | } |
---|
| 205 | thead { |
---|
| 206 | display:table-header-group; |
---|
| 207 | } |
---|
[1072] | 208 | ul.toc, ul.toc ul { |
---|
[982] | 209 | list-style: none; |
---|
| 210 | margin-left: 1.5em; |
---|
| 211 | margin-right: 0em; |
---|
| 212 | padding-left: 0em; |
---|
| 213 | } |
---|
[1072] | 214 | ul.toc li { |
---|
[982] | 215 | line-height: 150%; |
---|
| 216 | font-weight: bold; |
---|
| 217 | font-size: 10pt; |
---|
| 218 | margin-left: 0em; |
---|
| 219 | margin-right: 0em; |
---|
| 220 | } |
---|
[1072] | 221 | ul.toc li li { |
---|
[982] | 222 | line-height: normal; |
---|
| 223 | font-weight: normal; |
---|
| 224 | font-size: 9pt; |
---|
| 225 | margin-left: 0em; |
---|
| 226 | margin-right: 0em; |
---|
| 227 | } |
---|
[1072] | 228 | li.excluded { |
---|
[982] | 229 | font-size: 0pt; |
---|
| 230 | } |
---|
| 231 | ul p { |
---|
| 232 | margin-left: 0em; |
---|
| 233 | } |
---|
[1095] | 234 | ul.ind, ul.ind ul { |
---|
[982] | 235 | list-style: none; |
---|
| 236 | margin-left: 1.5em; |
---|
| 237 | margin-right: 0em; |
---|
| 238 | padding-left: 0em; |
---|
| 239 | page-break-before: avoid; |
---|
| 240 | } |
---|
[1072] | 241 | ul.ind li { |
---|
[982] | 242 | font-weight: bold; |
---|
| 243 | line-height: 200%; |
---|
| 244 | margin-left: 0em; |
---|
| 245 | margin-right: 0em; |
---|
| 246 | } |
---|
[1072] | 247 | ul.ind li li { |
---|
[982] | 248 | font-weight: normal; |
---|
| 249 | line-height: 150%; |
---|
| 250 | margin-left: 0em; |
---|
| 251 | margin-right: 0em; |
---|
| 252 | } |
---|
| 253 | .avoidbreak { |
---|
| 254 | page-break-inside: avoid; |
---|
| 255 | } |
---|
| 256 | .bcp14 { |
---|
| 257 | font-style: normal; |
---|
| 258 | text-transform: lowercase; |
---|
| 259 | font-variant: small-caps; |
---|
| 260 | } |
---|
| 261 | blockquote > * .bcp14 { |
---|
| 262 | font-style: italic; |
---|
| 263 | } |
---|
| 264 | .comment { |
---|
| 265 | background-color: yellow; |
---|
| 266 | } |
---|
| 267 | .center { |
---|
| 268 | text-align: center; |
---|
| 269 | } |
---|
| 270 | .error { |
---|
| 271 | color: red; |
---|
| 272 | font-style: italic; |
---|
| 273 | font-weight: bold; |
---|
| 274 | } |
---|
| 275 | .figure { |
---|
| 276 | font-weight: bold; |
---|
| 277 | text-align: center; |
---|
| 278 | font-size: 9pt; |
---|
| 279 | } |
---|
| 280 | .filename { |
---|
| 281 | color: #333333; |
---|
| 282 | font-weight: bold; |
---|
| 283 | font-size: 12pt; |
---|
| 284 | line-height: 21pt; |
---|
| 285 | text-align: center; |
---|
| 286 | } |
---|
| 287 | .fn { |
---|
| 288 | font-weight: bold; |
---|
| 289 | } |
---|
| 290 | .hidden { |
---|
| 291 | display: none; |
---|
| 292 | } |
---|
| 293 | .left { |
---|
| 294 | text-align: left; |
---|
| 295 | } |
---|
| 296 | .right { |
---|
| 297 | text-align: right; |
---|
| 298 | } |
---|
| 299 | .title { |
---|
| 300 | color: #990000; |
---|
| 301 | font-size: 18pt; |
---|
| 302 | line-height: 18pt; |
---|
| 303 | font-weight: bold; |
---|
| 304 | text-align: center; |
---|
| 305 | margin-top: 36pt; |
---|
| 306 | } |
---|
| 307 | .vcardline { |
---|
| 308 | display: block; |
---|
| 309 | } |
---|
| 310 | .warning { |
---|
| 311 | font-size: 14pt; |
---|
| 312 | background-color: yellow; |
---|
| 313 | } |
---|
| 314 | |
---|
| 315 | |
---|
| 316 | @media print { |
---|
| 317 | .noprint { |
---|
| 318 | display: none; |
---|
| 319 | } |
---|
| 320 | |
---|
| 321 | a { |
---|
| 322 | color: black; |
---|
| 323 | text-decoration: none; |
---|
| 324 | } |
---|
| 325 | |
---|
| 326 | table.header { |
---|
| 327 | width: 90%; |
---|
| 328 | } |
---|
| 329 | |
---|
| 330 | td.header { |
---|
| 331 | width: 50%; |
---|
| 332 | color: black; |
---|
| 333 | background-color: white; |
---|
| 334 | vertical-align: top; |
---|
| 335 | font-size: 12pt; |
---|
| 336 | } |
---|
| 337 | |
---|
| 338 | ul.toc a::after { |
---|
| 339 | content: leader('.') target-counter(attr(href), page); |
---|
| 340 | } |
---|
| 341 | |
---|
[1072] | 342 | ul.ind li li a { |
---|
[982] | 343 | content: target-counter(attr(href), page); |
---|
| 344 | } |
---|
| 345 | |
---|
| 346 | .print2col { |
---|
| 347 | column-count: 2; |
---|
| 348 | -moz-column-count: 2; |
---|
| 349 | column-fill: auto; |
---|
| 350 | } |
---|
| 351 | } |
---|
| 352 | |
---|
| 353 | @page { |
---|
| 354 | @top-left { |
---|
| 355 | content: "Internet-Draft"; |
---|
| 356 | } |
---|
| 357 | @top-right { |
---|
[1103] | 358 | content: "February 2011"; |
---|
[982] | 359 | } |
---|
| 360 | @top-center { |
---|
| 361 | content: "Content-Disposition in HTTP"; |
---|
| 362 | } |
---|
| 363 | @bottom-left { |
---|
| 364 | content: "Reschke"; |
---|
| 365 | } |
---|
| 366 | @bottom-center { |
---|
[1119] | 367 | content: "Expires August 21, 2011"; |
---|
[982] | 368 | } |
---|
| 369 | @bottom-right { |
---|
| 370 | content: "[Page " counter(page) "]"; |
---|
| 371 | } |
---|
| 372 | } |
---|
| 373 | |
---|
| 374 | @page:first { |
---|
| 375 | @top-left { |
---|
| 376 | content: normal; |
---|
| 377 | } |
---|
| 378 | @top-right { |
---|
| 379 | content: normal; |
---|
| 380 | } |
---|
| 381 | @top-center { |
---|
| 382 | content: normal; |
---|
| 383 | } |
---|
| 384 | } |
---|
| 385 | </style><link rel="Contents" href="#rfc.toc"> |
---|
| 386 | <link rel="Author" href="#rfc.authors"> |
---|
| 387 | <link rel="Copyright" href="#rfc.copyrightnotice"> |
---|
| 388 | <link rel="Index" href="#rfc.index"> |
---|
| 389 | <link rel="Chapter" title="1 Introduction" href="#rfc.section.1"> |
---|
| 390 | <link rel="Chapter" title="2 Notational Conventions" href="#rfc.section.2"> |
---|
[1115] | 391 | <link rel="Chapter" title="3 Conformance and Error Handling" href="#rfc.section.3"> |
---|
| 392 | <link rel="Chapter" title="4 Header Field Definition" href="#rfc.section.4"> |
---|
| 393 | <link rel="Chapter" title="5 Examples" href="#rfc.section.5"> |
---|
| 394 | <link rel="Chapter" title="6 Internationalization Considerations" href="#rfc.section.6"> |
---|
| 395 | <link rel="Chapter" title="7 Security Considerations" href="#rfc.section.7"> |
---|
| 396 | <link rel="Chapter" title="8 IANA Considerations" href="#rfc.section.8"> |
---|
| 397 | <link rel="Chapter" title="9 Acknowledgements" href="#rfc.section.9"> |
---|
| 398 | <link rel="Chapter" href="#rfc.section.10" title="10 References"> |
---|
[982] | 399 | <link rel="Appendix" title="A Changes from the RFC 2616 Definition" href="#rfc.section.A"> |
---|
| 400 | <link rel="Appendix" title="B Differences compared to RFC 2183" href="#rfc.section.B"> |
---|
| 401 | <link rel="Appendix" title="C Alternative Approaches to Internationalization" href="#rfc.section.C"> |
---|
| 402 | <link rel="Appendix" title="D Change Log (to be removed by RFC Editor before publication)" href="#rfc.section.D"> |
---|
[1103] | 403 | <meta name="generator" content="http://greenbytes.de/tech/webdav/rfc2629.xslt, Revision 1.540, 2011-01-10 09:27:20, XSLT vendor: SAXON 8.9 from Saxonica http://www.saxonica.com/"> |
---|
[982] | 404 | <link rel="schema.dct" href="http://purl.org/dc/terms/"> |
---|
| 405 | <meta name="dct.creator" content="Reschke, J. F."> |
---|
[1119] | 406 | <meta name="dct.identifier" content="urn:ietf:id:draft-ietf-httpbis-content-disp-05"> |
---|
| 407 | <meta name="dct.issued" scheme="ISO8601" content="2011-02-17"> |
---|
[982] | 408 | <meta name="dct.abstract" content="HTTP/1.1 defines the Content-Disposition response header field, but points out that it is not part of the HTTP/1.1 Standard. This specification takes over the definition and registration of Content-Disposition, as used in HTTP, and clarifies internationalization aspects."> |
---|
| 409 | <meta name="description" content="HTTP/1.1 defines the Content-Disposition response header field, but points out that it is not part of the HTTP/1.1 Standard. This specification takes over the definition and registration of Content-Disposition, as used in HTTP, and clarifies internationalization aspects."> |
---|
| 410 | </head> |
---|
| 411 | <body> |
---|
| 412 | <table class="header"> |
---|
| 413 | <tbody> |
---|
| 414 | <tr> |
---|
| 415 | <td class="left">HTTPbis Working Group</td> |
---|
| 416 | <td class="right">J. Reschke</td> |
---|
| 417 | </tr> |
---|
| 418 | <tr> |
---|
| 419 | <td class="left">Internet-Draft</td> |
---|
| 420 | <td class="right">greenbytes</td> |
---|
| 421 | </tr> |
---|
| 422 | <tr> |
---|
| 423 | <td class="left">Updates: <a href="http://tools.ietf.org/html/rfc2616">2616</a> (if approved) |
---|
| 424 | </td> |
---|
[1119] | 425 | <td class="right">February 17, 2011</td> |
---|
[982] | 426 | </tr> |
---|
| 427 | <tr> |
---|
| 428 | <td class="left">Intended status: Standards Track</td> |
---|
| 429 | <td class="right"></td> |
---|
| 430 | </tr> |
---|
| 431 | <tr> |
---|
[1119] | 432 | <td class="left">Expires: August 21, 2011</td> |
---|
[982] | 433 | <td class="right"></td> |
---|
| 434 | </tr> |
---|
| 435 | </tbody> |
---|
| 436 | </table> |
---|
[1119] | 437 | <p class="title">Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP)<br><span class="filename">draft-ietf-httpbis-content-disp-05</span></p> |
---|
[982] | 438 | <h1 id="rfc.abstract"><a href="#rfc.abstract">Abstract</a></h1> |
---|
| 439 | <p>HTTP/1.1 defines the Content-Disposition response header field, but points out that it is not part of the HTTP/1.1 Standard. |
---|
| 440 | This specification takes over the definition and registration of Content-Disposition, as used in HTTP, and clarifies internationalization |
---|
| 441 | aspects. |
---|
| 442 | </p> |
---|
| 443 | <h1 id="rfc.note.1"><a href="#rfc.note.1">Editorial Note (To be removed by RFC Editor before publication)</a></h1> |
---|
| 444 | <p>This specification is expected to replace the definition of Content-Disposition in the HTTP/1.1 specification, as currently |
---|
[993] | 445 | revised by the IETF HTTPbis working group. See also <<a href="http://trac.tools.ietf.org/wg/httpbis/trac/ticket/123">http://trac.tools.ietf.org/wg/httpbis/trac/ticket/123</a>>. |
---|
[982] | 446 | </p> |
---|
[984] | 447 | <p>Discussion of this draft should take place on the HTTPBIS working group mailing list (ietf-http-wg@w3.org). The current issues |
---|
| 448 | list is at <<a href="http://trac.tools.ietf.org/wg/httpbis/trac/query?component=content-disp">http://trac.tools.ietf.org/wg/httpbis/trac/query?component=content-disp</a>> and related documents (including fancy diffs) can be found at <<a href="http://tools.ietf.org/wg/httpbis/">http://tools.ietf.org/wg/httpbis/</a>>. |
---|
[986] | 449 | </p> |
---|
[1085] | 450 | <p>The changes in this draft are summarized in <a href="#changes.since.04" title="Since draft-ietf-httpbis-content-disp-04">Appendix D.9</a>. |
---|
[986] | 451 | </p> |
---|
[982] | 452 | <h1><a id="rfc.status" href="#rfc.status">Status of This Memo</a></h1> |
---|
| 453 | <p>This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.</p> |
---|
| 454 | <p>Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute |
---|
| 455 | working documents as Internet-Drafts. The list of current Internet-Drafts is at <a href="http://datatracker.ietf.org/drafts/current/">http://datatracker.ietf.org/drafts/current/</a>. |
---|
| 456 | </p> |
---|
| 457 | <p>Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other |
---|
| 458 | documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as “work |
---|
| 459 | in progress”. |
---|
| 460 | </p> |
---|
[1119] | 461 | <p>This Internet-Draft will expire on August 21, 2011.</p> |
---|
[982] | 462 | <h1><a id="rfc.copyrightnotice" href="#rfc.copyrightnotice">Copyright Notice</a></h1> |
---|
[1099] | 463 | <p>Copyright © 2011 IETF Trust and the persons identified as the document authors. All rights reserved.</p> |
---|
[982] | 464 | <p>This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (<a href="http://trustee.ietf.org/license-info">http://trustee.ietf.org/license-info</a>) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights |
---|
| 465 | and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License |
---|
| 466 | text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified |
---|
| 467 | BSD License. |
---|
| 468 | </p> |
---|
| 469 | <hr class="noprint"> |
---|
| 470 | <h1 class="np" id="rfc.toc"><a href="#rfc.toc">Table of Contents</a></h1> |
---|
| 471 | <ul class="toc"> |
---|
[1072] | 472 | <li>1. <a href="#introduction">Introduction</a></li> |
---|
[1115] | 473 | <li>2. <a href="#notational.conventions">Notational Conventions</a></li> |
---|
| 474 | <li>3. <a href="#conformance.and.error.handling">Conformance and Error Handling</a></li> |
---|
| 475 | <li>4. <a href="#header.field.definition">Header Field Definition</a><ul> |
---|
| 476 | <li>4.1 <a href="#rfc.section.4.1">Grammar</a></li> |
---|
| 477 | <li>4.2 <a href="#disposition.type">Disposition Type</a></li> |
---|
| 478 | <li>4.3 <a href="#disposition.parameter.filename">Disposition Parameter: 'Filename'</a></li> |
---|
| 479 | <li>4.4 <a href="#disposition.parameter.extensions">Disposition Parameter: Extensions</a></li> |
---|
| 480 | <li>4.5 <a href="#extensibility">Extensibility</a></li> |
---|
[982] | 481 | </ul> |
---|
| 482 | </li> |
---|
[1115] | 483 | <li>5. <a href="#examples">Examples</a></li> |
---|
| 484 | <li>6. <a href="#i18n">Internationalization Considerations</a></li> |
---|
| 485 | <li>7. <a href="#security.considerations">Security Considerations</a></li> |
---|
| 486 | <li>8. <a href="#iana.considerations">IANA Considerations</a><ul> |
---|
| 487 | <li>8.1 <a href="#registry">Registry for Disposition Values and Parameter</a></li> |
---|
| 488 | <li>8.2 <a href="#header.field.registration">Header Field Registration</a></li> |
---|
[982] | 489 | </ul> |
---|
| 490 | </li> |
---|
[1115] | 491 | <li>9. <a href="#rfc.section.9">Acknowledgements</a></li> |
---|
| 492 | <li>10. <a href="#rfc.references">References</a><ul> |
---|
| 493 | <li>10.1 <a href="#rfc.references.1">Normative References</a></li> |
---|
| 494 | <li>10.2 <a href="#rfc.references.2">Informative References</a></li> |
---|
[982] | 495 | </ul> |
---|
| 496 | </li> |
---|
[1072] | 497 | <li><a href="#rfc.authors">Author's Address</a></li> |
---|
| 498 | <li>A. <a href="#changes.from.rfc2616">Changes from the RFC 2616 Definition</a></li> |
---|
| 499 | <li>B. <a href="#diffs.compared.to.rfc2183">Differences compared to RFC 2183</a></li> |
---|
| 500 | <li>C. <a href="#alternatives">Alternative Approaches to Internationalization</a><ul> |
---|
| 501 | <li>C.1 <a href="#alternatives.rfc2047">RFC 2047 Encoding</a></li> |
---|
| 502 | <li>C.2 <a href="#alternatives.percent">Percent Encoding</a></li> |
---|
| 503 | <li>C.3 <a href="#alternatives.sniff">Encoding Sniffing</a></li> |
---|
| 504 | <li>C.4 <a href="#alternatives.implementations">Implementations (to be removed by RFC Editor before publication)</a></li> |
---|
[982] | 505 | </ul> |
---|
| 506 | </li> |
---|
[1072] | 507 | <li>D. <a href="#change.log">Change Log (to be removed by RFC Editor before publication)</a><ul> |
---|
| 508 | <li>D.1 <a href="#rfc.section.D.1">Since draft-reschke-rfc2183-in-http-00</a></li> |
---|
| 509 | <li>D.2 <a href="#rfc.section.D.2">Since draft-reschke-rfc2183-in-http-01</a></li> |
---|
| 510 | <li>D.3 <a href="#rfc.section.D.3">Since draft-reschke-rfc2183-in-http-02</a></li> |
---|
| 511 | <li>D.4 <a href="#rfc.section.D.4">Since draft-reschke-rfc2183-in-http-03</a></li> |
---|
| 512 | <li>D.5 <a href="#changes.since.00">Since draft-ietf-httpbis-content-disp-00</a></li> |
---|
| 513 | <li>D.6 <a href="#changes.since.01">Since draft-ietf-httpbis-content-disp-01</a></li> |
---|
| 514 | <li>D.7 <a href="#changes.since.02">Since draft-ietf-httpbis-content-disp-02</a></li> |
---|
| 515 | <li>D.8 <a href="#changes.since.03">Since draft-ietf-httpbis-content-disp-03</a></li> |
---|
[1085] | 516 | <li>D.9 <a href="#changes.since.04">Since draft-ietf-httpbis-content-disp-04</a></li> |
---|
[982] | 517 | </ul> |
---|
| 518 | </li> |
---|
[1072] | 519 | <li><a href="#rfc.index">Index</a></li> |
---|
[982] | 520 | </ul> |
---|
| 521 | <h1 id="rfc.section.1" class="np"><a href="#rfc.section.1">1.</a> <a id="introduction" href="#introduction">Introduction</a></h1> |
---|
| 522 | <p id="rfc.section.1.p.1">HTTP/1.1 defines the Content-Disposition response header field in <a href="http://tools.ietf.org/html/rfc2616#section-19.5.1">Section 19.5.1</a> of <a href="#RFC2616" id="rfc.xref.RFC2616.1"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2616]</cite></a>, but points out that it is not part of the HTTP/1.1 Standard (<a href="http://tools.ietf.org/html/rfc2616#section-15.5" id="rfc.xref.RFC2616.2">Section 15.5</a>): |
---|
| 523 | </p> |
---|
| 524 | <blockquote id="rfc.section.1.p.2" cite="http://tools.ietf.org/html/rfc2616#section-15.5"> |
---|
| 525 | <p>Content-Disposition is not part of the HTTP standard, but since it is widely implemented, we are documenting its use and risks |
---|
[985] | 526 | for implementers. |
---|
[982] | 527 | </p> |
---|
| 528 | </blockquote> |
---|
| 529 | <p id="rfc.section.1.p.3">This specification takes over the definition and registration of Content-Disposition, as used in HTTP. Based on interoperability |
---|
| 530 | testing with existing User Agents, it fully defines a profile of the features defined in the Multipurpose Internet Mail Extensions |
---|
| 531 | (MIME) variant (<a href="#RFC2183" id="rfc.xref.RFC2183.1"><cite title="Communicating Presentation Information in Internet Messages: The Content-Disposition Header Field">[RFC2183]</cite></a>) of the header field, and also clarifies internationalization aspects. |
---|
| 532 | </p> |
---|
[1078] | 533 | <div class="note" id="rfc.section.1.p.4"> |
---|
| 534 | <p> <b>Note:</b> this document does not apply to Content-Disposition header fields appearing in message payloads transmitted over HTTP, such |
---|
| 535 | as when using the media type "multipart/form-data" (<a href="#RFC2388" id="rfc.xref.RFC2388.1"><cite title="Returning Values from Forms: multipart/form-data">[RFC2388]</cite></a>). |
---|
| 536 | </p> |
---|
| 537 | </div> |
---|
[1115] | 538 | <h1 id="rfc.section.2"><a href="#rfc.section.2">2.</a> <a id="notational.conventions" href="#notational.conventions">Notational Conventions</a></h1> |
---|
[982] | 539 | <p id="rfc.section.2.p.1">The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" |
---|
| 540 | in this document are to be interpreted as described in <a href="#RFC2119" id="rfc.xref.RFC2119.1"><cite title="Key words for use in RFCs to Indicate Requirement Levels">[RFC2119]</cite></a>. |
---|
| 541 | </p> |
---|
[1060] | 542 | <p id="rfc.section.2.p.2">This specification uses the augmented BNF notation defined in <a href="http://tools.ietf.org/html/rfc2616#section-2.1">Section 2.1</a> of <a href="#RFC2616" id="rfc.xref.RFC2616.3"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2616]</cite></a>, including its rules for implied linear whitespace (LWS). |
---|
[982] | 543 | </p> |
---|
[1115] | 544 | <h1 id="rfc.section.3"><a href="#rfc.section.3">3.</a> <a id="conformance.and.error.handling" href="#conformance.and.error.handling">Conformance and Error Handling</a></h1> |
---|
| 545 | <p id="rfc.section.3.p.1">This specification defines conformance criteria for both senders (usually, HTTP origin servers) and recipients (usually, HTTP |
---|
| 546 | user agents) of the Content-Location header field. An implementation is considered conformant if it complies with all of the |
---|
| 547 | requirements associated with its role. |
---|
| 548 | </p> |
---|
| 549 | <p id="rfc.section.3.p.2">This specification also defines certain forms of the header field-value to be invalid, using both ABNF and prose requirements, |
---|
[1118] | 550 | but it does not define special handling of these invalid field-values. |
---|
[1115] | 551 | </p> |
---|
| 552 | <p id="rfc.section.3.p.3">Sending implementations <em class="bcp14">MUST NOT</em> generate Content-Location header fields that are invalid. |
---|
| 553 | </p> |
---|
| 554 | <p id="rfc.section.3.p.4">Consuming implementations <em class="bcp14">MAY</em> take steps to recover a usable field-value from an invalid header field, but <em class="bcp14">SHOULD NOT</em> reject the message outright, unless this is explicitly desirable behaviour (e.g., the implementation is a validator). As such, |
---|
| 555 | the default handling of invalid fields is to ignore them. |
---|
| 556 | </p> |
---|
[982] | 557 | <div id="rfc.iref.h.1"></div> |
---|
| 558 | <div id="rfc.iref.c.1"></div> |
---|
[1115] | 559 | <h1 id="rfc.section.4"><a href="#rfc.section.4">4.</a> <a id="header.field.definition" href="#header.field.definition">Header Field Definition</a></h1> |
---|
| 560 | <p id="rfc.section.4.p.1">The Content-Disposition response header field is used to convey additional information about how to process the response payload, |
---|
[1016] | 561 | and also can be used to attach additional metadata, such as the filename to use when saving the response payload locally. |
---|
[982] | 562 | </p> |
---|
[1115] | 563 | <h2 id="rfc.section.4.1"><a href="#rfc.section.4.1">4.1</a> Grammar |
---|
[982] | 564 | </h2> |
---|
| 565 | <div id="rfc.figure.u.1"></div><pre class="inline"> content-disposition = "Content-Disposition" ":" |
---|
| 566 | disposition-type *( ";" disposition-parm ) |
---|
| 567 | |
---|
| 568 | disposition-type = "inline" | "attachment" | disp-ext-type |
---|
| 569 | ; case-insensitive |
---|
| 570 | disp-ext-type = token |
---|
| 571 | |
---|
| 572 | disposition-parm = filename-parm | disp-ext-parm |
---|
| 573 | |
---|
| 574 | filename-parm = "filename" "=" value |
---|
| 575 | | "filename*" "=" ext-value |
---|
| 576 | |
---|
| 577 | disp-ext-parm = token "=" value |
---|
| 578 | | ext-token "=" ext-value |
---|
| 579 | ext-token = <the characters in token, followed by "*"> |
---|
| 580 | </pre><div id="rfc.figure.u.2"></div> |
---|
| 581 | <p>Defined in <a href="#RFC2616" id="rfc.xref.RFC2616.4"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2616]</cite></a>: |
---|
[1060] | 582 | </p> <pre class="inline"> token = <token, defined in <a href="#RFC2616" id="rfc.xref.RFC2616.5"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2616]</cite></a>, <a href="http://tools.ietf.org/html/rfc2616#section-2.2">Section 2.2</a>> |
---|
| 583 | quoted-string = <quoted-string, defined in <a href="#RFC2616" id="rfc.xref.RFC2616.6"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2616]</cite></a>, <a href="http://tools.ietf.org/html/rfc2616#section-2.2">Section 2.2</a>> |
---|
| 584 | value = <value, defined in <a href="#RFC2616" id="rfc.xref.RFC2616.7"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2616]</cite></a>, <a href="http://tools.ietf.org/html/rfc2616#section-3.6">Section 3.6</a>> |
---|
| 585 | ; token | quoted-string |
---|
| 586 | |
---|
[982] | 587 | </pre><div id="rfc.figure.u.3"></div> |
---|
[1009] | 588 | <p>Defined in <a href="#RFC5987" id="rfc.xref.RFC5987.1"><cite title="Character Set and Language Encoding for Hypertext Transfer Protocol (HTTP) Header Field Parameters">[RFC5987]</cite></a>: |
---|
| 589 | </p> <pre class="inline"> ext-value = <ext-value, defined in <a href="#RFC5987" id="rfc.xref.RFC5987.2"><cite title="Character Set and Language Encoding for Hypertext Transfer Protocol (HTTP) Header Field Parameters">[RFC5987]</cite></a>, <a href="http://tools.ietf.org/html/rfc5987#section-3.2">Section 3.2</a>> |
---|
[1115] | 590 | </pre><p id="rfc.section.4.1.p.4">Header field values with multiple instances of the same parameter name are invalid.</p> |
---|
| 591 | <p id="rfc.section.4.1.p.5">Note that due to the rules for implied linear whitespace (<a href="http://tools.ietf.org/html/rfc2616#section-2.1">Section 2.1</a> of <a href="#RFC2616" id="rfc.xref.RFC2616.8"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2616]</cite></a>), OPTIONAL whitespace can appear between words (token or quoted-string) and separator characters. |
---|
[1024] | 592 | </p> |
---|
[1115] | 593 | <p id="rfc.section.4.1.p.6">Furthermore note that the format used for ext-value allows specifying a natural language; this is of limited use for filenames |
---|
[1074] | 594 | and is likely to be ignored by recipients. |
---|
| 595 | </p> |
---|
[1115] | 596 | <h2 id="rfc.section.4.2"><a href="#rfc.section.4.2">4.2</a> <a id="disposition.type" href="#disposition.type">Disposition Type</a></h2> |
---|
| 597 | <p id="rfc.section.4.2.p.1">If the disposition type matches "attachment" (case-insensitively), this indicates that the user agent should prompt the user |
---|
[1016] | 598 | to save the response locally, rather than process it normally (as per its media type). |
---|
[982] | 599 | </p> |
---|
[1115] | 600 | <p id="rfc.section.4.2.p.2">On the other hand, if it matches "inline" (case-insensitively), this implies default processing.</p> |
---|
| 601 | <p id="rfc.section.4.2.p.3">Unknown or unhandled disposition types <em class="bcp14">SHOULD</em> be handled by recipients the same way as "attachment" (see also <a href="#RFC2183" id="rfc.xref.RFC2183.2"><cite title="Communicating Presentation Information in Internet Messages: The Content-Disposition Header Field">[RFC2183]</cite></a>, <a href="http://tools.ietf.org/html/rfc2183#section-2.8">Section 2.8</a>). |
---|
[982] | 602 | </p> |
---|
[1115] | 603 | <h2 id="rfc.section.4.3"><a href="#rfc.section.4.3">4.3</a> <a id="disposition.parameter.filename" href="#disposition.parameter.filename">Disposition Parameter: 'Filename'</a></h2> |
---|
| 604 | <p id="rfc.section.4.3.p.1">The parameters "filename" and "filename*", to be matched case-insensitively, provide information on how to construct a filename |
---|
[982] | 605 | for storing the message payload. |
---|
| 606 | </p> |
---|
[1115] | 607 | <p id="rfc.section.4.3.p.2">Depending on the disposition type, this information might be used right away (in the "save as..." interaction caused for the |
---|
[982] | 608 | "attachment" disposition type), or later on (for instance, when the user decides to save the contents of the current page |
---|
| 609 | being displayed). |
---|
| 610 | </p> |
---|
[1115] | 611 | <p id="rfc.section.4.3.p.3">The parameters "filename" and "filename*" differ only in that "filename*" uses the encoding defined in <a href="#RFC5987" id="rfc.xref.RFC5987.3"><cite title="Character Set and Language Encoding for Hypertext Transfer Protocol (HTTP) Header Field Parameters">[RFC5987]</cite></a>, allowing the use of characters not present in the ISO-8859-1 character set (<a href="#ISO-8859-1" id="rfc.xref.ISO-8859-1.1"><cite title="Information technology -- 8-bit single-byte coded graphic character sets -- Part 1: Latin alphabet No. 1">[ISO-8859-1]</cite></a>). |
---|
[982] | 612 | </p> |
---|
[1115] | 613 | <p id="rfc.section.4.3.p.4">Many user agent implementations predating this specification do not understand the "filename*" parameter. Therefore, when |
---|
[1011] | 614 | both "filename" and "filename*" are present in a single header field value, recipients <em class="bcp14">SHOULD</em> pick "filename*" and ignore "filename". This way, senders can avoid special-casing specific user agents by sending both the |
---|
[1115] | 615 | more expressive "filename*" parameter, and the "filename" parameter as fallback for legacy recipients (see <a href="#examples" title="Examples">Section 5</a> for an example). |
---|
[1011] | 616 | </p> |
---|
[1115] | 617 | <p id="rfc.section.4.3.p.5">It is essential that user agents treat the specified filename as advisory only, thus be very careful in extracting the desired |
---|
[982] | 618 | information. In particular: |
---|
| 619 | </p> |
---|
| 620 | <ul> |
---|
| 621 | <li> |
---|
[1116] | 622 | <p>When the value contains path separator characters ("\" or "/"), recipients <em class="bcp14">SHOULD</em> ignore all but the last path segment. This prevents unintentional overwriting of well-known file system locations (such as |
---|
[1096] | 623 | "/etc/passwd"). |
---|
[982] | 624 | </p> |
---|
| 625 | </li> |
---|
| 626 | <li> |
---|
| 627 | <p>Many platforms do not use Internet Media Types (<a href="#RFC2046" id="rfc.xref.RFC2046.1"><cite title="Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types">[RFC2046]</cite></a>) to hold type information in the file system, but rely on filename extensions instead. Trusting the server-provided file |
---|
[1016] | 628 | extension could introduce a privilege escalation when the saved file is later opened (consider ".exe"). Thus, recipients need |
---|
| 629 | to ensure that a file extension is used that is safe, optimally matching the media type of the received payload. |
---|
[982] | 630 | </p> |
---|
| 631 | </li> |
---|
| 632 | <li> |
---|
[1022] | 633 | <p>Recipients are advised to strip or replace character sequences that are known to cause confusion both in user interfaces and |
---|
| 634 | in filenames, such as control characters and leading and trailing whitespace. |
---|
| 635 | </p> |
---|
| 636 | </li> |
---|
| 637 | <li> |
---|
[1012] | 638 | <p>Other aspects recipients need to be aware of are names that have a special meaning in the file system or in shell commands, |
---|
[982] | 639 | such as "." and "..", "~", "|", and also device names. |
---|
| 640 | </p> |
---|
| 641 | </li> |
---|
| 642 | </ul> |
---|
[1115] | 643 | <div class="note" id="rfc.section.4.3.p.6"> |
---|
[1041] | 644 | <p> <b>Note:</b> Many user agents do not properly handle escape characters when using the quoted-string form. Furthermore, some user agents |
---|
[1046] | 645 | erroneously try to perform unescaping of "percent" escapes (see <a href="#alternatives.percent" title="Percent Encoding">Appendix C.2</a>), and thus might misinterpret filenames containing the percent character followed by two hex digits. |
---|
[1041] | 646 | </p> |
---|
| 647 | </div> |
---|
[1115] | 648 | <h2 id="rfc.section.4.4"><a href="#rfc.section.4.4">4.4</a> <a id="disposition.parameter.extensions" href="#disposition.parameter.extensions">Disposition Parameter: Extensions</a></h2> |
---|
| 649 | <p id="rfc.section.4.4.p.1">To enable future extensions, recipients <em class="bcp14">SHOULD</em> ignore unrecognized parameters (see also <a href="#RFC2183" id="rfc.xref.RFC2183.3"><cite title="Communicating Presentation Information in Internet Messages: The Content-Disposition Header Field">[RFC2183]</cite></a>, <a href="http://tools.ietf.org/html/rfc2183#section-2.8">Section 2.8</a>). |
---|
[982] | 650 | </p> |
---|
[1115] | 651 | <h2 id="rfc.section.4.5"><a href="#rfc.section.4.5">4.5</a> <a id="extensibility" href="#extensibility">Extensibility</a></h2> |
---|
| 652 | <p id="rfc.section.4.5.p.1">Note that <a href="http://tools.ietf.org/html/rfc2183#section-9">Section 9</a> of <a href="#RFC2183" id="rfc.xref.RFC2183.4"><cite title="Communicating Presentation Information in Internet Messages: The Content-Disposition Header Field">[RFC2183]</cite></a> defines IANA registries both for disposition types and disposition parameters. This registry is shared by different protocols |
---|
[982] | 653 | using Content-Disposition, such as MIME and HTTP. Therefore, not all registered values may make sense in the context of HTTP. |
---|
| 654 | </p> |
---|
[1115] | 655 | <h1 id="rfc.section.5"><a href="#rfc.section.5">5.</a> <a id="examples" href="#examples">Examples</a></h1> |
---|
[982] | 656 | <div id="rfc.figure.u.4"></div> |
---|
[997] | 657 | <p>Direct UA to show "save as" dialog, with a filename of "example.html":</p> <pre class="text">Content-Disposition: Attachment; filename=example.html |
---|
[982] | 658 | </pre><div id="rfc.figure.u.5"></div> |
---|
[1074] | 659 | <p>Direct UA to behave as if the Content-Disposition header field wasn't present, but to remember the filename "an example.html" |
---|
[997] | 660 | for a subsequent save operation: |
---|
[1074] | 661 | </p> <pre class="text">Content-Disposition: INLINE; FILENAME= "an example.html" |
---|
| 662 | </pre> <p>Note: this uses the quoted-string form so that the space character can be included.</p> |
---|
| 663 | <div id="rfc.figure.u.6"></div> |
---|
[997] | 664 | <p>Direct UA to show "save as" dialog, with a filename containing the Unicode character U+20AC (EURO SIGN):</p> <pre class="text">Content-Disposition: attachment; |
---|
| 665 | filename*= UTF-8''<b>%e2%82%ac</b>%20rates |
---|
[1074] | 666 | </pre> <p>Here, the encoding defined in <a href="#RFC5987" id="rfc.xref.RFC5987.4"><cite title="Character Set and Language Encoding for Hypertext Transfer Protocol (HTTP) Header Field Parameters">[RFC5987]</cite></a> is also used to encode the non-ISO-8859-1 character. |
---|
[982] | 667 | </p> |
---|
[1074] | 668 | <div id="rfc.figure.u.7"></div> |
---|
[997] | 669 | <p>Same as above, but adding the "filename" parameter for compatibility with user agents not implementing RFC 5987:</p> <pre class="text">Content-Disposition: attachment; |
---|
| 670 | filename="EURO rates"; |
---|
| 671 | filename*=utf-8''<b>%e2%82%ac</b>%20rates |
---|
[1103] | 672 | </pre> <p>Note: as of February 2011, those user agents that do not support the RFC 5987 encoding ignore "filename*" when it occurs after |
---|
[1023] | 673 | "filename". Unfortunately, some user agents that do support RFC 5987 do pick the "filename" rather than the "filename*" parameter |
---|
| 674 | when it occurs first; it is expected that this situation is going to improve soon. |
---|
[982] | 675 | </p> |
---|
[1115] | 676 | <h1 id="rfc.section.6"><a href="#rfc.section.6">6.</a> <a id="i18n" href="#i18n">Internationalization Considerations</a></h1> |
---|
| 677 | <p id="rfc.section.6.p.1">The "filename*" parameter (<a href="#disposition.parameter.filename" title="Disposition Parameter: 'Filename'">Section 4.3</a>), using the encoding defined in <a href="#RFC5987" id="rfc.xref.RFC5987.5"><cite title="Character Set and Language Encoding for Hypertext Transfer Protocol (HTTP) Header Field Parameters">[RFC5987]</cite></a>, allows the server to transmit characters outside the ISO-8859-1 character set, and also to optionally specify the language |
---|
[982] | 678 | in use. |
---|
| 679 | </p> |
---|
[1115] | 680 | <p id="rfc.section.6.p.2">Future parameters might also require internationalization, in which case the same encoding can be used.</p> |
---|
| 681 | <h1 id="rfc.section.7"><a href="#rfc.section.7">7.</a> <a id="security.considerations" href="#security.considerations">Security Considerations</a></h1> |
---|
| 682 | <p id="rfc.section.7.p.1">Using server-supplied information for constructing local filenames introduces many risks. These are summarized in <a href="#disposition.parameter.filename" title="Disposition Parameter: 'Filename'">Section 4.3</a>. |
---|
[982] | 683 | </p> |
---|
[1115] | 684 | <p id="rfc.section.7.p.2">Furthermore, implementers also ought to be aware of the Security Considerations applying to HTTP (see <a href="http://tools.ietf.org/html/rfc2616#section-15">Section 15</a> of <a href="#RFC2616" id="rfc.xref.RFC2616.9"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2616]</cite></a>), and also the parameter encoding defined in <a href="#RFC5987" id="rfc.xref.RFC5987.6"><cite title="Character Set and Language Encoding for Hypertext Transfer Protocol (HTTP) Header Field Parameters">[RFC5987]</cite></a> (see <a href="http://tools.ietf.org/html/rfc5987#section-5" id="rfc.xref.RFC5987.7">Section 5</a>). |
---|
[982] | 685 | </p> |
---|
[1115] | 686 | <h1 id="rfc.section.8"><a href="#rfc.section.8">8.</a> <a id="iana.considerations" href="#iana.considerations">IANA Considerations</a></h1> |
---|
| 687 | <h2 id="rfc.section.8.1"><a href="#rfc.section.8.1">8.1</a> <a id="registry" href="#registry">Registry for Disposition Values and Parameter</a></h2> |
---|
| 688 | <p id="rfc.section.8.1.p.1">This specification does not introduce any changes to the registration procedures for disposition values and parameters that |
---|
[982] | 689 | are defined in <a href="http://tools.ietf.org/html/rfc2183#section-9">Section 9</a> of <a href="#RFC2183" id="rfc.xref.RFC2183.5"><cite title="Communicating Presentation Information in Internet Messages: The Content-Disposition Header Field">[RFC2183]</cite></a>. |
---|
| 690 | </p> |
---|
[1115] | 691 | <h2 id="rfc.section.8.2"><a href="#rfc.section.8.2">8.2</a> <a id="header.field.registration" href="#header.field.registration">Header Field Registration</a></h2> |
---|
| 692 | <p id="rfc.section.8.2.p.1">This document updates the definition of the Content-Disposition HTTP header field in the permanent HTTP header field registry |
---|
[982] | 693 | (see <a href="#RFC3864" id="rfc.xref.RFC3864.1"><cite title="Registration Procedures for Message Header Fields">[RFC3864]</cite></a>). |
---|
| 694 | </p> |
---|
[1115] | 695 | <p id="rfc.section.8.2.p.2"> </p> |
---|
[982] | 696 | <dl> |
---|
| 697 | <dt>Header field name:</dt> |
---|
| 698 | <dd>Content-Disposition</dd> |
---|
| 699 | <dt>Applicable protocol:</dt> |
---|
| 700 | <dd>http</dd> |
---|
| 701 | <dt>Status:</dt> |
---|
| 702 | <dd>standard</dd> |
---|
| 703 | <dt>Author/Change controller:</dt> |
---|
| 704 | <dd>IETF</dd> |
---|
| 705 | <dt>Specification document:</dt> |
---|
[1115] | 706 | <dd>this specification (<a href="#header.field.definition" id="rfc.xref.header.field.definition.1" title="Header Field Definition">Section 4</a>) |
---|
[982] | 707 | </dd> |
---|
| 708 | </dl> |
---|
[1115] | 709 | <h1 id="rfc.section.9"><a href="#rfc.section.9">9.</a> Acknowledgements |
---|
[982] | 710 | </h1> |
---|
[1115] | 711 | <p id="rfc.section.9.p.1">Thanks to Adam Barth, Rolf Eike Beer, Bjoern Hoehrmann, Alfred Hoenes, Roar Lauritzsen, Henrik Nordstrom, and Mark Nottingham |
---|
[1022] | 712 | for their valuable feedback. |
---|
[1016] | 713 | </p> |
---|
[1115] | 714 | <h1 id="rfc.references"><a id="rfc.section.10" href="#rfc.section.10">10.</a> References |
---|
[982] | 715 | </h1> |
---|
[1115] | 716 | <h2 id="rfc.references.1"><a href="#rfc.section.10.1" id="rfc.section.10.1">10.1</a> Normative References |
---|
[982] | 717 | </h2> |
---|
| 718 | <table> |
---|
| 719 | <tr> |
---|
| 720 | <td class="reference"><b id="ISO-8859-1">[ISO-8859-1]</b></td> |
---|
| 721 | <td class="top">International Organization for Standardization, “Information technology -- 8-bit single-byte coded graphic character sets -- Part 1: Latin alphabet No. 1”, ISO/IEC 8859-1:1998, 1998.</td> |
---|
| 722 | </tr> |
---|
| 723 | <tr> |
---|
| 724 | <td class="reference"><b id="RFC2119">[RFC2119]</b></td> |
---|
| 725 | <td class="top"><a href="mailto:sob@harvard.edu" title="Harvard University">Bradner, S.</a>, “<a href="http://tools.ietf.org/html/rfc2119">Key words for use in RFCs to Indicate Requirement Levels</a>”, BCP 14, RFC 2119, March 1997. |
---|
| 726 | </td> |
---|
| 727 | </tr> |
---|
| 728 | <tr> |
---|
| 729 | <td class="reference"><b id="RFC2616">[RFC2616]</b></td> |
---|
| 730 | <td class="top"><a href="mailto:fielding@ics.uci.edu" title="University of California, Irvine">Fielding, R.</a>, <a href="mailto:jg@w3.org" title="W3C">Gettys, J.</a>, <a href="mailto:mogul@wrl.dec.com" title="Compaq Computer Corporation">Mogul, J.</a>, <a href="mailto:frystyk@w3.org" title="MIT Laboratory for Computer Science">Frystyk, H.</a>, <a href="mailto:masinter@parc.xerox.com" title="Xerox Corporation">Masinter, L.</a>, <a href="mailto:paulle@microsoft.com" title="Microsoft Corporation">Leach, P.</a>, and <a href="mailto:timbl@w3.org" title="W3C">T. Berners-Lee</a>, “<a href="http://tools.ietf.org/html/rfc2616">Hypertext Transfer Protocol -- HTTP/1.1</a>”, RFC 2616, June 1999. |
---|
| 731 | </td> |
---|
| 732 | </tr> |
---|
| 733 | <tr> |
---|
| 734 | <td class="reference"><b id="RFC5987">[RFC5987]</b></td> |
---|
[1009] | 735 | <td class="top"><a href="mailto:julian.reschke@greenbytes.de" title="greenbytes GmbH">Reschke, J.</a>, “<a href="http://tools.ietf.org/html/rfc5987">Character Set and Language Encoding for Hypertext Transfer Protocol (HTTP) Header Field Parameters</a>”, RFC 5987, August 2010. |
---|
[982] | 736 | </td> |
---|
| 737 | </tr> |
---|
| 738 | </table> |
---|
[1115] | 739 | <h2 id="rfc.references.2"><a href="#rfc.section.10.2" id="rfc.section.10.2">10.2</a> Informative References |
---|
[982] | 740 | </h2> |
---|
[1078] | 741 | <table> |
---|
[982] | 742 | <tr> |
---|
| 743 | <td class="reference"><b id="RFC2046">[RFC2046]</b></td> |
---|
| 744 | <td class="top"><a href="mailto:ned@innosoft.com" title="Innosoft International, Inc.">Freed, N.</a> and <a href="mailto:nsb@nsb.fv.com" title="First Virtual Holdings">N. Borenstein</a>, “<a href="http://tools.ietf.org/html/rfc2046">Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types</a>”, RFC 2046, November 1996. |
---|
| 745 | </td> |
---|
| 746 | </tr> |
---|
| 747 | <tr> |
---|
| 748 | <td class="reference"><b id="RFC2047">[RFC2047]</b></td> |
---|
| 749 | <td class="top"><a href="mailto:moore@cs.utk.edu" title="University of Tennessee">Moore, K.</a>, “<a href="http://tools.ietf.org/html/rfc2047">MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text</a>”, RFC 2047, November 1996. |
---|
| 750 | </td> |
---|
| 751 | </tr> |
---|
| 752 | <tr> |
---|
| 753 | <td class="reference"><b id="RFC2183">[RFC2183]</b></td> |
---|
| 754 | <td class="top"><a href="mailto:rens@century.com" title="New Century Systems">Troost, R.</a>, <a href="mailto:sdorner@qualcomm.com" title="QUALCOMM Incorporated">Dorner, S.</a>, and <a href="mailto:moore@cs.utk.edu" title="Department of Computer Science">K. Moore</a>, “<a href="http://tools.ietf.org/html/rfc2183">Communicating Presentation Information in Internet Messages: The Content-Disposition Header Field</a>”, RFC 2183, August 1997. |
---|
| 755 | </td> |
---|
| 756 | </tr> |
---|
| 757 | <tr> |
---|
| 758 | <td class="reference"><b id="RFC2231">[RFC2231]</b></td> |
---|
| 759 | <td class="top"><a href="mailto:ned.freed@innosoft.com" title="Innosoft International, Inc.">Freed, N.</a> and <a href="mailto:moore@cs.utk.edu" title="University of Tennessee">K. Moore</a>, “<a href="http://tools.ietf.org/html/rfc2231">MIME Parameter Value and Encoded Word Extensions: Character Sets, Languages, and Continuations</a>”, RFC 2231, November 1997. |
---|
| 760 | </td> |
---|
| 761 | </tr> |
---|
| 762 | <tr> |
---|
[1078] | 763 | <td class="reference"><b id="RFC2388">[RFC2388]</b></td> |
---|
| 764 | <td class="top"><a href="mailto:masinter@parc.xerox.com" title="Xerox Palo Alto Research Center">Masinter, L.</a>, “<a href="http://tools.ietf.org/html/rfc2388">Returning Values from Forms: multipart/form-data</a>”, RFC 2388, August 1998. |
---|
| 765 | </td> |
---|
| 766 | </tr> |
---|
| 767 | <tr> |
---|
[982] | 768 | <td class="reference"><b id="RFC3864">[RFC3864]</b></td> |
---|
| 769 | <td class="top"><a href="mailto:GK-IETF@ninebynine.org" title="Nine by Nine">Klyne, G.</a>, <a href="mailto:mnot@pobox.com" title="BEA Systems">Nottingham, M.</a>, and <a href="mailto:JeffMogul@acm.org" title="HP Labs">J. Mogul</a>, “<a href="http://tools.ietf.org/html/rfc3864">Registration Procedures for Message Header Fields</a>”, BCP 90, RFC 3864, September 2004. |
---|
| 770 | </td> |
---|
| 771 | </tr> |
---|
| 772 | <tr> |
---|
| 773 | <td class="reference"><b id="RFC3986">[RFC3986]</b></td> |
---|
[1004] | 774 | <td class="top"><a href="mailto:timbl@w3.org" title="World Wide Web Consortium">Berners-Lee, T.</a>, <a href="mailto:fielding@gbiv.com" title="Day Software">Fielding, R.</a>, and <a href="mailto:LMM@acm.org" title="Adobe Systems Incorporated">L. Masinter</a>, “<a href="http://tools.ietf.org/html/rfc3986">Uniform Resource Identifier (URI): Generic Syntax</a>”, STD 66, RFC 3986, January 2005. |
---|
[982] | 775 | </td> |
---|
| 776 | </tr> |
---|
| 777 | </table> |
---|
| 778 | <div class="avoidbreak"> |
---|
| 779 | <h1 id="rfc.authors"><a href="#rfc.authors">Author's Address</a></h1> |
---|
| 780 | <address class="vcard"><span class="vcardline"><span class="fn">Julian F. Reschke</span><span class="n hidden"><span class="family-name">Reschke</span><span class="given-name">Julian F.</span></span></span><span class="org vcardline">greenbytes GmbH</span><span class="adr"><span class="street-address vcardline">Hafenweg 16</span><span class="vcardline"><span class="locality">Muenster</span>, <span class="region">NW</span> <span class="postal-code">48155</span></span><span class="country-name vcardline">Germany</span></span><span class="vcardline">Email: <a href="mailto:julian.reschke@greenbytes.de"><span class="email">julian.reschke@greenbytes.de</span></a></span><span class="vcardline">URI: <a href="http://greenbytes.de/tech/webdav/" class="url">http://greenbytes.de/tech/webdav/</a></span></address> |
---|
| 781 | </div> |
---|
| 782 | <h1 id="rfc.section.A" class="np"><a href="#rfc.section.A">A.</a> <a id="changes.from.rfc2616" href="#changes.from.rfc2616">Changes from the RFC 2616 Definition</a></h1> |
---|
[1060] | 783 | <p id="rfc.section.A.p.1">Compared to <a href="http://tools.ietf.org/html/rfc2616#section-19.5.1">Section 19.5.1</a> of <a href="#RFC2616" id="rfc.xref.RFC2616.10"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2616]</cite></a>, the following normative changes reflecting actual implementations have been made: |
---|
[982] | 784 | </p> |
---|
| 785 | <ul> |
---|
| 786 | <li>According to RFC 2616, the disposition type "attachment" only applies to content of type "application/octet-stream". This |
---|
| 787 | restriction has been removed, because user agents in practice do not check the content type, and it also discourages properly |
---|
| 788 | declaring the media type. |
---|
| 789 | </li> |
---|
| 790 | <li>RFC 2616 only allows "quoted-string" for the filename parameter. This would be an exceptional parameter syntax, and also doesn't |
---|
| 791 | reflect actual use. |
---|
| 792 | </li> |
---|
| 793 | <li>The definition for the disposition type "inline" (<a href="#RFC2183" id="rfc.xref.RFC2183.6"><cite title="Communicating Presentation Information in Internet Messages: The Content-Disposition Header Field">[RFC2183]</cite></a>, <a href="http://tools.ietf.org/html/rfc2183#section-2.1">Section 2.1</a>) has been re-added with a suggestion for its processing. |
---|
| 794 | </li> |
---|
[1074] | 795 | <li>This specification requires support for the extended parameter encoding defined in <a href="#RFC5987" id="rfc.xref.RFC5987.8"><cite title="Character Set and Language Encoding for Hypertext Transfer Protocol (HTTP) Header Field Parameters">[RFC5987]</cite></a>. |
---|
[982] | 796 | </li> |
---|
| 797 | </ul> |
---|
| 798 | <h1 id="rfc.section.B"><a href="#rfc.section.B">B.</a> <a id="diffs.compared.to.rfc2183" href="#diffs.compared.to.rfc2183">Differences compared to RFC 2183</a></h1> |
---|
[1059] | 799 | <p id="rfc.section.B.p.1"> <a href="http://tools.ietf.org/html/rfc2183#section-2">Section 2</a> of <a href="#RFC2183" id="rfc.xref.RFC2183.7"><cite title="Communicating Presentation Information in Internet Messages: The Content-Disposition Header Field">[RFC2183]</cite></a> defines several additional disposition parameters: "creation-date", "modification-date", "quoted-date-time", and "size". The |
---|
| 800 | majority of user agents does not implement these, thus they have been omitted from this specification. |
---|
[982] | 801 | </p> |
---|
| 802 | <h1 id="rfc.section.C"><a href="#rfc.section.C">C.</a> <a id="alternatives" href="#alternatives">Alternative Approaches to Internationalization</a></h1> |
---|
[1060] | 803 | <p id="rfc.section.C.p.1">By default, HTTP header field parameters cannot carry characters outside the ISO-8859-1 (<a href="#ISO-8859-1" id="rfc.xref.ISO-8859-1.2"><cite title="Information technology -- 8-bit single-byte coded graphic character sets -- Part 1: Latin alphabet No. 1">[ISO-8859-1]</cite></a>) character encoding (see <a href="#RFC2616" id="rfc.xref.RFC2616.11"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2616]</cite></a>, <a href="http://tools.ietf.org/html/rfc2616#section-2.2">Section 2.2</a>). For the "filename" parameter, this of course is an unacceptable restriction. |
---|
[982] | 804 | </p> |
---|
| 805 | <p id="rfc.section.C.p.2">Unfortunately, user agent implementers have not managed to come up with an interoperable approach, although the IETF Standards |
---|
[1074] | 806 | Track specifies exactly one solution (<a href="#RFC2231" id="rfc.xref.RFC2231.1"><cite title="MIME Parameter Value and Encoded Word Extensions: Character Sets, Languages, and Continuations">[RFC2231]</cite></a>, clarified and profiled for HTTP in <a href="#RFC5987" id="rfc.xref.RFC5987.9"><cite title="Character Set and Language Encoding for Hypertext Transfer Protocol (HTTP) Header Field Parameters">[RFC5987]</cite></a>). |
---|
[982] | 807 | </p> |
---|
| 808 | <p id="rfc.section.C.p.3">For completeness, the sections below describe the various approaches that have been tried, and explains how they are inferior |
---|
| 809 | to the RFC 5987 encoding used in this specification. |
---|
| 810 | </p> |
---|
| 811 | <h2 id="rfc.section.C.1"><a href="#rfc.section.C.1">C.1</a> <a id="alternatives.rfc2047" href="#alternatives.rfc2047">RFC 2047 Encoding</a></h2> |
---|
| 812 | <p id="rfc.section.C.1.p.1">RFC 2047 defines an encoding mechanism for header fields, but this encoding is not supposed to be used for header field parameters |
---|
| 813 | - see <a href="http://tools.ietf.org/html/rfc2047#section-5">Section 5</a> of <a href="#RFC2047" id="rfc.xref.RFC2047.1"><cite title="MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text">[RFC2047]</cite></a>: |
---|
| 814 | </p> |
---|
| 815 | <blockquote id="rfc.section.C.1.p.2" cite="http://tools.ietf.org/html/rfc2047#section-5"> |
---|
| 816 | <p>An 'encoded-word' MUST NOT appear within a 'quoted-string'.</p> |
---|
| 817 | <p>...</p> |
---|
| 818 | <p>An 'encoded-word' MUST NOT be used in parameter of a MIME Content-Type or Content-Disposition field, or in any structured |
---|
| 819 | field body except within a 'comment' or 'phrase'. |
---|
| 820 | </p> |
---|
| 821 | </blockquote> |
---|
| 822 | <p id="rfc.section.C.1.p.3">In practice, some user agents implement the encoding, some do not (exposing the encoded string to the user), and some get |
---|
| 823 | confused by it. |
---|
| 824 | </p> |
---|
| 825 | <h2 id="rfc.section.C.2"><a href="#rfc.section.C.2">C.2</a> <a id="alternatives.percent" href="#alternatives.percent">Percent Encoding</a></h2> |
---|
[1075] | 826 | <p id="rfc.section.C.2.p.1">Some user agents accept percent encoded (<a href="#RFC3986" id="rfc.xref.RFC3986.1"><cite title="Uniform Resource Identifier (URI): Generic Syntax">[RFC3986]</cite></a>, <a href="http://tools.ietf.org/html/rfc3986#section-2.1">Section 2.1</a>) sequences of characters. The character encoding being used for decoding depends on various factors, including the encoding |
---|
[1077] | 827 | of the referring page, the user agent's locale, its configuration, and also the actual value of the parameter. |
---|
[982] | 828 | </p> |
---|
| 829 | <p id="rfc.section.C.2.p.2">In practice, this is hard to use because those user agents that do not support it will display the escaped character sequence |
---|
[1075] | 830 | to the user. For those user agents that do implement this it is difficult to predict what character encoding they actually |
---|
| 831 | expect. |
---|
[982] | 832 | </p> |
---|
| 833 | <h2 id="rfc.section.C.3"><a href="#rfc.section.C.3">C.3</a> <a id="alternatives.sniff" href="#alternatives.sniff">Encoding Sniffing</a></h2> |
---|
[1080] | 834 | <p id="rfc.section.C.3.p.1">Some user agents inspect the value (which defaults to ISO-8859-1 for the quoted-string form) and switch to UTF-8 when it seems |
---|
| 835 | to be more likely to be the correct interpretation. |
---|
[982] | 836 | </p> |
---|
| 837 | <p id="rfc.section.C.3.p.2">As with the approaches above, this is not interoperable and furthermore risks misinterpreting the actual value.</p> |
---|
[1005] | 838 | <h2 id="rfc.section.C.4"><a href="#rfc.section.C.4">C.4</a> <a id="alternatives.implementations" href="#alternatives.implementations">Implementations (to be removed by RFC Editor before publication)</a></h2> |
---|
[1103] | 839 | <p id="rfc.section.C.4.p.1">Unfortunately, as of February 2011, neither the encoding defined in RFCs 2231 and 5987, nor any of the alternate approaches |
---|
[982] | 840 | discussed above was implemented interoperably. Thus, this specification recommends the approach defined in RFC 5987, which |
---|
| 841 | at least has the advantage of actually being specified properly. |
---|
| 842 | </p> |
---|
[1005] | 843 | <p id="rfc.section.C.4.p.2">The table below shows the implementation support for the various approaches:</p> |
---|
[982] | 844 | <div id="rfc.table.u.1"> |
---|
| 845 | <table class="tt full left" cellpadding="3" cellspacing="0"> |
---|
| 846 | <thead> |
---|
| 847 | <tr> |
---|
| 848 | <th>User Agent</th> |
---|
| 849 | <th>RFC 2231/5987</th> |
---|
| 850 | <th>RFC 2047</th> |
---|
| 851 | <th>Percent Encoding</th> |
---|
| 852 | <th>Encoding Sniffing</th> |
---|
| 853 | </tr> |
---|
| 854 | </thead> |
---|
| 855 | <tbody> |
---|
| 856 | <tr> |
---|
| 857 | <td class="left">Chrome</td> |
---|
| 858 | <td class="left">yes</td> |
---|
| 859 | <td class="left">yes</td> |
---|
| 860 | <td class="left">yes</td> |
---|
[1104] | 861 | <td class="left">yes</td> |
---|
[982] | 862 | </tr> |
---|
| 863 | <tr> |
---|
| 864 | <td class="left">Firefox</td> |
---|
[1104] | 865 | <td class="left">yes (*)</td> |
---|
[982] | 866 | <td class="left">yes</td> |
---|
| 867 | <td class="left">no</td> |
---|
| 868 | <td class="left">yes</td> |
---|
| 869 | </tr> |
---|
| 870 | <tr> |
---|
| 871 | <td class="left">Internet Explorer</td> |
---|
[1117] | 872 | <td class="left">yes (**)</td> |
---|
[982] | 873 | <td class="left">no</td> |
---|
| 874 | <td class="left">yes</td> |
---|
| 875 | <td class="left">no</td> |
---|
| 876 | </tr> |
---|
| 877 | <tr> |
---|
| 878 | <td class="left">Konqueror</td> |
---|
| 879 | <td class="left">yes</td> |
---|
| 880 | <td class="left">no</td> |
---|
| 881 | <td class="left">no</td> |
---|
| 882 | <td class="left">no</td> |
---|
| 883 | </tr> |
---|
| 884 | <tr> |
---|
| 885 | <td class="left">Opera</td> |
---|
[1025] | 886 | <td class="left">yes</td> |
---|
[982] | 887 | <td class="left">no</td> |
---|
| 888 | <td class="left">no</td> |
---|
| 889 | <td class="left">no</td> |
---|
| 890 | </tr> |
---|
| 891 | <tr> |
---|
| 892 | <td class="left">Safari</td> |
---|
| 893 | <td class="left">no</td> |
---|
| 894 | <td class="left">no</td> |
---|
| 895 | <td class="left">no</td> |
---|
| 896 | <td class="left">yes</td> |
---|
| 897 | </tr> |
---|
| 898 | </tbody> |
---|
| 899 | </table> |
---|
| 900 | </div> |
---|
[1115] | 901 | <p id="rfc.section.C.4.p.3">(*) Does not implement the fallback behavior to "filename" described in <a href="#disposition.parameter.filename" title="Disposition Parameter: 'Filename'">Section 4.3</a>. |
---|
[1076] | 902 | </p> |
---|
[1117] | 903 | <p id="rfc.section.C.4.p.4">(**) Starting with IE9RC, but only implements UTF-8.</p> |
---|
[982] | 904 | <h1 id="rfc.section.D"><a href="#rfc.section.D">D.</a> <a id="change.log" href="#change.log">Change Log (to be removed by RFC Editor before publication)</a></h1> |
---|
[1021] | 905 | <p id="rfc.section.D.p.1">Note: the issues names in the change log entries for draft-reschke-rfc2183-in-http refer to <<a href="http://greenbytes.de/tech/webdav/draft-reschke-rfc2183-in-http-issues.html">http://greenbytes.de/tech/webdav/draft-reschke-rfc2183-in-http-issues.html</a>>. |
---|
| 906 | </p> |
---|
[982] | 907 | <h2 id="rfc.section.D.1"><a href="#rfc.section.D.1">D.1</a> Since draft-reschke-rfc2183-in-http-00 |
---|
| 908 | </h2> |
---|
| 909 | <p id="rfc.section.D.1.p.1">Adjust terminology ("header" -> "header field"). Update rfc2231-in-http reference.</p> |
---|
| 910 | <h2 id="rfc.section.D.2"><a href="#rfc.section.D.2">D.2</a> Since draft-reschke-rfc2183-in-http-01 |
---|
| 911 | </h2> |
---|
| 912 | <p id="rfc.section.D.2.p.1">Update rfc2231-in-http reference. Actually define the "filename" parameter. Add internationalization considerations. Add examples |
---|
| 913 | using the RFC 5987 encoding. Add overview over other approaches, plus a table reporting implementation status. Add and resolve |
---|
| 914 | issue "nodep2183". Add issues "asciivsiso", "deplboth", "quoted", and "registry". |
---|
| 915 | </p> |
---|
| 916 | <h2 id="rfc.section.D.3"><a href="#rfc.section.D.3">D.3</a> Since draft-reschke-rfc2183-in-http-02 |
---|
| 917 | </h2> |
---|
| 918 | <p id="rfc.section.D.3.p.1">Add and close issue "docfallback". Close issues "asciivsiso", "deplboth", "quoted", and "registry".</p> |
---|
| 919 | <h2 id="rfc.section.D.4"><a href="#rfc.section.D.4">D.4</a> Since draft-reschke-rfc2183-in-http-03 |
---|
| 920 | </h2> |
---|
| 921 | <p id="rfc.section.D.4.p.1">Updated to be a Working Draft of the IETF HTTPbis Working Group.</p> |
---|
[986] | 922 | <h2 id="rfc.section.D.5"><a href="#rfc.section.D.5">D.5</a> <a id="changes.since.00" href="#changes.since.00">Since draft-ietf-httpbis-content-disp-00</a></h2> |
---|
[989] | 923 | <p id="rfc.section.D.5.p.1">Closed issues: </p> |
---|
| 924 | <ul> |
---|
| 925 | <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/242">http://tools.ietf.org/wg/httpbis/trac/ticket/242</a>>: "handling of unknown disposition types" |
---|
| 926 | </li> |
---|
| 927 | </ul> |
---|
[996] | 928 | <p id="rfc.section.D.5.p.2">Slightly updated the notes about the proposed fallback behavior.</p> |
---|
[1013] | 929 | <h2 id="rfc.section.D.6"><a href="#rfc.section.D.6">D.6</a> <a id="changes.since.01" href="#changes.since.01">Since draft-ietf-httpbis-content-disp-01</a></h2> |
---|
[1017] | 930 | <p id="rfc.section.D.6.p.1">Various editorial improvements.</p> |
---|
[1020] | 931 | <h2 id="rfc.section.D.7"><a href="#rfc.section.D.7">D.7</a> <a id="changes.since.02" href="#changes.since.02">Since draft-ietf-httpbis-content-disp-02</a></h2> |
---|
[1022] | 932 | <p id="rfc.section.D.7.p.1">Closed issues: </p> |
---|
| 933 | <ul> |
---|
[1024] | 934 | <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/244">http://tools.ietf.org/wg/httpbis/trac/ticket/244</a>>: "state that repeating parameters are invalid" |
---|
| 935 | </li> |
---|
[1041] | 936 | <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/245">http://tools.ietf.org/wg/httpbis/trac/ticket/245</a>>: "warn about %xx in filenames being misinterpreted" |
---|
| 937 | </li> |
---|
[1022] | 938 | <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/246">http://tools.ietf.org/wg/httpbis/trac/ticket/246</a>>: "mention control chars when talking about postprecessing the filename parameter" |
---|
| 939 | </li> |
---|
| 940 | </ul> |
---|
[1025] | 941 | <p id="rfc.section.D.7.p.2">Update <a href="#alternatives.implementations" title="Implementations (to be removed by RFC Editor before publication)">Appendix C.4</a>; Opera 10.63 RC implements the recommended fallback behavior. |
---|
| 942 | </p> |
---|
[1056] | 943 | <h2 id="rfc.section.D.8"><a href="#rfc.section.D.8">D.8</a> <a id="changes.since.03" href="#changes.since.03">Since draft-ietf-httpbis-content-disp-03</a></h2> |
---|
[1059] | 944 | <p id="rfc.section.D.8.p.1">Closed issues: </p> |
---|
| 945 | <ul> |
---|
| 946 | <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/252">http://tools.ietf.org/wg/httpbis/trac/ticket/252</a>>: "'modification-date' *is* implemented in Konq 4.5" |
---|
| 947 | </li> |
---|
[1060] | 948 | <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/253">http://tools.ietf.org/wg/httpbis/trac/ticket/253</a>>: "clarify what LWS means for the Content-Disp grammar" |
---|
| 949 | </li> |
---|
[1073] | 950 | <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/258">http://tools.ietf.org/wg/httpbis/trac/ticket/258</a>>: "Avoid passive voice in message requirements" |
---|
| 951 | </li> |
---|
[1075] | 952 | <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/263">http://tools.ietf.org/wg/httpbis/trac/ticket/263</a>>: "text about historical percent-decoding unclear" |
---|
| 953 | </li> |
---|
[1074] | 954 | <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/264">http://tools.ietf.org/wg/httpbis/trac/ticket/264</a>>: "add explanation of language tagging" |
---|
| 955 | </li> |
---|
[1078] | 956 | <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/265">http://tools.ietf.org/wg/httpbis/trac/ticket/265</a>>: "Clarify that C-D spec does not apply to multipart upload" |
---|
| 957 | </li> |
---|
[1059] | 958 | </ul> |
---|
[1085] | 959 | <h2 id="rfc.section.D.9"><a href="#rfc.section.D.9">D.9</a> <a id="changes.since.04" href="#changes.since.04">Since draft-ietf-httpbis-content-disp-04</a></h2> |
---|
[1117] | 960 | <p id="rfc.section.D.9.p.1">Updated implementation information (Chrome 9 implements RFC 5987, IE 9 RC implements it for UTF-8 only).</p> |
---|
[1115] | 961 | <p id="rfc.section.D.9.p.2">Clarify who requirements are on, add a section discussing conformance and handling of invalid field values in general.</p> |
---|
[1116] | 962 | <p id="rfc.section.D.9.p.3">Closed issues: </p> |
---|
| 963 | <ul> |
---|
| 964 | <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/272">http://tools.ietf.org/wg/httpbis/trac/ticket/272</a>>: "Path Separator Characters" |
---|
| 965 | </li> |
---|
| 966 | </ul> |
---|
[982] | 967 | <h1 id="rfc.index"><a href="#rfc.index">Index</a></h1> |
---|
| 968 | <p class="noprint"><a href="#rfc.index.C">C</a> <a href="#rfc.index.H">H</a> <a href="#rfc.index.I">I</a> <a href="#rfc.index.R">R</a> |
---|
| 969 | </p> |
---|
| 970 | <div class="print2col"> |
---|
| 971 | <ul class="ind"> |
---|
[1072] | 972 | <li><a id="rfc.index.C" href="#rfc.index.C"><b>C</b></a><ul> |
---|
[1115] | 973 | <li>Content-Disposition header <a href="#rfc.iref.c.1"><b>4</b></a>, <a href="#rfc.xref.header.field.definition.1">8.2</a></li> |
---|
[982] | 974 | </ul> |
---|
| 975 | </li> |
---|
[1072] | 976 | <li><a id="rfc.index.H" href="#rfc.index.H"><b>H</b></a><ul> |
---|
| 977 | <li>Headers |
---|
| 978 | <ul> |
---|
[1115] | 979 | <li>Content-Disposition <a href="#rfc.iref.h.1"><b>4</b></a>, <a href="#rfc.xref.header.field.definition.1">8.2</a></li> |
---|
[982] | 980 | </ul> |
---|
| 981 | </li> |
---|
| 982 | </ul> |
---|
| 983 | </li> |
---|
[1072] | 984 | <li><a id="rfc.index.I" href="#rfc.index.I"><b>I</b></a><ul> |
---|
[1115] | 985 | <li><em>ISO-8859-1</em> <a href="#rfc.xref.ISO-8859-1.1">4.3</a>, <a href="#ISO-8859-1"><b>10.1</b></a>, <a href="#rfc.xref.ISO-8859-1.2">C</a></li> |
---|
[982] | 986 | </ul> |
---|
| 987 | </li> |
---|
[1072] | 988 | <li><a id="rfc.index.R" href="#rfc.index.R"><b>R</b></a><ul> |
---|
[1115] | 989 | <li><em>RFC2046</em> <a href="#rfc.xref.RFC2046.1">4.3</a>, <a href="#RFC2046"><b>10.2</b></a></li> |
---|
| 990 | <li><em>RFC2047</em> <a href="#RFC2047"><b>10.2</b></a>, <a href="#rfc.xref.RFC2047.1">C.1</a><ul> |
---|
[1072] | 991 | <li><em>Section 5</em> <a href="#rfc.xref.RFC2047.1">C.1</a></li> |
---|
[982] | 992 | </ul> |
---|
| 993 | </li> |
---|
[1115] | 994 | <li><em>RFC2119</em> <a href="#rfc.xref.RFC2119.1">2</a>, <a href="#RFC2119"><b>10.1</b></a></li> |
---|
| 995 | <li><em>RFC2183</em> <a href="#rfc.xref.RFC2183.1">1</a>, <a href="#rfc.xref.RFC2183.2">4.2</a>, <a href="#rfc.xref.RFC2183.3">4.4</a>, <a href="#rfc.xref.RFC2183.4">4.5</a>, <a href="#rfc.xref.RFC2183.5">8.1</a>, <a href="#RFC2183"><b>10.2</b></a>, <a href="#rfc.xref.RFC2183.6">A</a>, <a href="#rfc.xref.RFC2183.7">B</a><ul> |
---|
[1072] | 996 | <li><em>Section 2</em> <a href="#rfc.xref.RFC2183.7">B</a></li> |
---|
| 997 | <li><em>Section 2.1</em> <a href="#rfc.xref.RFC2183.6">A</a></li> |
---|
[1115] | 998 | <li><em>Section 2.8</em> <a href="#rfc.xref.RFC2183.2">4.2</a>, <a href="#rfc.xref.RFC2183.3">4.4</a></li> |
---|
| 999 | <li><em>Section 9</em> <a href="#rfc.xref.RFC2183.4">4.5</a>, <a href="#rfc.xref.RFC2183.5">8.1</a></li> |
---|
[982] | 1000 | </ul> |
---|
| 1001 | </li> |
---|
[1115] | 1002 | <li><em>RFC2231</em> <a href="#RFC2231"><b>10.2</b></a>, <a href="#rfc.xref.RFC2231.1">C</a></li> |
---|
| 1003 | <li><em>RFC2388</em> <a href="#rfc.xref.RFC2388.1">1</a>, <a href="#RFC2388"><b>10.2</b></a></li> |
---|
| 1004 | <li><em>RFC2616</em> <a href="#rfc.xref.RFC2616.1">1</a>, <a href="#rfc.xref.RFC2616.2">1</a>, <a href="#rfc.xref.RFC2616.3">2</a>, <a href="#rfc.xref.RFC2616.4">4.1</a>, <a href="#rfc.xref.RFC2616.5">4.1</a>, <a href="#rfc.xref.RFC2616.6">4.1</a>, <a href="#rfc.xref.RFC2616.7">4.1</a>, <a href="#rfc.xref.RFC2616.8">4.1</a>, <a href="#rfc.xref.RFC2616.9">7</a>, <a href="#RFC2616"><b>10.1</b></a>, <a href="#rfc.xref.RFC2616.10">A</a>, <a href="#rfc.xref.RFC2616.11">C</a><ul> |
---|
| 1005 | <li><em>Section 2.1</em> <a href="#rfc.xref.RFC2616.3">2</a>, <a href="#rfc.xref.RFC2616.8">4.1</a></li> |
---|
| 1006 | <li><em>Section 2.2</em> <a href="#rfc.xref.RFC2616.5">4.1</a>, <a href="#rfc.xref.RFC2616.6">4.1</a>, <a href="#rfc.xref.RFC2616.11">C</a></li> |
---|
| 1007 | <li><em>Section 3.6</em> <a href="#rfc.xref.RFC2616.7">4.1</a></li> |
---|
[1072] | 1008 | <li><em>Section 15.5</em> <a href="#rfc.xref.RFC2616.2">1</a></li> |
---|
[1115] | 1009 | <li><em>Section 15</em> <a href="#rfc.xref.RFC2616.9">7</a></li> |
---|
[1072] | 1010 | <li><em>Section 19.5.1</em> <a href="#rfc.xref.RFC2616.1">1</a>, <a href="#rfc.xref.RFC2616.10">A</a></li> |
---|
[982] | 1011 | </ul> |
---|
| 1012 | </li> |
---|
[1115] | 1013 | <li><em>RFC3864</em> <a href="#rfc.xref.RFC3864.1">8.2</a>, <a href="#RFC3864"><b>10.2</b></a></li> |
---|
| 1014 | <li><em>RFC3986</em> <a href="#RFC3986"><b>10.2</b></a>, <a href="#rfc.xref.RFC3986.1">C.2</a><ul> |
---|
[1072] | 1015 | <li><em>Section 2.1</em> <a href="#rfc.xref.RFC3986.1">C.2</a></li> |
---|
[982] | 1016 | </ul> |
---|
| 1017 | </li> |
---|
[1115] | 1018 | <li><em>RFC5987</em> <a href="#rfc.xref.RFC5987.1">4.1</a>, <a href="#rfc.xref.RFC5987.2">4.1</a>, <a href="#rfc.xref.RFC5987.3">4.3</a>, <a href="#rfc.xref.RFC5987.4">5</a>, <a href="#rfc.xref.RFC5987.5">6</a>, <a href="#rfc.xref.RFC5987.6">7</a>, <a href="#rfc.xref.RFC5987.7">7</a>, <a href="#RFC5987"><b>10.1</b></a>, <a href="#rfc.xref.RFC5987.8">A</a>, <a href="#rfc.xref.RFC5987.9">C</a><ul> |
---|
| 1019 | <li><em>Section 3.2</em> <a href="#rfc.xref.RFC5987.2">4.1</a></li> |
---|
| 1020 | <li><em>Section 5</em> <a href="#rfc.xref.RFC5987.7">7</a></li> |
---|
[982] | 1021 | </ul> |
---|
| 1022 | </li> |
---|
| 1023 | </ul> |
---|
| 1024 | </li> |
---|
| 1025 | </ul> |
---|
| 1026 | </div> |
---|
| 1027 | </body> |
---|
| 1028 | </html> |
---|