gpt4 book ai didi

http - 分号作为 URL 查询分隔符

转载 作者:可可西里 更新时间:2023-11-01 15:03:55 34 4
gpt4 key购买 nike

虽然强烈建议(W3C source,通过 Wikipedia)让 Web 服务器支持分号作为 URL 查询项的分隔符(除了&符号之外),但它似乎并没有被普遍遵循。

例如比较

http://www.google.com/search?q=nemo&oe=utf-8

http://www.google.com/search?q=nemo;oe=utf-8

结果。 (在后一种情况下,分号是,或在撰写本文时,被视为普通字符串字符,就好像 url 是:http://www.google.com/search?q=nemo%3Boe=utf-8)

虽然我尝试的第一个 URL 解析库表现良好:

>>> from urlparse import urlparse, query_qs
>>> url = 'http://www.google.com/search?q=nemo;oe=utf-8'
>>> parse_qs(urlparse(url).query)
{'q': ['nemo'], 'oe': ['utf-8']}

接受分号作为分隔符的现状如何,潜在的问题或一些有趣的注意事项是什么? (从服务端和客户端的角度来看)

最佳答案

W3C Recommendation from 1999已经过时了。目前状态,根据2014 W3C Recommendation , 是分号现在作为参数分隔符非法了吗:

To decode application/x-www-form-urlencoded payloads, the following algorithm should be used. [...] The output of this algorithm is a sorted list of name-value pairs. [...]

  1. Let strings be the result of strictly splitting the string payload on U+0026 AMPERSAND characters (&).

换句话说,?foo=bar;baz 表示参数foo 的值为bar;baz;而 ?foo=bar;baz=sna 应该导致 foo 成为 bar;baz=sna (尽管从第二个 开始在技术上是非法的= 应转义为 %3D)。

关于http - 分号作为 URL 查询分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3481664/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com