作者:hqgj15087878726 | 来源:互联网 | 2022-10-12 12:15
我有一个带有以下HTML代码的文件:
comment ?>
Curl返回正常响应:
$ curl file:///path/to/the/file.html
comment ?>
但是,当我使用Firefox 69或Chrome 77解析该响应时,没有显示任何内容,因为HTML代码如下:
对我来说看起来很奇怪。为什么会发生?
谢谢。
1> Kaiido..:
这是HTML标记化规则的一部分。
该<
字符做浏览器中输入标签打开状态。
12.2.5.6标签打开状态
消耗下一个输入字符:
U + 0021感叹号(!)
切换到标记声明打开状态。
U + 002F SOLIDUS(/)
切换到结束标签打开状态。
ASCII字母
创建一个新的开始标记令牌,将其标记名称设置为空字符串。重新使用标签名称状态。
U + 003F问号(?)
这是一个意外的问题标记而不是标记名称解析错误。创建一个注释令牌,其数据为空字符串。
在虚假评论状态下恢复。
...
因此,您的?
字符被视为一个已知错误,然后解析器切换到伪注释状态,这会将所有内容>
放入注释标记中的下一个字符。