http://abc.com:80/z/c?i=1#b
http协议 uri 端口号 路径 参数 片段域名通过dns解析成ip
- 首先查询浏览器缓存
- 再查询系统缓存
- 再递归查询dns服务器
建立tcp链接,三次握手
- syn-》
- 《- syn/ack
- ack -》
http报文生成
- 报文首部
- 请求行 PUT example.html HTTP1.1
- 请求首部字段:Accept等
- 报文体
- 报文首部
- 包装报文,经过链路层(mac),传输层(tcp),网络层(ip),应用层(http)
- 服务器接收到HTTP请求
服务器接收到数据之后,会经过链路层,网络层,传输层逐层将该层对应的首部信息去掉
7. 服务器根据收到的HTTP数据,生成对应的响应报文,结构如下:
状态行:由HTTP 版本 状态码 原因短语构成
响应首部字段 通用首部字段 实体首部字段 都可以查手册得知其具体内容以及含义这里不再展开
- 客户端接收到了响应报文之后,浏览器渲染呈现
- 浏览器通常的主要组件分为以下几部分:
- 用户界面:如地址栏 书签菜单等等
- 浏览器引擎:在用户界面和呈现引擎之间传送之类
- 呈现引擎:负责显示请求的内容。例如HTMLhe CSS
- JAVAScript解释器:用于解释和执行JavaScript 代码
- 数据存储
- 渲染文档主要使用呈现引擎。
过程如下:- 呈现引擎从网络层获取请求文档的内容HTML文件,内容大小一般在8000个块以内。
- 引擎解析HTML文档 将各个标记转化为内容树上的DOM节点 ,同时解析CSS文件 样式数据
- 样式信息和 内容树共同构建成为 呈现树
- 呈现树构建完毕以后,进入布局阶段, 为每一个节点分配一个应该出现在屏幕上的确切坐标
- 呈现引擎遍历呈现树 由用户界面后端层将每个节点绘制出来。
- 浏览器通常的主要组件分为以下几部分: