前后端分离示意图
在此说明:
前后端分离有利于后端的快速开发,但并不利于搜索引擎优化(SEO),上图能清晰的看到,使用前后端分离模式进行开发,浏览器会向服务器发送请求,服务器会向浏览器发送一个类似框架的html,是固定的空壳,此时浏览器再使用ajax请求向后端服务器索要数据,后端服务器返回json字符串给浏览器,从而使浏览器拿到想要的内容
那由此可以看出,这种开发方式对搜索引擎优化(SEO)并不友好,为什么呢?是因为我们前后端不分离开发模式中,当urllib2.urlopen()向后端发送请求时,它会向指定的网址发送请求,网址返回的是指定的后端渲染好的网页,当拿到网页之后会它会将网页存下来,可以通过在网页中右击,选择“显示网页源代码”看到内容,当使用这种方法向后端访问的时候所能拿到的具体的html语言,这里会涉及到爬虫的知识,不做细讲!
那为何拿他来进行简单阐述呢,是因为此时我们通过右击显示源代码所看到的那些html,我们的引擎优化会将我们拿到的网页进行分析,分析页面当中都出现了哪些关键字,然后相对应的将这些关键字和所对应的的url存入指定的数据库,进行数据保存,之后,当我们利用搜索引擎输入一个关键字之后,它会调用数据库内的数据,进行对比,搜寻当前输入的关键字,与数据库中的关键字中的哪些url相匹配,然后呈现出来
那么问题来了,如果使用了前后端分离技术,浏览器此时发送请求之后,拿到的是服务器仅仅返回的html文件,而并不是后端服务器渲染好的页面,在前端页面未运行js脚本的时候,并不能拿到关键词和url,因此也建立不了两者之间的关系。
所以,要想使网站可以进行搜索引擎优化,就不能使用前后端分离的方法,需要将具体的页面单独摘出来,需要做到在搜索时,返回的是后端服务器渲染后的页面,这样就可以参与搜索引擎优化了!!!