重学前端(4)- 浏览器是如何工作的(1)
2022/4/7 23:49:49
本文主要是介绍重学前端(4)- 浏览器是如何工作的(1),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
对浏览器来说,就是把一个 URL 变成一个屏幕上显示的网页。 这个过程是这样的: 1. 浏览器首先使用 HTTP 协议或者 HTTPS 协议,向服务端请求页面; 2. 把请求回来的 HTML 代码经过解析,构建成 DOM 树; 3. 计算 DOM 树上的 CSS 属性; 4. 最后根据 CSS 属性对元素逐个进行渲染,得到内存中的位图; 5. 一个可选的步骤是对位图进行合成,这会极大地增加后续绘制的速度; 6. 合成之后,再绘制到界面上。
HTTP 协议 浏览器首先要做的事就是根据 URL 把数据取回来,取回数据使用的是 HTTP 协议(实际上这个过程之前还有 DNS 查询,不过这里就不详细展开了。) 先来了解下 HTTP 的标准。 HTTP 标准由 IETF 组织制定,跟它相关的标准主要有两份: 2.HTTP1.1 https://tools.ietf.org/html/rfc7234 HTTP 协议是基于 TCP 协议出现的,对 TCP 协议来说,TCP 协议是一条双向的通讯通道,HTTP 在 TCP 的基础上,规定了 Request-Response 的模式。这个模式决定了通讯必定是由浏览器端首先发起的。 大部分情况下,浏览器的实现者只需要用一个 TCP 库,甚至一个现成的 HTTP 库就可以搞定浏览器的网络通讯部分。HTTP 是纯粹的文本协议,它是规定了使用TCP 协议来传输文本格式的一个应用层协议。 在 TCP 通道中传输的,完全是文本。 在请求部分,第一行被称作 request line,它分为三个部分,HTTP Method,也就是请求的“方法”,请求的路径和请求的协议和版本。 在响应部分,第一行被称作 response line,它也分为三个部分,协议和版本、状态码和状态文本。 紧随在 request line 或者 response line 之后,是请求头 / 响应头,这些头由若干行组成,每行是用冒号分隔的名称和值。 在头之后,以一个空行(两个换行符)为分隔,是请求体 / 响应体,请求体可能包含文件或者表单数据,响应体则是 html 代码。 HTTP 协议格式 在这些部分中,path 是请求的路径完全由服务端来定义,没有很多的特别内容;而 version 几乎都是固定字符串;response body 是我们最熟悉 的 HTML
HTTP Method(方法) 我们首先来介绍一下 request line 里面的方法部分。这里的方法跟我们编程中的方法意义类似,表示我们此次 HTTP 请求希望执行的操作类型。方法有以下几种定义:
- GET
- POST
- HEAD
- PUT
- DELETE
- CONNECT
- OPTIONS
- TRACE
- 2xx:请求成功。
- 200:请求成功。
- 301&302:永久性与临时性跳转。
- 304:跟客户端缓存没有更新。
- 4xx:客户端请求错误。
- 403:无权限。
- 404:表示请求的页面不存在。
- 418:It’s a teapot. 这是一个彩蛋,来自 ietf 的一个愚人节玩笑。(超文本咖啡壶控制协议)
- 5xx:服务端请求错误。
- 500:服务端错误。
- 503:服务端暂时性错误,可以一会再试。
HTTP Request Body HTTP 请求的 body 主要用于提交表单场景。实际上,http 请求的 body 是比较自由的,只要浏览器端发送的 body 服务端认可就可以了。一些常见的 body 格式是:
- application/json
- application/x-www-form-urlencoded
- multipart/form-datatext/xml
这篇关于重学前端(4)- 浏览器是如何工作的(1)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-25前端大厂面试真题解析与实战攻略
- 2024-12-25如何准备前端面试:新手指南
- 2024-12-25前端面试题详解与实战攻略
- 2024-12-25前端面试真题详解与实战攻略
- 2024-12-252024前端大厂面试真题详解及备考指南
- 2024-12-252024前端面试必备指南:从零开始掌握前端面试技巧
- 2024-12-252024前端面试题详解与实战指南
- 2024-12-21动态面包屑教程:新手入门指南
- 2024-12-21动态主题处理教程:新手必读指南
- 2024-12-21富文本编辑器教程:新手入门指南