关于浏览器
浏览器把是客户端,可以展示请求到的资源;
展示本地资源:
展示网络请求的资源:
1. 用户界面:地址栏、书签目录等;
2. 浏览器引擎:用来查询和操作渲染引擎的接口。
3. 渲染引擎:渲染页面,处理html、css等,也叫浏览器内核;
4. js解析器 : 解释执行js脚本。
5 .数据存储 :本地存储 localStorage 和 sessionStorage ,占用了硬盘的内存;
OSI模型:
分层名 分层号 描述 比喻
应用层Application Layer (台湾翻:应用层) 7 用户的应用程序和网络之间的接口 老板
表示层Presentation Layer (台湾:展现层) 6 协商数据交换格式 相当公司中简报老板、替老板写信的助理
会话层Session Layer (台湾:会谈层) 5 允许用户使用简单易记的名称建立连接 相当于公司中收寄信、写信封与拆信封的秘书
传输层Transport Layer (台湾:传输层) 4 提供终端到终端的可靠连接 相当于公司中跑邮局的送信职员
网络层Network Layer (台湾:网络层) 3 使用权数据路由经过大型网络 相当于邮局中的排序工人
数据链路层Data Link Layer (台湾:资料链结层) 2 决定访问网络介质的方式 相当于邮局中的装拆箱工人
物理层Physical Layer (台湾:实体层) 1 将数据转换为可通过物理介质传送的电子信号 相当于邮局中的搬运工人
浏览器工作原理的实质就是实现http协议的通讯,具体过程如下:(HTTP通信的流程,大体分为三个阶段)
- 连接,服务器通过一个ServerSocket类对象对某端口进行监听,监听都之后进行连接,打开一个socket虚拟文件。
- 请求,创建与监理socket连接相关的流对象后,浏览器获取请求,为get请求,则从请求信息中获取所访问的html文件名,向服务器发送请求。
- 响应,服务器收到请求后,搜索相关的目录文件,若不存在,返回错误的信息。若存在,则读取html文件,进行加http头等处理响应给浏览器,浏览器解析html文件,若其中还包含图片,视频等资源,则浏览器再次访问web服务器,获取图片视频等,并对其进行组装显示给用户。
浏览器工作顺序:
1. 地址栏输入地址触发网络请求,获取到html文件。
2. HTML解析器解析HTML文件构建成为DOM树。
3. 遇到CSS通过CSS解析器解析成为CSSOM。
4. 遇到JS通过JS解析器解析。
5. DOM Tree和CSSOM构建呈现树(6、7两个步骤)。
6. 呈现树根据结构样式确定节点的位置(布局或者回流) ----回流。
7. 确定好位置以后,根据外观样式绘制 ----重绘。
8. 通过UI后台和用户界面组件把内容显示到浏览器主窗口上。 浏览器的组成 后端的 UI ,用来渲染页面;
网络请求的过程:
域名解析--> 发起TCP的3次握手 --> 建立TCP连接后发起http请求 --> 服务器响应http请求,浏览器得到html代码 --> 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等) --> 浏览器对页面进行渲染呈现给用户
所以在HTTP/1.1中改用了持久连接,就是在一次连接建立之后,只要客户端或者服务端没有明确提出断开连接,那么这个tcp连接会一直保持连接状态
持久连接的一个最大的好处是:大大减少了连接的建立以及关闭时延。(现在我们我们常用的浏览器基本用的都是HTTP1.1,HTTP1.2还未全面普及)
HTTP1.1中有一个Transport段。会携带一个 Connection:Keep-Alive,表示希望将此条连接作为持久连接
html 超文本标记语言 ; http 超文本传输协议; tcp 传输控制协议;
http(HyperText Transfer Protocol),超文本传输协议,是互联网上应用最广泛的一种网络协议,所有www文件都必须遵守的一个标准,是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范。说白了,就是大家都约好互相之间按照一种固定的规则来进行通讯。
http也可以说成是一种客户端和应答服务器端请求和应答的标准(TCP)。通过使用浏览器或其他工具(如google的Postman),客户端发起一个到应答服务器上指定端口(如Tomcat的8080或jmx的1099等)的http请求,或者反过来,服务器给客户端发送一个回应。在客户端和应答服务器端可能存在多个中间层,比如代理、网关或者隧道。
大佬:https://blog.csdn.net/qq_33616529/article/details/78288883?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-78288883-blog-123281714.pc_relevant_vip_default&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-78288883-blog-123281714.pc_relevant_vip_default&utm_relevant_index=1