[翻译]指定页面使用的字符集

原文地址:Specify a character set

概况:


在HTML文档的响应头中指定一个字符集可以让浏览器立即开始解析HTML和执行脚本。

细节:

HTML文档在网络中是以伴随字符编码信息的字节序列形式传送的。字符编码信息可以指定在文档的HTTP请求头中,也可以在HTML里面的标记里面(meta标签)。浏览器使用编码信息将字节流转化成可渲染到屏幕上的字符。如果浏览器无法知道构建页面的字符,那么浏览器是无法正确渲染页面的。因此,浏览器在输入中查找字符编码信息时,会在执行任何脚本和绘制页面之前缓冲一定大小的字节。(导致在IE6、7、8中出现明显异常)

如果没有找到字符集,浏览器对于默认的编码方式和缓冲字节的大小是不一样的。然而,一旦浏览器缓冲完必须的字节数并开始渲染页面时,渲染页面中如果发现页面中的字符集和默认的不一致,浏览器就需要重新解析输入和重新绘制页面。有时候,如果字符集和默认字符的不一致影响了外部资源的url(注:如果url中包含把中文等非英文字符,不同的编码方式可能会导致url的不一致),浏览器还需要重新请求资源。

为了避免这些延迟,你需要在http响应头中指定你使用的字符集。注意:如果通过meta标签http-equiv来指定字符集,IE8的先行下载(lookahead
downloader)功能将被禁用。禁用IE8的先行下载功能回导致加载页面的时间大大增加。微软是这样写的:我们强烈建议Web开发人员在HTTP的Content-Type响应头中指定字符集,因为这样可以确保先行下载的性能优势得以实现。

建议


始终指定内容类型(content-type)

在浏览器开始检查字符集之前,必须确定正在处理的文档的的内容类型。如果内容类型没有在http头或者http的meta标签中指定,浏览器就会根据不同的算法来判断类型。这个过程可能会导致额外的延迟以及一个安全漏洞。处于性能和安全性的考虑,我们应该为所有资源指定一个内容类型(不仅是text/html,也就是html文档)。

一定要指定正确的字符编码

不论是在http头还是在文档meta标签中指定字符集,字符集应该和文档中真正的字符编码相匹配。如果http响应头和meta标签中都指定了字符集,我们必须保证二者相互匹配。如果浏览器检测到一个不正确的或不匹配的编码方式,它会错误地渲染页面和/或产生额外的延迟,同时还会重绘页面。有关有效字符集的详细信息,请参见HTML 4.01规范中的第5.2节,字符编码

其他资源

有关浏览器对于存在/不存在的内容类型和字符集规范的行为的详细信息,请参阅:

后记:


在页面中指定字符集、x-ua-compatible、<base>,这三者是具有一定的顺序的。对于字符集,应该尽量在head的最前面,后面紧跟x-ua-compatible,然后是base:


<doctype>
<html>
<head>
<meta http-equiv content-type charset>
<meta http-equiv x-ua-compatible>
<base>
<title, favicon, comments, script blocks, etc>

参考文章:


Best Practice: Get your HEAD in order


谈谈关于IE8的一些bug,主要是base
href

时间: 2024-08-08 01:00:57

[翻译]指定页面使用的字符集的相关文章

nginx 访问默认index.html首页跳转指定页面

nginx 访问默认index.html首页跳转指定页面 在server 段加入: rewrite ^/index.html(.*)$ /index.php permanent;

在PHP中如何实现在做了么个操作后返回到指定页面

我们经常会碰到类似用户在没有登录的情况下进行提问.评论,需要用户登录后返回刚才浏览的网页,这种功能用cookie保存当前url地址来实现.我用的是jquery,读者需要懂点jquery中的ajax请求.这个场景的cookie名我用'__forward__',读者可以用自己需要的标识符. 1. 不下载cookie.js.用post请求将当前网页的ulr地址传到后台,让后台用cookie保存url地址:在完成类似登录的页面的功能后,从cookie中取出来,用于页面跳转. 1.1  html页面 //

js指定时间之后跳转到指定页面代码实例

js指定时间之后跳转到指定页面代码实例:在某些场景下,需要网页在指定的时间后,网页能够自动跳转到指定页面,比如在无法找到指定网页的情况下,就会显示之前设置好的404页面,并且跳转到指定的页面,下面就是一段代码实现了此效果.代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="htt

JavaScript跳转到指定页面并且到指定的tab切换窗口

案例的解析就是点击A页面的第一个的切换窗口的按钮跳转到B页面,再点击B页面的按钮跳转到A页面的第二个窗口,这个实现的效果有三种方法,下面的图片案例: A页面的第一个切换窗口 B页面的跳转按钮 A页面的第二个切换窗口 第一方法用函数function: 演示效果:JavaScript跳转到指定页面并且到指定的tab切换窗口 A页面按钮 <a href="b.html?id=1980&order_type=p_order">aaaaa</a> B页面按钮代码:

WordPress用户登录后重定向到指定页面

这篇文章将向您展示WordPress用户登录后如何重定向到指定页面或者文章的技巧. 一.重定向到网站管理面板. 将以下代码添加到您的当前主题的 functions.php 文件中: function soi_login_redirect($redirect_to, $request, $user) { return (is_array($user->roles) && in_array('administrator', $user->roles)) ? admin_url() 

登陆判读,并跳转到指定页面(window.location.href=&#39;http://localhost/index.html&#39;)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 function confirm(){   var tel=$tel.val();//获取页面中登录名和密码   var pwd=$pwd.val();   if(tel==""|| pwd==""){//判断两个均不为空(其他判断规则在其输入时已经判断)     alert(&qu

对整站的a链接进行监控,对匹配规则进行指定页面的跳转

项目中有个需求,就是将非本站的链接跳转到过渡页(提示即将离开本站的那种页面).这个时候想起了腾讯邮箱,不安全链接会有新的页面提示,如下图: 本以为ASP.NET中有全局的方法获取到点击或者跳转的链接,结果也没找到.Request和Response都取不到的,HttpModule,HttpHandle,Global中也一样,毕竟跳转之后是到别人的网站上去了.不晓得IIS上能否监控的到.最后只能在a标签上加Onclick了.由于a标签的onclick要比href先执行,所以把a标签统一加上oncli

利用Chrome插件向指定页面植入js,劫持 XSS

资源来自:http://www.2cto.com/Article/201307/225986.html 首页 > 安全 > 网站安全 > 正文 利用Chrome插件向指定页面植入js,劫持 XSS,一些猥琐的想法与实践 2013-07-08      0个评论       收藏    我要投稿 0x00 Chrome插件--------------------------这个想法是昨天看到@紫梦芊 的帖子想起来的.想法如下:Chrome插件是可以通过manifest.json的控制,向指

iOS 远程推送 根据后台推送内容的不同跳转指定页面

转发自:http://www.jianshu.com/p/4531bd6e3a01 iOS 远程推送,根据后台推送内容的不同, 跳转指定页面 我目前的需求是总体分为两类: 1:私信.关注.点赞一类,只需跳转到对应的tabbar 中的某一项 2:每日精品文章项目推送,分两个子类 (1)如果当前已经打开 文章项目页面,则直接刷新,不推出新页面 (2)如果当前未打开此页面,则push出新的文章项目页面 iOS 推送情况分为 应用未启动的 情况: 打开应用 ,推送信息 会通过 - (BOOL)appli