IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 浏览器网络 -> 正文阅读

[网络协议]浏览器网络

概念

FP(First Paint)
页面加载到首次开始绘制的时长,影响FP的因素很多,例如:网络加载速度
IP(Internet Protocol)
网络层协议,网络协议。计算机地址就是IP地址,访问网站实际上是主机对一台计算机(服务器)请求信息。当一台主机要向另一台主机发送请求时,在传输之前加上该主机的IP地址信息,这样在传输中才能正确寻址。
UDP(User Datagram Protocol)
传输层协议,用户数据包传输协议。UDP重要的信息是端口号,通过端口号可以把指定的数据包发送给指定的程序。
TCP(Transmisson Control Protocol)
传输层协议,传输控制协议。通过该协议,可以通过重传机制和数据包排序机制,把乱序传输过来的数据包组装成正确的数据。这是一个面向连接、可靠、基于字节流的协议。

HTTP(Hyper Text Transfer Protocol)
应用层协议,超文本传输协议。通常运行在TCP之上,它的功能是指定客户端发送什么信息以及希望收到什么样的响应。

beforeunload事件
钩子函数,在页面被替换成新页面之前,浏览器给当前页面一次执行beforeunload事件的机会,相当于dispose,在销毁前可以清除一些数据和操作。用户也可以通过beforeunload事件来进行确认是否取消导航。

Content-Type属性
服务器告诉浏览器返回的文件类型,例如:text/html、application/octet-stream(html文件类型、字节流类型)

同一站点
根域名+协议相同,端口和子域名不同算作同一站点

拓展

TCP连接

建立连接阶段,建立一个TCP连接,需要客户端与服务器通过三次握手,也就是相互发送三次数据包来确认连接建立。
传输数据阶段,接收端会在接收到数据后向发送端发送确认信息,倘若发送端没有收到确认信息,则会判断为数据包丢失,触发TCP的重传机制。接收端在收到很多小数据包后,会根据TCP头中的序号排序成完整的数据。
断开连接阶段,传输数据后,通过四次挥手来保证双方断开连接。

TCP为了保证数据传输的可靠性,牺牲了数据包的传输速度,因为这些机制会把数据包的数量提高一倍

浏览器发送HTTP请求流程
构建请求头

GET /index.html HTTP1.1

请求头会说明方法,HTTP版本号
查找缓存
浏览器会在本地查找是否存在缓存,如果有就会拦截请求,直接使用缓存渲染页面。
缓解了服务器压力,提高了客户端用户体验
如果查找失败,则会发送网络请求
准备IP和UDP信息头
准备IP:请求DNS服务器返回域名对应IP地址,浏览器存在DNS缓存服务,倘若本地有缓存,则使用缓存,没有则请求DNS服务器。
UDP信息头:准备好端口号信息。
等待TCP队列
一般浏览器只允许六个TCP连接,所以在建立TCP连接之前,需要等待TCP连接空出
建立TCP连接
三次握手,客户端发送一次请求,服务器建立连接返回建立信息,客户端再发送一次请求确认建立。
发送HTTP请求
建立TCP连接后就可以发送HTTP请求超文本和资源渲染页面。
HTTP请求,客户端先向服务器发送请求行,请求行包括了请求方法、请求URI和HTTP版本协议
发送请求行后,还会以请求头形式发送一定的信息,例如浏览器使用的操作系统、内核等,请求的域名信息、浏览器端的cookie信息等。

服务端处理HTTP请求流程

返回请求
服务器处理请求结束,会返回数据给浏览器,总共返回响应行、响应头、响应体。

断开连接
一般情况,服务器返回数据后就会关闭TCP连接。如果服务器或者客户端在头信息中加入了

Connection:Keep-Alive

该属性会保持TCP连接,省去下次请求建立TCP连接的时间,提升资源加载速度
重定向
有时响应行返回的状态码是301,则代表需要重定向,在响应头里有个Location属性,浏览器会再次发送请求向Location属性的域名。

二次打开页面更快
DNS缓存和页面资源缓存。浏览器通过服务器返回的响应头查看属性Cache-Control字段来设置是否缓存该资源。

Cache-Control:Max-age = 2000

该属性说明此缓存有效时间为2000s,2000s后就会失效,浏览器就需要再次向服务器发送请求
Etag属性
一般为资源实体的哈希值,当浏览器第一次发送HTTP请求时,服务器会返回一个Etag,并且在第二次发送请求时,客户端会在请求头加入一个属性If-None-Match,该属性的值就是Etag。服务器会对比本地和浏览器发送过来的Etag来确认缓存是否需要更新,相同则不需要,将If-None-Match设为false,返回304,不同则需要设置为true,返回200。Last-Modified属性表示相应资源在服务器最后修改时间

保持登录状态
浏览器在向服务器POST账号密码后,服务器收到数据,查询后台,验证是否正确,如果正确,则会在返回数据时,生成一段表示用户身份的字符串,并写到响应头的Set-Cookie属性里面。

Set-Cookie : UID = 3431uad;//例如这种情况

浏览器收到响应头后,发现里面有Set-Cookie属性,则会把属性信息保存本地。
当用户再次访问时,浏览器会发送HTTP请求,发送请求前,会检查本地是否有之前缓存的Cookie数据,倘若有,则会把cookie数据写入请求头的Cookie字段里面

Cookie:UID =3431uad;//例如这种情况

服务器收到请求头数据后,会查找请求头里面cookie字段对应的用户在后台是否是登录状态,然后生成含有该用户信息的页面数据,再把数据发送给浏览器

从输入URL到页面渲染

● 浏览器查找本地是否有即将请求的页面缓存,有就拦截请求,并且给If-None-Match上Etag属性,来判断是否缓存失效。没有就准备建立TCP连接。
● 浏览器获取用户输入的URL,解析成IP地址。查找DNS缓存,有就使用,没有就请求DNS根域名服务器,再到子域名服务器。如果请求是HTTPS,则还需要建立TLS连接。
● 等待TCP连接队列。
● 通过三次握手建立TCP连接,浏览器构建HTTP请求头、UDP端口号。查询本地是否有cookie,有就在请求头设置cookie属性来持久化登录。
● 发送HTTP请求HTML、CSS及JavaScript代码与渲染资源。
● 服务器接受到请求信息后,会根据信息生成响应数据。并把响应数据发送给网络进程。
● 浏览器中网络进程拿到服务器返回的响应头后,解析响应头后,将数据转发给浏览器进程。
● 浏览器进程接收到网络进城的响应头数据后,提交“提交导航”信息给渲染进程。
● 渲染进程接收到“提交导航”信息后,开始接受HTML数据,渲染进程此时与网络进城建立数据管道。
● 渲染进程接收到数据后,向浏览器进程“确认提交”,准备接受和解析页面数据。
● 浏览器收到“确认提交”申请后,移除旧文档,更新浏览器中的页面状态。包括安全状态、地址URL、前进后退的历史状态,并更新Web页面。
● 本地存储缓存,如果获得了Set-Cookie则本地存储。

用户发出URL请求到页面开始解析的过程被称作导航

渲染进程

同一站点的页面在同一个渲染进程中。
打开新页面会调用单独的渲染进程
当被打开的页面和原页面是同一站点,则会复用原页面的渲染进程

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-11-19 17:56:53  更:2021-11-19 17:57:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年7日历 -2024/7/3 22:00:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码