XHTML strict 解决了什么问题?

2024-02-23

我真的不明白 XHTML strict 的魅力。内联 JavaScript 通常需要大量的转义以使其与 XHTML 兼容,并与 MSIE 5 和 6 半向后兼容。然后就存在对用户输入的强迫症不够严重的问题,以确保您不会错过任何非法字符。这看起来只是付出了更多的努力,而不是其价值。没关系,我一起工作的几乎每个开发人员都忘记确保从服务器返回的内容类型被重置为 XHTML 页面,从 text/html 到 application/xhtml+xml。

希望我知道博主的名字,但其他人指出,大多数所谓的 XHTML 兼容网站和开源包实际上并不是因为最后一个问题,忘记了正确设置内容类型标头。

我希望了解为什么 XHTML 有用,或者构建足够多的论据以防止它在我影响的未来项目中使用。


XHTML1 与 HTML4 以及严格与过渡是完全正交的问题。

XML 可能不会给当今的浏览器带来任何巨大的优势,但在服务器端,使用 XML 处理文档比尝试解析旧式 SGML(除了不是真正的 HTML4 之外)的混乱要容易一个数量级。

将自己限制在 [X]HTML Strict 本身并没有实现任何目标,除了它阻止使用您无论如何都不应该使用的旧的、难以维护的技术之外。

内联 JavaScript 通常需要大量转义以使其与 XHTML 兼容

只要不使用字符

无论如何,将脚本保留在外部更容易管理;你不想做任何重要的内联事情。

然后存在的问题是对用户输入的强迫症不够大,以确保您不会错过任何非法字符。

带外字符在 HTML4 Transitional 中与在 XHTML1 Strict 中一样无效。

如果您接受用户提交的 HTML,并且没有足够仔细地检查/转义它以防止格式良好的错误,那么您将遇到比仅仅遵守文档类型更大的问题。您将允许注入攻击,并使您的网站容易受到跨站点脚本安全漏洞的攻击。

忘记确保将 XHTML 页面从服务器返回的内容类型从 text/html 重置为 application/html+xml。

这不是“忘记”,而是有意为之:今天提供 application/xhtml+xml 服务并没有多大意义。为了解释 IE,你必须嗅探 UA,然后确保你理解两种解析模式中出现的 CSS 和 JavaScript 差异......你可以这样做来证明你的技术实力,但它并不能真正给你带来任何好处。

将 XHTML 作为旧版 HTML 提供可能并不理想,但它可以让您保留更简单、更易于处理的 XML 语法(以及与 SVG 等其他 XML 语言的潜在互操作性),同时仍然对浏览器友好。

人们抱怨格式正确的错误过于挑剔,但立即发现这些错误并修复它们,比默默地将它们留在那里,准备让未来的浏览器出错要好得多。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XHTML strict 解决了什么问题? 的相关文章

  • html 表格单元格的条件格式

    是否有现成的解决方案可以对 HTML 表格进行条件格式设置 通过条件格式 我更感兴趣的是根据该列或其他列 在同一个表中 的值 数字 将不同的颜色作为单元格背景 类似于我们在 Excel 条件格式 gt 色阶 gt 红黄绿中的内容 我想在通过
  • 如何动态突出显示网页上的字符串?

    我想创建带有 url 的页面 例如 http xyzcorp schedules 2015Aug24 Aug28 Jim Hawkins http xyzcorp schedules 2015Aug24 Aug28 Billy Bones
  • 同页锚链接到部分 id 在 IE8 中不起作用

    我有一个带有导航的单页 HTML5 网站 可以将用户引导至该部分 在除 IE8 之外的所有浏览器中都可以正常工作 IE8 不执行任何操作 我所拥有的虚拟版本 a href about About a a href work Work a a
  • IE 中的 HR 标签 - 删除边框

    在除 IE7 及更低版本之外的其他浏览器中 hr 在 hr 标签周围显示边框 但我不希望它出现 我已经尝试过这个解决方案 但它周围似乎仍然有边框 它看起来像这样 我该如何摆脱它 See http webdesign about com od
  • 淘汰赛绑定,每个都可进行自定义

    我这里有一个情况 用于淘汰每个带有定制的绑定 这是我的代码 div div table tbody tr td td td td tr tbody table div div
  • ToggleClass 动画 jQuery?

    我的网站上有一个部分 当用户单击时我希望它展开 我正在使用 jQuerytoggleClass为了这 expandable function e e preventDefault this closest article toggleCla
  • Django - 提交具有同一字段多个输入的表单

    预警 我对 Django 以及一般的 Web 开发 非常陌生 我使用 Django 托管一个基于 Web 的 UI 该 UI 将从简短的调查中获取用户输入 通过我用 Python 开发的一些分析来提供输入 然后在 UI 中呈现这些分析的可视
  • 如何让div与包含td的高度相匹配?

    我沿着桌子的一排布置了三个 面板 一个比另外两个高 我希望所有三个面板都与最高的一个的高度相匹配 我尝试将 div 的样式设置为 height 100 但是即使包含的 tds 增长 短面板仍然很短 我的 HTML 是由 JSF 生成的 因此
  • HTML 输入 - 名称与 ID [重复]

    这个问题在这里已经有答案了 使用 HTML 时
  • 从输入类型编号获取无效值

    我正在使用输入类型数字 当它无效时 我如何从中获取值 例如 使用类型编号并仅打印 e 这本身是无效的 我正在使用 React 但我认为这个问题非常普遍 onChange event console log event target valu
  • HTML5 仅拖放图像

    我想做的是 如果所有拖动的文件都是图像 则将其删除 但如果有其他文件扩展名 则不要删除它们 而仅删除图像 这是我的尝试 HTML div div JavaScript var dropzone document getElementById
  • 如何在 Lift 框架中添加新页面

    如何在 lift 中的 webapp 目录中添加一个可供用户访问的新页面 目前只能通过index html访问http localhost 8080 com http localhost 8080 or http localhost 808
  • 如何使用 HTML 5 实现类似 gmail 的文件上传/附件

    我记得一些支持 Ajax 之类的选项 无回发世界 文件上传 隐藏的 iframe 使用 flash 对象 尽管我仍然好奇为什么使用 SWF 以及它提供什么优势 然而 通过查看博客 HTML 5 似乎很有前途 我尝试了一些小示例 它确实有效
  • 位图内存不足错误

    我对这个错误有疑问 我从 URL 制作网站图标解析器 我这样做是这样的 public class GrabIconsFromWebPage public static String replaceUrl String url StringB
  • CSS 无法从带有 php“includes”的相对路径工作

    文件夹结构 index php includes header html css style css 我的主项目文件夹中有 2 个子文件夹 一个是名为 includes 的文件夹 另一个名为 css 我有我的 index php主文件夹中的
  • 使用 HTML5(数据列表)自动完成功能和“包含”方法,而不仅仅是“开头为”

    我找不到它 但我又不知道如何搜索它 我想用
  • 如何在画布上所有其他内容后面绘制图像? [复制]

    这个问题在这里已经有答案了 我有一块画布 我想用drawImage在画布上当前内容后面绘制图像 由于画布上已经有内容 我正在使用字面上的画布来创建包含图像的画布 因此我无法真正先绘制图像 所以我无法使用drawImage在我呈现其余内容之前
  • Service Worker 与 Shared Worker

    Service Worker 和 Shared Worker 有什么区别 我什么时候应该使用 Service Worker 而不是 Shared Worker 反之亦然 Service Worker 具有共享 Worker 之外的附加功能
  • Facebook 点赞按钮消失

    我的网站中的 Facebook Like 按钮出现问题 添加此代码 由 facebook 提供 按钮在创建时正确显示在任何页面中
  • 如何在数据列表 HTML PHP 中设置选择

    您好我想知道是否有一种方法可以在数据列表中设置选定的值 我想要这样的东西

随机推荐

  • 将 Oracle/关系表中的数据索引到弹性搜索中的更好方法是什么?

    将大数据从 Oracle DB 索引到弹性搜索集群有哪些选项 要求是将 3 亿条记录一次性索引到多个索引中 并且每天进行大约 100 万次更改的增量更新 我尝试过 Elasticsearch 的 JDBC 插件河流 支线 两者似乎都在内部运
  • 在 Identityserver4 .NET Core 中启用多个 AzureAd

    我正在尝试在一台身份服务器中启用多个 AzureAD 的登录功能 这是必要的 因为多个租户需要能够通过 1 个身份服务器登录到自己的 AzureAD 这些设置将动态发生 对于此示例 我对 AuthenticationBuilder 进行了扩
  • python中有没有相当于javascript三等号的运算符?

    我尝试这样做但失败了 File
  • 如何在 Sylius 主题上添加 CSS 文件?

    我在 app theme AcmeTheme 下有一个自定义主题 我有主题工作 我可以在视图下定义自己的模板或覆盖其他捆绑包的模板 问题是我不知道如何在我的主题中添加自定义 CSS 文件 太胖了 我试过 AcmeTheme public s
  • 让脚手架按特定顺序生成字段

    我正在尝试让 asp net core MVC 搭建 Razor 视图 其中字段的顺序与明显默认的字母顺序不同 我有一个简单的模型 public class Application EntityBase Display Name Naam
  • OpenGL Phong 光照:镜面高光错误

    我的 OpenGL 中的 Phong 光照着色器似乎有一个奇怪的问题 镜面高光出现在对象的错误一侧 手头的问题 正如您所看到的 镜面高光出现在立方体的另一侧 从灯光的角度来看 也出现在立方体垂直边缘的角上 它应该只出现在最靠近灯光的一侧 立
  • 如何创建目录的 zip 存档?

    如何在 Python 中创建目录结构的 zip 存档 最简单的方法是使用shutil make archive https docs python org 3 library shutil html shutil make archive
  • WebView和GridView进入ScrollView,View太大,无法放入绘图缓存

    我有布局内存问题 当我有一个大的网络视图时 它不会显示任何内容 并且 logcat 显示 视图太大 无法放入绘图缓存 布局是
  • Google App 脚本:Javascript 运行时意外退出

    我编写了一个应用程序脚本 它将与 bigQuery API 交互并获取 bigQuery 结果 API 被击中近 60 70 次 在此过程中 有时我会收到以下错误消息 JavaScript 运行时意外退出 有人可以帮我吗 如果您需要任何其他
  • 在现有笔记本服务器上打开 ipython 笔记本

    我正在寻找一种在现有笔记本服务器上打开 ipynb 文件的方法 我的主目录中有一个笔记本服务器 启动如下 home myname ipython notebook 我有一个笔记本文件 home myname work dir test ip
  • React-router - 将 props 传递给处理程序组件

    我的 React js 应用程序使用以下结构反应路由器 https github com ReactTraining react router var Dashboard require Dashboard var Comments req
  • UWP VisualStateManager PointerOver 不起作用

    我正在模仿 Groove Music 的行为 当鼠标悬停在专辑封面上时 在我的代码中是整个 DataTemplate 它会显示投影效果 但我的 VisualStateManager 似乎不起作用 有任何想法吗 我已经以编程方式实现了该功能
  • 绑定ListPicker.SelectedIndex问题

    我正在尝试对 Windows Phone 7 用户控件中的 ListPicker 的 SelectedIndex 属性进行两种方式绑定 当我设置 DataContext 时 它引发以下异常 SelectedIndex must always
  • 从 ARM 模板中的 Azure 密钥保管库获取最新版本的证书

    创建需要安装位于 Azure 密钥保管库内部的 SSL 证书的 ARM 模板 如果我用指纹指定证书 它工作正常 https contoso vault azure net secrets web01 test contoso com 968
  • 激活虚拟环境时 pyenv 不再正确设置路径

    我已经使用 pyenv 近两年了 在 X11 模式下运行 RHEL 8 3 Linux 内核 4 18 和 Gnome 3 32 2 的系统上没有出现任何问题 我主要使用 Fish shell 但偶尔也会使用 bash 到目前为止 两者都可
  • HTML 锚标记是否应该尊重禁用属性?

    如果我创建一个 HTML 锚标记并设置disabled属性为 true 我在不同的浏览器中得到不同的行为 惊喜 惊喜 我创建了一个fiddle http jsfiddle net dhoerster QWhsj 展示 在 IE9 中 该链接
  • 如何将日期时间设置为空

    使用 C 我有一根绳子dateTimeEnd 如果字符串格式正确 我希望生成一个DateTime并将其分配给 eventCustom DateTimeEnd 类型 public Nullable
  • 我使用 libav (ffmpeg) 使用时间戳/时基进行帧查找/读取有什么问题?

    所以我想抓取一个框架来自视频在特定时间 using libav用作缩略图 我正在使用的是以下代码 它编译并运行良好 就检索图片而言 但我很难将其实现检索正确的图片 我根本无法理解 libav 在每个视频中明显使用多个时基背后的所有清晰逻辑
  • 亚音速截屏视频发生了什么?

    文档中没有一个可用 我看到嵌入式 iframe 指向 silverlight services live com 但没有视频 FF显示空白 IE7显示HTTP 500错误 Silverlight 直播 MS 为支持此类事情而推出的服务 离线
  • XHTML strict 解决了什么问题?

    我真的不明白 XHTML strict 的魅力 内联 JavaScript 通常需要大量的转义以使其与 XHTML 兼容 并与 MSIE 5 和 6 半向后兼容 然后就存在对用户输入的强迫症不够严重的问题 以确保您不会错过任何非法字符 这看