基本 encoding/decoding 网络字符
Basic encoding/decoding of characters for the web
我觉得这是我绝对应该知道的事情,但我不完全确定一个字符在什么时候被浏览器解码的细节(或者即使我正在考虑它正确的方式)。
在检查我添加了一些内容(例如通过表单)的站点的 DOM 时,我可以看到我的 <
(在我评论的内容中)显示为字符串。即使 angular 括号是平衡的(例如 <something>
),它也显示为字符串而不是 DOM 中的元素。我很欣赏这对于防御诸如 XSS 之类的注入攻击至关重要,因此(在服务器上),内容被写为字符串文字而不是元素 - 但浏览器如何识别并以不同方式呈现它?什么时候解码?
如果服务器确实以 >
或 <
响应,为什么我在开发工具中看不到它?
我的困惑来自于这样一个事实,即在检查时,我的 <something>
内容和 <something>
元素(如果有的话)之间没有区别。
So, I'd expect to see (when inspecting the DOM) <content>
, but it seems not.
这仅仅是因为您的浏览器的 DOM 检查器在表示上有点松散。毕竟,您正在检查 DOM,一个复杂的面向对象的内部存储器结构,但您的浏览器却在 [=21= 中向您显示它]-like 演示文稿。由于疏忽或有意识地决定使此演示文稿更具可读性,并非所有在有效 HTML 中应为 HTML 实体的内容都显示为 HTML 实体。
如果您检查页面的实际源代码,您会看到 <content>
。
我觉得这是我绝对应该知道的事情,但我不完全确定一个字符在什么时候被浏览器解码的细节(或者即使我正在考虑它正确的方式)。
在检查我添加了一些内容(例如通过表单)的站点的 DOM 时,我可以看到我的 <
(在我评论的内容中)显示为字符串。即使 angular 括号是平衡的(例如 <something>
),它也显示为字符串而不是 DOM 中的元素。我很欣赏这对于防御诸如 XSS 之类的注入攻击至关重要,因此(在服务器上),内容被写为字符串文字而不是元素 - 但浏览器如何识别并以不同方式呈现它?什么时候解码?
如果服务器确实以 >
或 <
响应,为什么我在开发工具中看不到它?
我的困惑来自于这样一个事实,即在检查时,我的 <something>
内容和 <something>
元素(如果有的话)之间没有区别。
So, I'd expect to see (when inspecting the DOM)
<content>
, but it seems not.
这仅仅是因为您的浏览器的 DOM 检查器在表示上有点松散。毕竟,您正在检查 DOM,一个复杂的面向对象的内部存储器结构,但您的浏览器却在 [=21= 中向您显示它]-like 演示文稿。由于疏忽或有意识地决定使此演示文稿更具可读性,并非所有在有效 HTML 中应为 HTML 实体的内容都显示为 HTML 实体。
如果您检查页面的实际源代码,您会看到 <content>
。