RFC 2388 多部分 POST 的服务器实现与 RFC 2047 冲突?

2024-01-03

我正在尝试在 HTTP 服务器上实现 RFC 2388 以支持多部分 POST。

我正在专门查看内容处置的“名称”参数的规范。

RFC 2388 第 3 节规定:

最初采用非 ASCII 字符集的字段名称可能会被编码 使用标准方法在“name”参数的值内 RFC 2047 中描述。

我“听说”当前没有 UA 支持表单控件名称上的 RFC2047。他们只会以原始编码发送文本。 (即,如果表单控件的名称是使用 UTF-8 的日语,它将发送带有 UTF-8 日语文本的多部分 POST 请求)

然而,为了“忠实”地相信这一问题有一天会得到解决。我更喜欢坚持 RFC。

但问题来自 RFC 2047 本身。第 5(3) 条规定:

  • “编码字”不得出现在“地址规范”的任何部分中。
  • “编码字”不得出现在“引用字符串”内。
  • “编码字”不得在“已接收”标头字段中使用。
  • MIME 参数中不得使用“编码字” Content-Type 或 Content-Disposition 字段,或任何结构化的 字段主体,“评论”或“短语”内除外。

冲突在于第四个要点。鉴于“名称”参数是“内容处置”字段的一部分。我发现自己不知道规范希望我们实现者做什么。

无论什么在“现实”中有效/无效。我想问是否有人也认为这是一个冲突。

我发现自己也在问为什么 RFC 2388 仍然引用 RFC 2047 作为“名称”参数,但仅在几段之后就引用 RFC 2231 作为“文件名”参数的编码规范。鉴于 RFC 2047 不能用于“参数值”,这就是创建 RFC 2231 的原因。如果 RFC 2388 尚未更新,则“name”参数将使用 RFC 2231。

底线是,我应该还是不应该为了实现 RFC 2388 的功能而费心实施 RFC 2047?我是否还应该为“文件名”参数使用 RFC 2231?有谁知道 RFC 2231 目前是否被任何 UA 使用来上传非 ASCII 文件名?


我真的不认为这是一个冲突。请注意 RFC 2047

描述...允许在文件的各个部分中对非 ASCII 文本进行编码的技术RFC 822 消息头,以不太可能混淆现有消息处理软件的方式。

RFC 2388 并不试图导入 RFC 2047 的所有假设/上下文,而只是导入编码方法。因为此处编码的“部分”实际上是顶级“multipart/form-data”部分的子级,所以我认为尝试将有关邮件消息头的 RFC 2047 规则应用于这些部分是没有意义的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RFC 2388 多部分 POST 的服务器实现与 RFC 2047 冲突? 的相关文章

随机推荐

  • 获取焦点(或 Tab)顺序

    我使用 Qt Designer 设计了一个用户界面 并使用 编辑选项卡顺序 模式设置了选项卡顺序 现在我想知道 出于其他原因 不是那么重要 是如何获取 ui 中特定 QWidget 的 Tab 键顺序 我的意思是 如果我有几个小部件 并且说
  • 工作流程语言? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找当前工作流程语言的列表 我知道关于BPEL http en wikipedia org wiki Business Proces
  • 查询特定 Twitter 用户的 tweepy (get_followers) 中的分页

    我对使用游标类的 tweepy 和分页相当陌生 我一直在尝试使用光标类来获取特定 Twitter 用户的所有关注者 但我不断收到错误消息 tweepy error TweepError This method does not perfor
  • Apache Tomcat 9 重写阀不工作

    我一直在尝试设置我的 tomcat 9 重写阀门 在全局级别 但没有成功 遵循我在互联网上找到的每个教程 但无论我如何配置我的 rewirte config 阀门根本无法工作 所以我写了我能想到的最简单的 rewrite config 它只
  • Vue 和 Bootstrap Vue - 动态使用插槽

    我试图在 bootstrap vue 表中创建一个插槽 以使用自定义组件呈现任何布尔值 所以我有一个简单的表
  • 自动部分重新索引何时在 Magento EE 1.13 中实际运行?

    Magento 1 13 为大多数索引添加了部分索引 并能够将索引过程推迟到异步运行的 cron 作业 我的问题是 是否有现有的 cron 作业可以执行此操作 或者这是我必须自己设置的东西 文档对此并不清楚 http www magento
  • 如何在 Android 应用程序中单击按钮时打开网站?

    我正在设计一个应用程序 有几个按钮供用户单击 单击按钮后 用户将被定向到适当的网站 我该如何实现这个目标 如果您正在谈论 RCP 应用程序 那么您需要的是 SWTlink widget Here http dev eclipse org v
  • 在 Google 表格中查找默认填充颜色的颜色代码

    我正在编写一个脚本 使用以下命令为 Google 电子表格中的单元格着色Range setBackground color 方法 我想使用一种预设填充颜色 但我很难找到确切的颜色代码 十六进制 RGB 我只想要一个官方列表 000000 4
  • 如何知道应用程序是否首次在 Mac 上运行

    在Windows上 我们可以将值写入注册表来知道 但我如何知道我的应用程序是否是第一次在 Mac 上运行 我需要执行一些初始化任务 Thanks 您正在寻找班级NSUserDefaults see 苹果文档 http developer a
  • 完整的未来 | thenApplyAsync 与 thenCompose 及其用例[重复]

    这个问题在这里已经有答案了 我试图理解 CompletableFuture 并遇到了两种方法 thenApplyAsync 和 thenCompose 我试图理解这两者之间的区别 CompletableFuture
  • HTML5:通过 JavaScript 绘图后将透明度应用于 Canvas

    我试图将多个对象绘制到画布元素上 然后将它们干净地淡出 然而 当尝试使用 globalAlpha 来实现此目的时 您可以看到通常会被遮挡的对象片段 因为每个对象都变得单独透明 解释 考虑以下代码 context fillStyle yell
  • Moment Js 获取两个日期之间的小时差

    我可以使用 MomentJs 获取两个日期之间的差异 如下所示 moment end diff startTime format m m s s 但是 我还想在适用时显示小时 仅当已过去 gt 60 分钟时 但是 当我尝试使用以下命令检索持
  • 用于分析 OCaml 代码的工具 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 除了在编译时使用 p 选项然后使用 gprof 之外 是否有人知道用于分析 OCaml 代码的程序 我
  • R 数据表 setkey - 错误某些列不在 data.table 中

    我想使用 data tablesetkey具有预定义列表id and categories 但收到错误消息 gt setkey tr id cat dt id categories Error in setkeyv x cols verbo
  • 有没有办法让 BaseX 提供 HTML 文档服务?

    有没有办法让 BaseX 的 HTTP 服务器提供 HTML 文档 该文档可以作为原始资源存储在数据库中 也可以存储在文件系统中 具有 text html 内容类型 以便可以在浏览器中显示 该文档是一个向 BaseX 发出 XHR 请求的网
  • 如何在 R 中将因子转换为日期时间?

    这个问题对你们中的一些人来说可能很简单 但请耐心等待 因为我是 R 的初学者 我有一个数据框 其中有一个因子列 称为时间 其中包含日期时间数据 如下所示 time 01 01 2011 00 10 02 01 2011 03 00 03 0
  • 在C中交换指针[重复]

    这个问题在这里已经有答案了 include
  • 在 Ruby 中使用或运算符简化“任意”检查

    如何简化以下检查 if node base database adapter empty node base database host empty node base database database empty node base d
  • 使用 Git 功能分支工作流程,什么时候更新 master 分支?

    我对 git 和 Jenkins 相当陌生 我们想要使用 Jenkins 并遵循功能分支工作流程概念 https www atlassian com git tutorials comparing workflows feature bra
  • RFC 2388 多部分 POST 的服务器实现与 RFC 2047 冲突?

    我正在尝试在 HTTP 服务器上实现 RFC 2388 以支持多部分 POST 我正在专门查看内容处置的 名称 参数的规范 RFC 2388 第 3 节规定 最初采用非 ASCII 字符集的字段名称可能会被编码 使用标准方法在 name 参