【问题标题】:Different query/parameter separators in URIsURI 中的不同查询/参数分隔符
【发布时间】:2013-12-11 21:57:26
【问题描述】:

我想知道 (SIP) URI 中不同的参数分隔符表示什么?

有些用;隔开,比如:<sip:user@domain.com;foo=bar;x=y>

其他用?&分隔,如:<sip:user@domain.com?foo=bar&x=y>

【问题讨论】:

    标签: uri sip rfc


    【解决方案1】:

    SIP 分隔符规则来自 RFC 2396,已被 RFC 3986 弃用。但是在19.1.1 部分定义了一些使用规范。

    总结一下,分号“;”用于分隔URI参数,问号“?”表示query component 的(在19.1.1 部分中称为“标题字段”)的起点,而与号“&”用于分隔查询字符串(“标题字段”)内的参数对。

    还值得查看维基百科条目:URI scheme

    希望对你有帮助

    【讨论】:

    • 嗯,我认为这是我理解的最接近的。这很令人困惑,因为我看到 SIP RFC 使用相同的参数与我们没有查询组件 - 并导致我认为它们应该以相同的方式解释。
    • @JohnFear 对不起,我不明白你的意思。据我回忆,RFC3261 仅在查询组件(描述为标题字段)中使用“&”和“;”分隔 URI 参数。我检查了 RFC3261 并编辑了答案。您可以看到,最初,它们具有不同的含义。
    • 我最近一直在查看 rfc4244 并查看第 4.5 章中的协议示例,我发现查询组件带有“;”分隔符。例如“?原因=SIP;原因=603;”。原因是单独的 URI 参数还是原因查询参数的一部分?
    • 我想我明白他们现在在 RFC 中做了什么。查看第 4.2 章中的协议示例,原因参数的值是 URI 编码的 (Reason=SIP%3Bcause%3D302) - 这只是在第 4.5 章中没有说明。 @jcm:感谢您的帮助..
    • 嗯,实际上,这意味着:包含标头 Reason 和代码 SIP 并导致参数 603。例如,如果您想包含两个标头字段(原因和呼叫信息),它看起来喜欢:?Reason=SIP;cuase=603&Call-Info=<http://www.foo.com>
    猜你喜欢
    • 2022-09-23
    • 1970-01-01
    • 1970-01-01
    • 2018-08-13
    • 1970-01-01
    • 1970-01-01
    • 2016-10-01
    • 2017-05-17
    相关资源
    最近更新 更多