当两者同样显示时,浏览器如何区分转义字符串和实际HTML?

时间:2012-08-27 11:51:11

标签: html xss

如果我将<a href="www.stackoverflow.com">放在body标记内,如果我将以下字符串放在body标记“&lt;a href=&quot;www.stackoverflow.com&quot;&gt;”中,浏览器如何知道第一个是呈现为实际链接,后者是简单文本?

2 个答案:

答案 0 :(得分:2)

小于字符“&lt;”被定义为标签起始字符。符号&lt;完全不同;它只是将小于字符表示为数据字符,而不是解释为标记。所以答案真的是“按照定义。”

顺便说一句,href="www.stackoverflow.com"包含相对于当前基址解析的相对地址。要引用StackOverflow主页,您需要编写href="http://www.stackoverflow.com"

答案 1 :(得分:1)

如果我们在html页面中使用保留字符/ HTML标记,它们会被borwsers呈现为标记。有时我们需要使用这些charcat作为标记而不是标记然后我们必须使用一些逃脱序列来实现它们。

您可以从this链接中了解浏览器的工作原理

您可以从here找到一些转义序列 在我们的情况下,<a href="www.stackoverflow.com"><中的>是html保留的字符,当它在页面中使用时,它呈现为html标记
但是如果你想使用或者在页面中显示<>,您必须使用相应的转义序列。这就是浏览器如何将&lt;替换为<并显示在页面