`
yang_danny
  • 浏览: 5922 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

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),一个开发人员的家,来诉说自己的故事。

 

分享到:
评论

相关推荐

    QtWebkit开发的浏览器

    本篇文章将深入探讨基于QtWebkit开发的浏览器,包括其核心特性、实现原理以及如何集成历史记录、收藏夹和设置主页等常见功能。 **一、QtWebkit核心特性** 1. **渲染引擎**: QtWebkit使用WebKit作为其渲染引擎,这...

    CSS 针对谷歌浏览器(Chrome) safari的webkit核心浏览器CSS hack.txt )

    这段代码中,`-webkit-min-device-pixel-ratio:0`是一个仅在WebKit浏览器中有效的媒体特性,用于指定设备像素比,可以用来触发WebKit特定的样式规则。 2. **伪类前缀**: - 通过使用`-webkit-`前缀结合伪类来实现...

    谷歌和safari webkit独有css hack

    在实际开发中,使用这些WebKit特有的CSS Hack时需要注意,虽然它们能解决当前浏览器的兼容性问题,但可能会导致未来版本的浏览器或者非WebKit浏览器出现问题。因此,建议尽量遵循W3C标准,只在必要时使用Hack,并...

    C# webkit为内核的浏览器打开网页源码__(0521).rar

    总之,"C# webkit为内核的浏览器打开网页源码"项目是一个融合了C#编程、WebKit浏览器内核理解和自定义浏览器开发的实践案例,对于想深入了解这些领域的开发者来说,是一份宝贵的学习资源。通过研究和理解这些代码,...

    常见浏览器兼容性问题汇总

    【浏览器兼容性问题】是IT领域中一个长期存在的挑战,特别是在网页开发中。浏览器兼容性问题主要源于不同浏览器对Web标准的实现不一致,尤其是在早期Web发展的阶段,各大浏览器厂商如Internet Explorer、Firefox、...

    常见浏览器内核及其特点

    根据提供的文件信息,我们可以深入探讨几种常见的浏览器内核,包括Trident、Gecko、Presto、WebKit等,以及它们的特点。 ### Trident(IE内核) Trident,也被称为MSHTML或Internet Explorer引擎,是微软为...

    C# webkit为内核的浏览器打开网页源码

    在当前场景中,它们可能与C# Webkit浏览器无关,除非它们包含了用于演示或测试的网页数据。如果这些文件是网页源码的一部分,你可能需要将它们解压缩并读取其中的HTML内容,然后在你的C# Webkit浏览器应用中加载。 ...

    C# webkit为内核的浏览器打开网页源码.rar

    总结起来,"C# webkit为内核的浏览器打开网页源码"项目涉及了C#编程、WebKit浏览器引擎的使用、网页加载和源码获取的实现、用户界面设计、JavaScript交互以及性能和安全性考虑等多个方面的知识。通过这个项目,...

    C# webkit为内核的浏览器打开网页源码_0520.rar

    在IT领域,尤其是在软件开发中,使用特定的浏览器内核来构建自定义浏览器是一种常见的实践。本项目聚焦于使用C#编程语言结合WebKit内核来实现一个能够打开并解析网页源码的浏览器。WebKit是一个开源的渲染引擎,广泛...

    winform浏览器(webkit谷歌内核)+winform数据库连接测试,加密,生成注册表等

    综上所述,这个项目融合了WinForm应用开发、WebKit浏览器控件的集成、数据库连接与查询、数据加密安全措施以及注册表操作等多个重要IT技术点。通过这个项目,开发者可以学习到如何将现代Web浏览体验与传统的桌面应用...

    pda WINCE 5.0浏览器开发

    常见的浏览器引擎有 Trident(IE使用的)、Gecko(Firefox)、WebKit(Safari、Chrome)等。 3. **IE兼容性**:Windows CE 5.0通常预装了Internet Explorer,但可能需要自定义版本以适应特定设备或功能需求。开发时...

    常见浏览器的4大内核

    ### 常见浏览器的四大内核:技术解析与应用 #### 一、Trident(IE内核) Trident,亦称MSHTML,是微软研发的一款网页排版引擎,自1997年随IE4一同发布以来,历经多个版本的迭代与优化,成为微软旗下浏览器的核心...

    javaFx开发的炫酷浏览器

    其次,JavaFX支持事件处理和响应机制,使得我们可以为浏览器添加诸如点击链接、前进、后退、刷新、书签等常见的浏览器功能。例如,通过绑定事件监听器,我们可以监听用户的鼠标点击事件,根据点击的链接执行相应的...

    浏览器兼容性问题

    浏览器兼容性问题一直是Web开发中的一个棘手挑战。随着W3C推动标准的实施,Firefox、Chrome、Safari和Opera等浏览器的崛起,虽然在很大程度上促进了浏览器对标准的遵守,但也导致了不同浏览器间存在的差异,使得网页...

    LTFRAME一个WEBKIT的桌面程序开发方式

    标题“LTFRAME一个WEBKIT的桌面程序开发方式”揭示了一个基于Webkit的桌面应用程序开发框架——LTFRAME。Webkit是一个开源的网页渲染引擎,被广泛应用于各种浏览器和嵌入式设备,如Safari和Google Chrome。它能快速...

    常用浏览器介绍

    接着,WebKit是苹果公司在KHTML基础上开发的排版引擎,主要应用于Safari浏览器。WebKit的衍生产品还包括WebCore,后者被用于Safari、Konqueror、OmniWeb等。WebKit因其高效和开源特性,吸引了众多开发者参与,比如...

    LTFrame 0.2.1基于Webkit的桌面软件开发框架实例

    Webkit是一个开源的渲染引擎,广泛应用于各种浏览器,如Safari和Chrome,它提供了高效的网页内容解析和展示能力。 在LTFrame 0.2.1版本中,主要的改进包括: 1. **跨域操作**:在Web开发中,跨域限制通常是为了...

    C# webkit为内核的浏览器打开网页源码_《0528》.rar

    在C#中,开发基于WebKit的浏览器通常会利用.NET框架下的封装库,例如Awesomium、CEFSharp或WebKit.NET。这些库提供了与WebKit交互的接口,使得开发者能够在C#环境中调用WebKit的功能。本项目可能涵盖了以下关键知识...

    C# webkit为内核的浏览器打开网页源码.rar.rar

    在IT领域,尤其是在软件开发中,使用特定的浏览器内核来构建自定义浏览器是一种常见的实践。本主题聚焦于使用C#编程语言结合WebKit内核来实现一个能够打开网页源码的浏览器。WebKit是一个开源的渲染引擎,广泛用于...

Global site tag (gtag.js) - Google Analytics