English 中文(简体)
半殖民地为URL query dior
原标题:Semicolon as URL query separator

强烈建议(W3C Source/a>,通过,支持作为URL que项目(除了安装者外)分立半殖民地的网络服务器,一般似乎并不遵循。

例如,比较

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

;oe=utf-8

结果。 (在后一种情况下,半殖民地是,或正在撰写本案文时被作为普通扼杀特性对待,如:%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建议,目前的状况是,半殖民地现在是illegal,作为参数分离者:

为使编码应用/x-www-form-urlencoded有效载荷,应当使用以下算法。 [......] 这一算法的输出是一份名称价值表。 [......]

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

换言之,?foo=bar;baz 系指参数<编码>foo<>/code>将具有价值<条码>;baz<>/代码>;而?foo=bar;baz=sna应当形成<条码>>;baz=sna。 (尽管自第二个<代码>=以来技术上属于非法,但应逃至%3D。)

问题回答

只要您的吉大港定居地服务机和你的服务器方应用,接受半殖民者为分离者,你就应当好。 我看不到任何缺点。 如你所说,。 页: 1

我们建议,吉大港山区应用方案服务器实施者,特别是农研中心执行者支持使用“;”代替“和”;”以这种方式挽救作者“和”的麻烦。

我同意Bob Aman。 W3C的光谱是为了便于使用与URLs的封顶超级链接,这种链接类似于GET的要求(例如,http://www.host.com/?x=1&y=2)。 在这方面,邮局与特性实体参考资料系统发生冲突,所有这些都始于安乐器(例如<代码>&)。 因此,W3C建议,网络服务器应允许半殖民地作为野外分离器,而不是用作安放器,以方便书写这些URLs。 但是,这一解决办法要求作者们记住,必须用某种东西来取代安放器;&

更糟糕的是,在所有网络服务器允许半殖民地作为外地划界员之前,URL的作者只能对某些东道国使用这一捷径,而且必须使用<代码>和amp;amp;。 如果某个东道国停止允许半殖民地划界者,他们也必须在晚些时候修改其法典。 这当然比仅仅使用<条码>和印章;更为困难,因为每个服务器都将永远工作。 这反过来又取消了对网络服务器的任何奖励,使半殖民地成为外地分离者。 为什么双方都在将安放器改为<条码>和复制; 而不是<代码>;?

简言之,“超声”是一种大的信号(由于其宽度),使用半殖民地帮助简化了这个LOT。 我估计,如果把安放器用作分离器,使整个过程复杂化三倍,而把半殖民地用于分离者!

I m a .NET programmer and to my knowledge, .NET do not autly granted ; Divors, so i written my own parsing and Hand methods,因为i 看到使用半殖民地的巨大价值,而不是使用安眠器作为分离器已经存在问题的系统。 不幸的是,非常值得称道的人(如www.Bob Aman, 另一处答案)看不出为什么半殖民地使用比使用安放器要好得多,而且非常简单。 因此,我现在要谈谈几个要点,或许可以说服不承认使用半殖民地价值的其他可敬发展者:

在超文本网页上使用像?a=1&b=2这样的询问是不适当的(不首先采用超文本编码),但大多数时间都是不适当的。 然而,这只是因为大多数浏览器是宽容的,而宽容可能会导致难以确定的ug,例如,关键值的乳制品的价值在无适当编码的情况下用超文本的网页(直接作为超文本来源的?a=1&b=2)。 A QueryString ? 谁是“me+&”;+you也存在问题。

我国人民可以有biases<>,并且可以每天不同意我们的偏见,因此认识到我们的偏见非常重要。 例如,我同意,仅仅考虑与......分离;看上去更清洁。 我同意,我的更清洁的意见纯属偏见。 另一名开发商可能具有同样相反和同样有效的偏见。 因此,我对这一点的偏见不比相反的偏见更正确。

但是,鉴于半殖民地的无偏见支持,使每个人的生活从长远来看更加容易,在考虑整个情况时,不能正确地质疑。 简言之,使用半殖民地确实使生活更加简单,只能读到everyone,但有一个例外:一小障碍是新东西。 所有这一切都是如此。 变化总是比较困难。 但是,与继续使用和安居的继续困难相比,很难作出改变。

采用这种方式;作为“彩票”分离器,MUCH更为简单。 永久居民和分离者比使用半殖民者高出两倍以上。 (我认为) 大部分执行工作没有适当编码,因此大多数执行工作的复杂程度是两倍。 但是,随后跟踪和确定 b导致生产力损失。 这里,我指出,为了适当打造假装所需的2个单独的编码步骤,即:

  • Step 1: URL encode both the keys and values of the querystring.
  • Step 2: Concatenate the keys and values like a=1&b=2 after they are URL encoded from step 1.
  • Step 3: Then HTML encode the whole QueryString in the HTML source of the page.

因此,特别编码必须两次用于适当(免费)的URL编码,而不仅仅是编码是两种不同的编码。 第一个是URL编码,第二个是超文本编码(超文本源代码)。 如果其中的任何内容不正确,那么我就能够找到你。 但是,第3步在XML中有所不同。 对XML而言,当时的XML特性实体需要编码(几乎相同)。 我的意思是,最后的编码取决于URL的情况,无论是在超文本网页上还是在XML文件中。

如今,随着较简单的半殖民者,这一进程是人们期望的:

  • 1: URL encode the keys and values,
  • 2: concatenate the values together. (With no encoding for step 3.)

我认为,大多数网络开发商由于浏览器如此宽松而走了第3步。 但是,如果这些 b子或使用者没有在场,或撰写假象报告等,就会发现这些 b子或使用者无法做事,从而造成ug和更多的并发症。

实际使用的另一个复杂因素是,在C#和VB两种来源代码中写出XML文件标记。 NET。 既然并进了;必须加以编码,这实际上会影响到我的生产力。 这一额外步骤3也使得更难以阅读源代码。 因此,这种较易读的赤字不仅适用于超文本和XML,也适用于C#和VB等其他应用。 NET代码,因为它们的文件使用XML文件。 因此,第3步也使复杂性扩散到其他应用中。

因此,简言之,使用“......”一词;作为分离者,很简单,因为在使用“半殖民地”时,“正确”过程是谁通常期望这一过程:只需要采取一个步骤来编码。

也许这 t太混淆了。 但是,所有混淆或困难都是因为使用一种隔.的超文本编码。 因此,是pri。 半殖民地缓解了所有这些复杂因素。

(我将指出,我的3个步骤与以上2个步骤过程是usually。) 它将采取多少步骤来申请 多数>。 然而,对于完全健全的法典,不论使用分离器,都需要所有3个步骤。 但是,根据我的经验,多数>执行都是微弱的。 因此,如果每个人都把半殖民地当作违约,而不是安乐施会,那么利用半殖民地作为隔离区,就会使更多的网站和环形人的生活更加容易。





相关问题
Parse players currently in lobby

I m attempting to write a bash script to parse out the following log file and give me a list of CURRENT players in the room (so ignoring players that left, but including players that may have rejoined)...

How to get instance from string in C#?

Is it possible to get the property of a class from string and then set a value? Example: string s = "label1.text"; string value = "new value"; label1.text = value; <--and some code that makes ...

XML DOM parsing br tag

I need to parse a xml string to obtain the xml DOM, the problem I m facing is with the self closing html tag like <br /> giving me the error of Tag mismatch expected </br>. I m aware this ...

Ruby parser in Java

The project I m doing is written in Java and parsers source code files. (Java src up to now). Now I d like to enable parsing Ruby code as well. Therefore I am looking for a parser in Java that parses ...

Locating specific string and capturing data following it

I built a site a long time ago and now I want to place the data into a database without copying and pasting the 400+ pages that it has grown to so that I can make the site database driven. My site ...