webkit 常见问题汇总

前段时间有人问我一个简单的问题,html如何创建解析的? 我讲了一大堆,什么通过DocumentLoader, CachedResourceLoader, CacheResource, ResourceLoaderScheduler, ResourceHandle这些类一步一步的完成cache查找然后请求下载等等。 

滔滔不绝,直到我调试xml解析时,我才发现好多问题都与理解的不一致,在分析源码的时候只了解了大体步骤。细节你真的清楚吗?

一、HTTP header 网页头请求

列举几个重要的

Requests部分


Accept


指定客户端能够接收的内容类型


Accept: text/plain, text/html


Accept-Charset


浏览器可以接受的字符编码集。


Accept-Charset: iso-8859-5


Accept-Encoding


指定浏览器可以支持的web服务器返回内容压缩编码类型。


Accept-Encoding: compress, gzip


Accept-Language


浏览器可接受的语言


Accept-Language: en,zh


Connection


表示是否需要持久连接。(HTTP 1.1默认进行持久连接)


Connection: close


Cookie


HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器。


Cookie: $Version=1; Skin=new;


Content-Length


请求的内容长度


Content-Length: 537


Content-Type


请求的与实体对应的MIME信息


Content-Type: application/x-www-form-urlencoded


Date


请求发送的日期和时间


Date: Tue, 15 Mar 2015 15:12:31 GMT


User-Agent


User-Agent的内容包含发出请求的用户信息


User-Agent: Mozilla/5.0 (Linux; X11)

Responses 部分


Accept-Ranges


表明服务器是否支持指定范围请求及哪种类型的分段请求


Accept-Ranges: bytes


Age


从原始服务器到代理缓存形成的估算时间(以秒计,非负)


Age: 12


Allow


对某网络资源的有效的请求行为,不允许则返回405


Allow: GET, HEAD


Cache-Control


告诉所有的缓存机制是否可以缓存及哪种类型


Cache-Control: no-cache


Content-Encoding


web服务器支持的返回内容压缩编码类型。


Content-Encoding: gzip


Content-Language


响应体的语言


Content-Language: en,zh


Content-Length


响应体的长度


Content-Length: 348


Content-Location


请求资源可替代的备用的另一地址


Content-Location: /index.htm


Content-MD5


返回资源的MD5校验值


Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ==


Content-Range


在整个返回体中本部分的字节位置


Content-Range: bytes 21010-47021/47022


Content-Type


返回内容的MIME类型


Content-Type: text/html; charset=utf-8


Date


原始服务器消息发出的时间


Date: Tue, 15 Mar 2015 15:12:31 GMT


Location


用来重定向接收方到非请求URL的位置来完成请求或标识新的资源


Location:  http://www.oschina.net/u/2335812/admin

User-Agent这个字段用户信息,表明你浏览器支持标准,服务器会解析该字段返回不同请求(一个适配多终端的网页会做兼容处理)这点在iptv中要特别注意,好多时候有些前端网页就是要加些特殊字段才能正常操作甚是郁闷。HTTP 请求头里面能传送较多的信息

二、webkit 如何区分创建html,xml等解析

它是在HTTP请求返回的200 OK中的Content-Type字段决定的,Content-Type: text/html; charset=utf-8,说明了text

类型html, 字符编码utf-8。

在DOMImplementation.cpp 中createDocument()创建时判断type是否为html,xml,video等这个type就是请求返回OK字段中的Content-Type解析出来的。

三、请求重定向

重定向是在HTTP请求返回的302 Found的Location字段返回的url决定跳转的新地址

四、设置load缓存大小

在loader/cache/MemoryCache.cpp 文件中setCapacities() 函数可以设置缓存大小,找到一个资源加载速度与内存使用的平衡点

这样的细节还有很多,大家也可以诉说一下您遇到的问题

如果大家对本文章有疑问,可以直接在公众号留言,小编第一时间联系原创作者帮你耐心解答。

技术人员都有自己的情怀,深陷其中而不被理解,欢迎关注个人微信公众平台:程序员互动联盟(coder_online),一个开发人员的家,来诉说自己的故事。

时间: 2024-12-20 20:04:26

webkit 常见问题汇总的相关文章

webkit常见问题汇总

前段时间有人问我一个简单的问题,html如何创建解析的? 我讲了一大堆,什么通过DocumentLoader, CachedResourceLoader, CacheResource, ResourceLoaderScheduler, ResourceHandle这些类一步一步的完成cache查找然后请求下载等等. 滔滔不绝,直到我调试xml解析时,我才发现好多问题都与理解的不一致,在分析源码的时候只了解了大体步骤.细节你真的清楚吗? 一.HTTP header 网页头请求 列举几个重要的 Re

[转]H5项目常见问题汇总及解决方案

html { line-height: 1.6 } body { font-family: -apple-system-font, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif; background-color: #f3f3f3; line-height: inherit } body.rich_media

H5 常见问题汇总及解决方案

原文链接:http://mp.weixin.qq.com/s/JVUpsz9QHsNV0_7U-3HCMg H5 项目常见问题汇总及解决方案 -- 由钟平勇分享 转自 https://github.com/FrontEndZQ/HTML5-FAQ H5项目常见问题及注意事项 Meta基础知识: H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 //一.HTML页面结构 <meta name="viewport" content="width=device-width,

Google AdMob 常见问题汇总

AdMob 常见问题汇总 五 09 **** 客服相关 **** 1. 请问 AdMob 有没有客服可以提供如帐号被封.付款信息.申诉渠道等的咨询? 有的:有关 AdMob 的问题,可以访问我们的帮助中心: http://support.google.com/admob/?hl=zh-Hans&hlrm=en. 如果没有找到相应解答,也可以通过 @AdMob开发者官方微博 与我们进行互动: http://www.weibo.com/googleAdMob. **** 使用 AdMob *****

destoon入门实例与常见问题汇总

destoon入门实例与常见问题 收集了一些destoon入门实例与常见问题,大家做个参考.转自:http://blog.csdn.net/vip_linux/article/details/37833963 链接如下: destoon忘记后台密码怎么办?destoon找回管理员密码 忘记destoon管理员后台账号密码怎么办?解决方法 destoon如何实现调用自增数字从1开始 destoon底部添加你是第几位访问者 destoon调用热门关键字的例子 destoon首页怎么调用求购供应信息的

IDE常见问题汇总

1.Oracle10gForVistaX64下载地址:http://download.oracle.com/otn/nt/oracle10g/10204/10204_vista_w2k8_x64_production_db.zip 2.Oracle 10g x64 for Vista 在Win7x64下安装需要修改三个文件:(1).\10204_vista_w2k8_x64_production_db\database\stage\prereq\db\refhost.xml (2).\10204

CentOS安装Oracle数据库详细介绍及常见问题汇总

一.安装前准备 1.软件硬件要求 操作系统:CentOS 6.4(32bit)Oracle数据库版本:Oracle 10g(10201_database_linux32.zip)最小内存:1G(检查命令:#grep MemTotal /proc/meminfo)最小Swap:2G(检查命令:#grep SwapTotal /proc/meminfo) 2.安装依赖包 # rpm -q binutils compat-libstdc++-33 compat-libstdc++-33.i686 el

mysql几个常见问题汇总

mysql几个常见问题汇总 一. mysql下的清屏命令 \! clear:Ctrl+shift+L:Ctrl+L Linux下的清屏命令 Clear ; Ctrl+L; Shift+ctrl+L 二. 查看mysql版本的四种方法 1:在终端下:mysql -V. 以下是代码片段: [[email protected] ~]$ mysql -V mysql Ver 14.7 Distrib 4.1.10a, for redhat-linux-gnu (i686) 2:在mysql中:mysql

SVN集中式版本控制器的安装、使用与常见问题汇总

SVN是Subversion的简称,是一个开放源代码的版本控制系统,它采用了分支管理系统,集中式版本控制器 官方网站:https://www.visualsvn.com/ 下载右边的服务器端,左边的客户端收费,我们使用TortoiseSVN替代他即可 TortoiseSVN:TortoiseSVN 是 Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录.文件保存在中央版本库,除了能记住文件和目录的每次修改以外,版本库非常像普通的文件服务器.你可以将文件恢复到过去