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

简介: 我们都知道,网页上的很多内容之所以能那么丰富,是因为大量的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


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


总结


客户端渲染


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


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


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


服务器渲染


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


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

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


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

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


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


相关文章
|
8天前
|
数据采集 JavaScript 搜索推荐
服务器端渲染(SSR)(Nuxt+Next.js)
服务器端渲染(SSR)技术在服务器上生成页面HTML,提升首屏加载速度和SEO效果。Nuxt.js和Next.js分别是基于Vue.js和React.js的流行SSR框架。Nuxt.js提供自动化路由管理、页面级数据获取和布局系统,支持SSR和静态站点生成。Next.js支持SSR、静态生成和文件系统路由,通过`getServerSideProps`和`getStaticProps`实现数据获取。SSR的优点包括首屏加载快、SEO友好和适合复杂页面,但也会增加服务器压力、开发限制和调试难度。选择框架时,可根据项目需求和技术栈决定使用Nuxt.js或Next.js。
|
10天前
|
存储 缓存 安全
阿里云服务器内存型r7、r8a、r8y、r8i实例区别及选择参考
随着阿里云2024年金秋云创季的开始,目前在阿里云的活动中,属于内存型实例规格的云服务器有内存型r7、内存型r8a、内存型r8y和内存型r8i这几个实例规格,相比于活动内的经济型e和通用算力型u1等实例规格来说,这些实例规格等性能更强,虽然这几个实例规格的云服务器通常处理器与内存的配比为都是1:8,但是他们在处理器、存储、网络、安全等方面等性能并不是一样的,所以他们的适用场景也有着不同。本文为大家介绍内存型r7、r8a、r8y、r8i实例的性能、适用场景的区别以及选择参考。
|
13天前
|
机器学习/深度学习 弹性计算 编解码
阿里云服务器c7/c8a/c8y/c8i/g7/g8a/g8y/g8i/r7/r8a/r8y/r8i实例区别及选择参考
在阿里云目前的活动中,除了特价的轻量应用服务器和经济型e及通用算力型u1实例之外,属于计算型实例的实例有计算型c7/c8a/c8y/c8i,属于通用型实例的有通用型g7/g8a/g8y/g8i,属于内存型实例的有内存型r7/r8a/r8y/r8i。本文将详细介绍阿里云服务器中的c7、c8a、c8y、c8i、g7、g8a、g8y、g8i、r7、r8a、r8y、r8i等实例规格的性能、适用场景及选择参考,帮助用户更好地选择合适的云服务器实例。
|
1月前
|
Python
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
126 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
1月前
|
JSON 数据格式 Python
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
本文介绍了如何使用Python的socket模块实现客户端到服务器端的文件传输,包括客户端发送文件信息和内容,服务器端接收并保存文件的完整过程。
135 1
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
|
16天前
|
存储 机器学习/深度学习 编解码
阿里云服务器计算型c7、c8a、c8y、c8i实例性能、适用场景区别及选择参考
随着阿里云2024年金秋云创季的开始,目前在阿里云的活动中,属于计算型实例规格的云服务器有计算型c7、计算型c8a、计算型c8y和计算型c8i这几个实例规格,相比于活动内的经济型e和通用算力型u1等实例规格来说,这些实例规格等性能更强,虽然这几个实例规格的云服务器通常处理器与内存的配比为都是1:2,但是他们在处理器、存储、网络、安全等方面等性能并不是一样的,所以他们的适用场景也有着不同。本文为大家介绍计算型c7、c8a、c8y、c8i实例的性能、适用场景的区别以及选择参考。
|
15天前
|
存储 人工智能 安全
阿里云服务器通用型g7、g8a、g8y、g8i实例区别及选择指南
目前在阿里云的活动中,属于通用型实例规格的云服务器有通用型g7、通用型g8a、通用型g8y和通用型g8i这几个实例规格,相比于活动内的经济型e和通用算力型u1等实例规格来说,这些实例规格等性能更强,虽然这几个实例规格的云服务器通常处理器与内存的配比为都是1:4,但是他们在处理器、存储、网络、安全等方面等性能并不是一样的,所以他们的适用场景也有着不同。本文为大家介绍通用型g7、g8a、g8y、g8i实例的性能、适用场景的区别以及选择参考。
|
1月前
|
网络协议 Unix Linux
一个.NET开源、快速、低延迟的异步套接字服务器和客户端库
一个.NET开源、快速、低延迟的异步套接字服务器和客户端库
|
1月前
|
存储 弹性计算 固态存储
阿里云服务器Entry云盘和ESSD Entry云盘区别、性能参数及使用常见问题参考
在我们选择阿里云服务器的时候,有部分云服务器同时支持ESSD Entry云盘和ESSD云盘,有的初次接触阿里云服务器云盘的用户可能还不是很清楚他们之间的区别,因此不知道选择哪种更好更能满足自己场景的需求,本文为大家介绍一下阿里云服务器Entry云盘和ESSD Entry云盘各自的性能参数区别及使用过程中的一些常见问题,以供选择参考。
|
1月前
|
网络协议 Java API
【网络】TCP回显服务器和客户端的构造,以及相关bug解决方法
【网络】TCP回显服务器和客户端的构造,以及相关bug解决方法
61 2