我们都知道,网页上的很多内容之所以能那么丰富,是因为大量的css、js去渲染出这个页面。那么他们是如何渲染的呢?那么就要说到我们本文的两种渲染方式了,即客户端渲染和服务端渲染。

正文

本文将分别讲述两种渲染方式的区别和他们各自的优缺点,以及他们在真实项目中的运用。如果不想看具体过程讲解的可以直接跳到最后的总结看结论.

一、客户端渲染

图片讲解

文字讲解

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

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

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

=> 浏览器解析文件

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

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

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

真实的客户端渲染案例

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

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

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

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

缺点可能需要向服务器请求多次数据

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

二、服务器渲染

图片讲解

文字讲解

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

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

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

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

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

真实的服务器渲染案例

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

优点只需要向服务器请求一次

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

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

容易被爬虫爬取

三、如何区分客户端渲染和服务器渲染第一种方法

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

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

第二种方法(有gif动图展示)

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

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

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

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

四、总结

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

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

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

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

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

那是用客户端渲染好还是服务器渲染好呢?

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

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

结束语

好了,给大家讲了那么多,也是想让大家了解一下这两种渲染具体是怎么做的,同时也是帮我自己巩固一下知识点,毕竟每天学习的东西那么多,但记住的又很少。希望这篇文章对大家有所帮助~

希望这篇文章对大家能有所帮助,我是Lpyexplore,一个因python爬虫而转入前端的程序员,关注我,带你爬虫过程中学习Web。公众号:Lpyexplore的编程小屋

python 服务端渲染_客户端渲染和服务器渲染的区别相关推荐

  1. python 服务端与c++客户端通讯_[原创]python socket 服务端 与 c++客户端通讯,发包内容加密,支持大文件,并发...

    代码经过网络搜索,综合算是原创吧.py脚本为服务端 项目文件在 https://github.com/jinjie412/service_client_socket import socketserv ...

  2. python 服务端与c++客户端通讯_在C++与Python之间通信(IPC)

    我有应用服务器(服务器.py)和C++作为客户端(客户端.exe). 客户端.exe将变量发送到服务器.py通过"命名管道".在 问题是当我从客户端.exe在服务器.py只产生&q ...

  3. python服务端语言_使用Python实现简单的服务器功能

    socket接口是实际上是操作系统提供的系统调用.socket的使用并不局限于Python语言,你可以用C或者Java来写出同样的socket服务器,而所有语言使用socket的方式都类似(Apach ...

  4. 【踩坑】cat3.x服务端部署, springboot客户端接入

    [踩坑]cat3.x服务端部署, springboot客户端接入 前言 服务器部署问题 1. 数据库连不上 2. 不要创建server.xml 客户端注册问题 1. client.xml信息错误 2. ...

  5. UE4 TCP通信 (UE客户端与网络调试助手服务端、python服务端通信)

    目录 一.使用UE4建立TCP客户端 二.使用网络调试助手建立服务端 三.基于网络调试助手的服务端与UE客户端通信 四.基于python的TCP服务端与UE客户端通信 一.使用UE4建立TCP客户端 ...

  6. python 和php的数据通信_python服务端 和 php客户端通信一

    1 通过thrift 但是数据量太大thrift不支持 下载thrift包安装,比如我的是/usr/local/thrift-0.8.0 /usr/local/thrift-0.8.0/lib类库 / ...

  7. c++socket多个客户端通过不同端口与一个服务端通信_手写RPC,深入底层理解整个RPC通信...

    一.前言 RPC,远程过程调用,调用远程方法像调用本地方法一样.RPC交互分为客户端和服务端,客户端调用服务端方法,服务端接收数据并打印到控制台,并response响应给客户端. RPC和HTTP的联 ...

  8. netty tcp服务端主动断开客户端_「Netty核心技术」6-ChannelPipeline源码

    ChannelPipeline是Channelhandler的容器,它负责ChannelHandler的管理和事件拦截与调度. 土话: ChannelPipeline就是用来管理Channelhand ...

  9. python 服务端框架_GitHub - edisonlz/fastor: Python服务端开发框架-极易上手,超出你的想象!...

    欢迎使用Python 服务端开发框架 Fastor Fastor是一款专为Python 打造的API与后端管理系统,通过精心的设计与技术实现,集成了大部分稳定开发组件,memcache , redis ...

最新文章

  1. OpenBSD配置Apache反向代理
  2. 7805输入电流有要求吗_PLC输入输出接线全解析,值得收藏!
  3. Hive中排序和聚集
  4. python保存代码_python入门(5)使用文件编辑器编写代码并保存执行
  5. workbook加载文件路径_通过Workbook.XML 修复Excel自定义名称
  6. Makefile函数使用
  7. C语言八字图标软件,ico图标编辑器(Greenfish Icon Editor)
  8. 中国程序员最应该感谢的几家公司
  9. (libgdx学习)Polling
  10. python2.7.12源码编译
  11. 5. CSS 类选择器
  12. Python资源索引 【转载】
  13. 高中计算机excelppt,高一信息技术 4.2利用Excel表格处理个人财务教案.doc
  14. 动态规划dp算法经典包子凑数java
  15. Java解析PDF文件(PDFBOX、itext解析PDF)导出PDF中的子图片,去除PDF中的水印
  16. git 命令git 地址_5个高级Git命令来启动您的Git游戏
  17. 计算机经常蓝屏可能的原因分析,计算机经常出现蓝屏的原因是什么
  18. ios::sync_with_stdio(false)
  19. ubuntu查看网速的工具
  20. 手机音质变差_手机听歌音质差?这些音质大坑你跳了几个

热门文章

  1. 第十讲 二阶齐次常系数线性ODE(续)
  2. Python中字符串使用方法总结(学习笔记)
  3. 2017-2018 2 20179214《网络实践攻防》第三周作业(二)
  4. Python 基础 - Day 5 Assignment - ATM
  5. webStorm 注册码
  6. PHP date, strtotime, mktime处理
  7. 2015 Multi-University Training Contest 5
  8. AMAZING AUCTION (第三届省赛)
  9. C++(2013.11.27)
  10. Android Developers:按钮