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

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

 

分享到:
评论

相关推荐

    探讨iOS浏览器的安全问题

    本文档将讨论iOS中的第三方开发浏览器是如何开发出来的。内容将包含UIWebView的主要能力和限制,浏览器开发者会添加的常见功能,以及会导致存在安全漏洞的常见设计与编程缺陷。作者还将介绍Mobile Safari和UIWebView...

    常见的浏览器兼容性问题(小结)

    浏览器的兼容性无非还是样式兼容性(css),交互兼容性(javascript),浏览器 hack 三个方面。 样式兼容性(css)方面 (1) 因为历史原因,不同的浏览器样式存在差异,...在开发过程中我们一般通过IDE开发插件、cs

    使用Object-C开发的练习项目

    这是一个使用Objective-C语言...项目充分利用了WebKit框架,让应用能够展示丰富的网页内容,同时还实现了诸如前进、后退、刷新、停止等浏览器常见功能。用户可以在应用内自由地浏览网页,就像在使用一个完整的浏览器一样。

    Android中文开发手册

    • 集成的浏览器 基于开源的WebKit 引擎 • 优化的图形库 包括定制的2D图形库,3D图形库基于OpenGL ES 1.0 (硬件加速可选) • SQLite 用作结构化的数据存储 • 多媒体支持 包括常见的音频、视频和静态图像格式 ...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    (1)针对多窗口类浏览器模式问题,指出并分析了该问题存在的原因,利用Activity的运行机制,通过Fragment栈对主要模块的Webview进行管理,实现对不同模块之间切换的控制。 (2)针对跨域数据交互问题,指出并分析了...

    android开发中文教程

    内部集成浏览器:该浏览器基于开源的WebKit 引擎 优化的图形库:包括2D 和3D 图形库,3D 图形库基于OpenGL ES 1.0 (硬件加速可选) SQLite:用作结构化的数据存储 多媒体支持:包括常见的音频、视频和静态印象文件...

    [14本经典Android开发教程]-3-Android SDK 中文开发文档

    · 集成的浏览器 基于开源的WebKit 引擎 · 优化的图形库 包括定制的2D图形库,3D图形库基于OpenGL ES 1.0 (硬件加速可选) · SQLite 用作结构化的数据存储 · 多媒体支持 包括常见的音频、视频和静态图像格式 ...

    Android开发资料汇总高阶

     集成的浏览器 基于开源的 WebKit 引擎  优化的图形机制 自定义的 2D 图形库,基于 OpenGL ES 1。 0 规范的 3D图形实现(本 项硬件加速器可选  SQLite 轻量级的数据库,支持结构化数据的存储  媒体支持 面向...

    免费下载-Android SDK 中文开发文档

    · 集成的浏览器基于开源的WebKit 引擎 · 优化的图形库包括定制的2D图形库,3D图形库基于OpenGL ES 1.0 (硬件加速可选) · SQLite 用作结构化的数据存储 · 多媒体支持包括常见的音频、视频和静态图像格式(如...

    Android SDK 中文开发文档

    · 集成的浏览器基于开源的WebKit 引擎 · 优化的图形库包括定制的2D图形库,3D图形库基于OpenGL ES 1.0 (硬件加速可选) · SQLite 用作结构化的数据存储 · 多媒体支持包括常见的音频、视频和静态图像格式(如...

    Android开发教程&笔记

    集成的浏览器基于开源的WebKit 引擎 ; 优化的图形库包括定制的2D 图形库,3D 图形库基于OpenGL ES 1.0 (硬件加速可选) ; SQLite 用作结构化的数据存储 ; 多媒体支持包括常见的音频、视频和静态图像格式(如MPEG4,...

    Android应用程序开发教程PDF电子书完整版、Android开发学习教程

    • 集成的浏览器 基于开源的 WebKit 引擎 • 优化的图形库 包括定制的2D 图形库,3D 图形库基于 OpenGL ES 1.0 (硬件加速可选) • SQLite SQLite SQLite SQLite 用作结构化的数据存储 • 多媒体支持 包括常见的...

    Android安全攻防指南_用户态软件的漏洞利用_编程案例解析实例详解课程教程.pdf

    本章主要介绍 Android 系统用户态软件中内存破坏漏洞的利用方法。我们会在 ARM 架构上讨论常见的漏洞类型,例如栈溢出。...最后以 WebKit 浏览器引擎中一个可远程利用的漏洞为例,介绍高级堆利用技术。

    新版Android开发教程.rar

    • 集成的浏览器 基于开源的 WebKit 引擎 • 优化的图形库 包括定制的 2D 图形库, 3D 图形库基于 OpenGL ES 1.0 (硬件加速可选) • SQLite SQLite SQLite SQLite 用作结构化的数据存储 • 多媒体支持 包括常见的...

    android+api+教程

    集成的浏览器 基于开源的WebKit 引擎 优化的图形库 包括定制的2D图形库,3D图形库基于OpenGL ES 1.0 (硬件加速可选) SQLite 用作结构化的数据存储 多媒体支持 包括常见的音频、视频和静态图像格式 (如 MPEG4, ...

    Google Android SDK开发范例大全(完整版)

    Android 包括一个构建在 WebKit 基础上的可嵌入浏览器,iPhone 的 Mobile Safari 浏览器同样也是以 WebKit 为基础。 Android 提供多种连接选项,包括 WiFi、蓝牙和通过蜂窝(cellular)连接的无线数据传输(例如 ...

    《iPhone开发实战》.(Christopher Allen).pdf

    3.2.4 解决常见问题29 3.3 实现“iphone优化的”网页31 3.3.1 通过user_agent检测iphone31 3.3.2 通过css检测iphone31 3.3.3 使用css进行优化32 3.4 使用iphone chrome32 3.4.1 三个栏32 3.4.2 web...

    Android入门中文教程

    集成的浏览器 基于开源的WebKit 引擎 优化的图形库 包括定制的2D图形库,3D图形库基于OpenGL ES 1.0 (硬件加速可选) SQLite 用作结构化的数据存储 多媒体支持 包括常见的音频、视频和静态图像格式 (如 MPEG4, ...

    Android中文帮助文档.rar

     集成的浏览器 基于开源的WebKit 引擎  优化的图形库 包括定制的2D图形库,3D图形库基于OpenGL ES 1.0 (硬件加速可选)  SQLite 用作结构化的数据存储  多媒体支持 包括常见的音频、视频和静态图像格式 ...

    Android中文文档

    • 集成的浏览器 基于开源的 WebKit 引擎 • 优化的图形库 包括定制的 2D 图形库,3D 图形库基于 OpenGL ES 1.0 (硬件加速可选) • SQLite 用作结构化的数据存储 • 多媒体支持 包括常见的音频、视频和静态...

Global site tag (gtag.js) - Google Analytics