超详细图文解释——客户端渲染和服务器渲染的区别

简介: 我们都知道,网页上的很多内容之所以能那么丰富,是因为大量的css、js去渲染出这个页面。那么他们是如何渲染的呢?那么就要说到我们本文的两种渲染方式了,即客户端渲染和服务端渲染。本文将分别讲述两种渲染方式的区别和他们各自的优缺点,以及他们在真实项目中的运用。如果不想看具体过程讲解的可以直接跳到最后的总结看结论.

客户端渲染


图片讲解


2415339b0ca6d80796772bb4b0506fb1.png


文字讲解


看了图后,我给大家总结一下,大致过程就是 :

首先用户输入地址,客户端向服务器发送请求


=> 服务器传给浏览器相应的网页文件


=> 浏览器解析文件


=> 遇到ajax请求则向服务器再次请求一些数据


=> 服务器再次向浏览器发送相应的数据


=> 浏览器拿到ajax请求返回的数据后,将数据渲染在页面上


真实的客户端渲染案例


在上面我们也看到了,客户端渲染是在请求回数据后就已经开始渲染了,只是有些数据还没拿到,暂时没法渲染,不过大部分的页面内容我们都已经可以看到了,所以客户端渲染可以完成页面的局部刷新。例如JD的商品评论数据


4c7c73f5cacabdfd8cb9540807975cb0.jpg


大家看,我在点击评论的下一页时,整个页面没有刷新,浏览器上的网址也没有变化,只有评论的内容做了一个刷新,这就是一个典型的客户端渲染的例子,进入这个页面时,其他的内容都被浏览器渲染好了,而评论信息是在我们点击下一页时,客户端向服务器发送ajax请求,拿到了这一页的评论信息,再在这个部分做一个局部的数据重新渲染。


优点


  1. 可以向用户快速展示页面的内容,增加用户体验


  1. 给别人爬虫爬取相应的内容增加一定的困难


缺点


  1. 可能需要向服务器请求多次数据


  1. 不利于SEO 搜索引擎优化,即百度、搜狗等搜索引擎搜索不到客户端渲染的数据


服务器渲染


图片讲解


ee89afd85da5779bbf1bd3ff61b21520.png

文字讲解


同样的,看完图我给大家总结一下,服务器渲染的步骤就是:


首先客户端向服务器发送一次请求


=> 服务器接收请求,并在服务端操作网页文件,将对应数据导入文件


=> 服务器在服务端渲染好整个网页,发送给客户端


=> 客户端接收服务器发送过来的网页文件,不需要做任何操作,直接呈现


真实的服务器渲染案例


e7cf449a2c95685f161747253a937894.jpg


大家看,我在电脑的分类购物列表中,点击下一页时,整个页面做了一个刷新,浏览器上的网址也做了变化,这就是服务器渲染的一个典型案例,整个网页做一个刷新,正应对了我们上面的图片讲解,是浏览器向服务器请求,服务器给浏览器发送一整个页面。


优点


  1. 只需要向服务器请求一次


  1. 利于SEO 搜索引擎优化,即能被搜索引擎搜索到,能向用户展示你网页的东西


缺点


  1. 如果数据量过大,在服务器渲染的时间就会过长,造成浏览器暂时的空白


  1. 容易被爬虫爬取


如何区分客户端渲染和服务器渲染


第一种方法


若页面做整体的刷新,即网址发生改变,就是服务器渲染


若页面做了局部刷新,即网址没发生改变,就是客户端渲染



第二种方法


若查看网页源代码时,查找不到网页中的一些内容,那就是客户端渲染


若查看网页源代码时,能找到网页中对应的内容,那就是服务器渲染


如下面动图演示:


09882178a681bafcdfa63130a11c7607.jpg


大家看,这个商品的名称在网页源代码中,能被搜索到,说明该条数据是被服务器渲染出来的。


再来看下一个动图


91f88b7189cb6b46fc41db4f8190f020.jpg


大家看,这个商品的评论信息在网页源代码中,不能被搜索到,说明该条数据是被客户端渲染出来的。


总结


客户端渲染


  • 页面的渲染工作都是由浏览器来完成的,服务器只是负责提供数据。


  • 客户端渲染能尽早的把页面展示给用户,用户体验好


  • 不容易被爬虫爬取数据,同时也无法被搜索引擎搜索到


服务器渲染


  • 页面渲染的工作都是由服务端来完成的,数据也是由服务端提供的,浏览器只负责展示页面内容


  • 容易被爬虫爬取数据,同时能被搜索引擎搜索到,能在搜索引擎中向用户展示数据

那么,到底是用客户端渲染好还是服务器渲染好呢?


其实一般的页面中,两种渲染是相结合着使用的,因为我们会有些数据不想过早的传过来,想要被用到时再去拿数据,同时也不想被爬虫那么轻易的爬取,而且也不需要被搜索引擎搜索并展示,我们就可以用客户端渲染,例如我们本文中提到的商品评论信息。

但有时,我们想让我们网页的数据被搜索引擎搜索到,能让用户在使用搜索引擎的时候,查找到我们的数据信息,我们就可以使用服务器渲染。例如我们本文提到的电商网站的商品的基本信息,商品能被用户在搜索引擎搜索到,才能有更大的机会卖出去嘛,哈哈哈 这个解释应该挺贴切了吧。


希望这篇文章对你有所帮助~


相关文章
|
1月前
|
存储 分布式计算 网络协议
阿里云服务器内存型r7、r8a、r8y实例区别参考
在阿里云目前的活动中,属于内存型实例规格的云服务器有内存型r7、内存型r8a、内存型r8y这几个实例规格,相比于活动内的经济型e、通用算力型u1实例来说,这些实例规格等性能更强,与计算型和通用型相比,它的内存更大,因此这些内存型实例规格主要适用于数据库、中间件和数据分析与挖掘,Hadoop、Spark集群等场景,本文为大家介绍内存型r7、r8a、r8y实例区别及最新活动价格,以供参考。
阿里云服务器内存型r7、r8a、r8y实例区别参考
|
1月前
|
存储 边缘计算 监控
【MODBUS】Modbus主站云端服务器和边缘设备部署区别
【MODBUS】Modbus主站云端服务器和边缘设备部署区别
36 0
|
2月前
|
消息中间件 运维 网络协议
客户端和服务器之间的通信
客户端和服务器之间的通信
32 0
|
1月前
|
JavaScript 搜索推荐 UED
描述 Vue 的服务器端渲染(SSR)。
描述 Vue 的服务器端渲染(SSR)。
23 3
|
18天前
|
网络协议 Python
pythonTCP客户端编程连接服务器
【4月更文挑战第6天】本教程介绍了TCP客户端如何连接服务器,包括指定服务器IP和端口、发送连接请求、处理异常、进行数据传输及关闭连接。在Python中,使用`socket`模块创建Socket对象,然后通过`connect()`方法尝试连接服务器 `(server_ip, server_port)`。成功连接后,利用`send()`和`recv()`进行数据交互,记得在通信完成后调用`close()`关闭连接,确保资源释放和程序稳定性。
|
1月前
|
存储 弹性计算 关系型数据库
阿里云服务器ESSD云盘性能等级PL0、PL1、PL2、PL3区别,云盘性能级别PL知识点参考
在我们选择阿里云服务器系统盘和数据盘时,如果是选择ESSD云盘,还需要选择云盘的云盘性能级别PL,PL性能级别有PL3、PL2、PL1、PL0四个性能级别的云盘规格,如果是通过阿里云的活动来购买云服务器的话,由于系统盘默认一般为20G或40G容量,可选的PL性能级别通常只有PL0(单盘IOPS性能上限1万)和PL1(单盘IOPS性能上限5万)可选择,有的用户肯能并不清楚ESSD云盘的性能等级之间有何区别,单盘IOPS性能指的是什么,本文为大家介绍一下ESSD云盘的云盘性能级别PL3、PL2、PL1、PL0相关知识点。
阿里云服务器ESSD云盘性能等级PL0、PL1、PL2、PL3区别,云盘性能级别PL知识点参考
|
存储 弹性计算 网络协议
阿里云服务器经济型e、通用算力型u1与c7/g7/r7/c8y/g8y/r8y实例区别及选择参考
在阿里云目前的各个活动中,除了轻量应用服务器之外,活动内的云服务器实例规格主要以经济型e、通用算力型u1、计算型c7/c8y、通用型g7/g8y、内存型r7/r8y这几个实例规格为主,c7/c8y属于计算型实例,g7/g8y属于通用型实例,c7/r8y属于内存型实例,c7/g7/r7属于最新第七代云服务器实例,c8y/g8y/r8y属于倚天云服务器实例,不同的云服务器实例规格在性能、特点及适用场景上有所不同,本文大家介绍一下阿里云服务器经济型e、通用算力型u1与c7/g7/r7/c8y/g8y/r8y的区别,以供参考。
阿里云服务器经济型e、通用算力型u1与c7/g7/r7/c8y/g8y/r8y实例区别及选择参考
|
6天前
|
JavaScript 前端开发 UED
Vue工具和生态系统: Vue.js和服务器端渲染(SSR)有关系吗?请解释。
Vue.js是一个渐进式JavaScript框架,常用于开发单页面应用,但其首屏加载较慢影响用户体验和SEO。为解决此问题,Vue.js支持服务器端渲染(SSR),在服务器预生成HTML,加快首屏速度。Vue.js的SSR可手动实现或借助如Nuxt.js的第三方库简化流程。Nuxt.js是基于Vue.js的服务器端渲染框架,整合核心库并提供额外功能,帮助构建高效的应用,改善用户体验。
10 0
|
26天前
|
网络协议 Linux 网络安全
Linux服务器DNS服务器配置实现bind的正向解释和反向解释
Linux服务器DNS服务器配置实现bind的正向解释和反向解释
17 0
|
1月前
|
存储 缓存 编解码
阿里云服务器通用型g7、g7a、g8a、g8ae、g8i、g8y实例区别参考
在阿里云目前的活动中,属于通用型实例规格的云服务器有通用型g7、通用型g7a、通用型g8a、通用型g8ae、通用型g8y这几个实例规格,相比于活动内的经济型e和通用算力型u1等实例规格来说,这些实例规格等性能更强,适用于中小型数据库系统、缓存、搜索集群、大数据服务和集群计算等场景。本文为大家介绍通用型g7、g7a、g8a、g8ae、g8y实例区别及最新活动价格,以供参考。
阿里云服务器通用型g7、g7a、g8a、g8ae、g8i、g8y实例区别参考