网页中flash数据抓取(开发的网站需要设置Apache的bin目录到环境变量中具体命令及参数)
优采云 发布时间: 2022-02-12 16:07网页中flash数据抓取(开发的网站需要设置Apache的bin目录到环境变量中具体命令及参数)
一、简介
1、简介
网站的发展最终需要上线,向广大网民开放,这涉及到搜索引擎的收录到网站。对于网站的收录,搜索引擎更喜欢静态的网站(网站由html css js制作)。
为了迎合搜索引擎的收录偏好,我们需要将自己的网站设为静态。
静态 网站:纯 html 页面 网站。
动态网站:动态脚本网站(例如php网站)。
静态分为真静态和伪静态
真静态:从访问的url到具体的页面内容,都是html
伪静态:访问的 url 看起来像一个 html 文件,但页面的实际内容是一个动态脚本。
2、压力测试
关键概念:
每秒请求数(并发请求数)
QPS:每秒查询数
RPS:每秒请求数
测试工具:Apache下的ab测试工具
Ab.exe 是一个可执行文件,也可以从命令行执行。
需要将Apache bin目录设置为环境变量
具体命令和参数:
ab -n 500 -c 100 ''
ab 是命令名称
-n 是请求的总数
-c 最大并发请求数(一次同时发送的请求数)
最后是要请求的地址(如果请求地址直接是域名,需要在末尾加/)
默认测试结果数据直接显示在命令行窗口中
可以在命令后使用 > 文件路径将测试结果保存到文件中
静态 网站 和动态 网站 的测试:
在项目目录下新建一个Static目录,在该目录下新建一个phpinfo.php文件和一个phpinfo.html文件。
浏览器直接访问:域名/Static/phpinfo.php,查看页面源码,复制到/Static/phpinfo.html;
速度比动态网页快几十倍。相对而言,静态资源的加载误差几乎为0,而动态页面的加载误差为1/10,属于正常现象。
失败请求数36,每秒处理请求数161.59,平均每个请求时间618.856ms。这是动态网页的分析
没有失败的请求,每秒处理的请求数为310.59,每个请求耗时321.970ms 这是静态网页的结果
对比测试结果发现
静态 网站 故障大大减少。请求时间显着减少。
将网站页面设为静态可以提高网页访问速度和并发请求数。
试验参数应合理。如果超过一定范围,apache会直接报错。
二、真正的静态
1、三种缓存技术
浏览器缓存、程序缓存、ob缓存
浏览器缓存(了解):
这意味着在从apache服务器向浏览器返回数据的过程中(数据传输需要时间),浏览器并没有像接收到的那样直接显示多少数据。
浏览器处理方法:接收到指定大小的数据后,再次显示
比如apache一共返回了100kb的数据,浏览器每收到20kb就进行处理(比如显示到页面上)
如果所有数据都返回到最后,不管最后一个数据有多少,都会直接处理。
程序缓存:
在请求 PHP 脚本时,浏览器对 apache 的请求需要由 PHP 处理。
在处理过程中,可能会不断产生内容输出。输出内容会先存入“程序缓存”。当整个脚本执行完成后,所有的输出内容都会从程序缓存中返回给apache,然后apache会返回给浏览器。
*敏*感*词*:
程序缓存和浏览器缓存都不需要开发人员直接操作。
缓存
PHP中提供了一个ob缓存,可以由开发者控制
如果启用了ob缓存,那么php的输出首先会放在ob缓存中。当ob缓存中的内容达到一定大小时,将缓存放入程序缓存中,最后返回给apache。
*敏*感*词*:
2、ob缓存常用函数
ob缓存打开:①使用ob_start函数打开
②打开php.ini文件,找到output_buffering设置启用
可设置为 On 或 Off 分别指示开启和关闭
通常打开ob缓存,直接设置一个大小
常用功能
ob_start():开启输出缓冲
ob_get_contents():获取输出缓冲区的内容
ob_clean():清空输出缓冲区
ob_get_clean():先获取输出缓冲区的内容,再清除
ob_get_flush():手动发送输出缓冲区的内容,(发送到程序缓存中),并返回内容
ob_flush():发送输出缓冲区的内容
ob_end_clean():清空并关闭输出缓冲区
使用示例:
通常,在使用header函数之前,是不能有任何输出的,因为只要有输出,输入的内容就会先存入程序缓存,而只要有内容存入程序缓存,就会有一个头信息会自动设置。以后直接再设置的时候会提示错误,已经设置好了。(要测试这个功能,需要关闭php.ini中的output_buffering设置。)
在php.ini中开启ob缓存或者使用ob_start()函数开启ob缓存后,不会报错。
原理:开启ob缓存后,所有输出都先放入ob缓存,最后放入程序缓存。此时会判断是否设置了头信息。如果是,则不再设置,也不会报错。
3、ob 缓存应用
将动态页面转换为真正的静态页面。
例如产品详细信息页面
转换为纯静态 html 页面
步:
①首先获取原创页面的所有输出内容。
②生成纯静态html页面,页面内容为上一步获取的内容
③ 以后访问原页面,直接换成纯静态页面即可。
案例实施:
①修改Home/Index控制器的detail方法
第一次访问页面时,获取页面内容,生成静态html页面
注意:不同产品页面内容不同,需要根据id生成不同的静态页面
例如 detail_36.html
生成静态页面后,直接跳转显示静态页面
重定向函数 TP框架封装的函数
注意与控制器重定向方法的区别。
② 稍后再访问此页面
首先判断静态页面是否存在,如果存在则直接跳转访问静态页面
③优化:获取页面内容,可以使用控制器的fetch方法
fetch方法的原理还是使用ob缓存技术。
4、真正的静态缓存生命周期
有效期设置原则:
有效期文件创建时间+5s
判断有效期的当前时间>有效期即将到期
使用PHP自带的filemtime函数获取文件的创建时间,该函数返回时间戳
代码实现:使用unlink删除文件;file_put_contents 函数默认覆盖写入。
三、伪静态
1、意义(理解)
伪静态是相对于真实静态的。通常,为了增强搜索引擎的友好性,我们会生成带有 文章 内容的静态页面,但有些朋友会实时显示一些信息。或者也想用动态脚本来解决一些问题。网站 内容不能以静态方式显示。但这失去了对搜索引擎友好的一面。如何在两者之间找到一个中间方法,这就引出了伪静态技术。它以html等静态页面的形式显示,但实际上是由ASP等动态脚本处理的。
要求:放一个动态脚本页面,使用静态html文件路径访问
也就是在浏览器地址栏中输入的访问地址看起来像一个静态的html文件,但实际上访问的是php脚本路径
2、配置
使用伪静态,需要使用apache的url重写机制
之前有一个访问模式的rewrite模式,暴露在TP中的URL
查看使用 URL 重写模式配置 apache 的步骤:
①打开apache的rewrite模块
②修改apache的主配置文件http.conf和虚拟主机配置文件
确保 Allo
所有配置项值为All
③ 使用.htaccess文件配置重写规则
w覆盖
④ 重启apache服务器。
对于伪静态,重写规则和url重写(隐藏入口文件)是有区别的。
3、简单的伪静态使用
①使用TP中的设置:
使用url重写的思路,隐藏入口文件后,在url末尾添加.html后缀
使url看起来像访问的域名下的多级目录中的html文件
TP 中的默认后缀设置对 U 功能生效。在网站中,需要用到url的地方,使用U函数生成。
还要修改一项配置: URL_MODEL => 2 //重写模式
除了使用 U 功能,还可以使用
__MODULE__/控制器名称/方法名称.html
__CONTROLLER__/方法名.html
②使用apache设置
使用apache的重写机制
例子:
真实地址:
地址:
修改 .htaccess 添加重写规则
含义:访问路径是域名/cart.html,那么真正的访问地址是域名/Home/Cart/cart
4、 防盗链
盗链是指服务商自身不提供服务,通过技术手段绕过其他对终端用户有利的接口(如广告),自行直接向终端用户提供其他服务商的服务的内容网站服务内容,欺骗终端用户的浏览和点击率。受益者不提供或提供很少的资源,而真正的服务提供者一无所获。
以图片为例,我们自己的网站中有很多图片。要访问图片,我们可以直接使用链接地址。
如果直接在另一个网站网页的img标签的src属性中使用我们网站的图片地址,就可以直接在我们的网站服务器上显示图片。这样对方就不需要消耗服务器的任何物理存储空间,也不需要消耗web服务器的请求资源。
另外,如果服务器的资源大小大到几MB的资源,这时候其他网站如果流量大的话,就会给我们自己的网站apache增加压力。
① 不允许其他网站访问我们服务器上的真实资源。
②控制对外提供资源的物理规模。
防盗链实现原理:用自定义地址替换真实地址
需要添加重写规则:修改.htaccess
在当前 网站 根目录下放一张 default.png 图片
效果:在另一个 网站 上访问这个 网站 的图像
注意:浏览器缓存问题,使用 ctrl + f5 强制刷新页面,会重新加载所有js、css和图片资源
优化:以上防盗链设置会影响富文本编辑器ueditor中的图片显示。优化规则如下:
四、概览
1、真静态、动态、伪静态对比
纯静态网页的优点:
1.访问者访问网页时,并不读取数据库,而是直接访问网站空间对应的文件。(直接读取文件)
2.纯静态网页对搜索引擎友好,最容易被搜索引擎找到收录。(简单收录)
3.因为在访问网页的时候,服务器不需要做太多的处理,对服务器的压力很小,所以处理高流量比较容易。(节省服务器压力)
4.一些面向数据库的攻击,比如SQL注入攻击,在面对静态网页时,往往很难从地址入手。(高安全性)
纯静态网页的缺点:
1.由于静态网页需要生成文件,当网站内容更新频繁,更新数据量大时,也会频繁写入服务器磁盘;(服务器的负担)
2.在不使用其他技术的情况下,如果改了模板,就必须重新生成所有相关的html页面,这在面对大量数据时并不是一件很好玩的事情。(模板修改,对应变化)
动态页面优势:
1.动态页面不需要生成html文件,这样可以节省服务器空间,这样我们可以把更多的资金放在数据库上,节省下来的服务器空间可以用来放更多的文件,比如图片附件;(节省服务器空间)
动态页面的缺点:
1.不像静态网页那么容易收录(收录难)
2.一些面向数据库的攻击,比如SQL注入攻击,在面对动态网页时往往很容易从地址入手(安全性低)
伪静态页面优势:
1.就URL的形式而言,伪静态地址可以和静态地址完全一样。普通访问者很难区分他们是真静态还是伪静态。同时,蜘蛛一般也会处理这种形式的网页。将其视为静态。(简单收录)
伪静态页面的缺点:
1.伪静态比动态消耗更多的服务器资源,因为网页地址需要按照预先设定的伪静态规则进行匹配,这个过程消耗资源。(消耗服务器资源)
2、应用场景说明
一个网站使用静态页面和伪静态页面还是动态页面与网站是否大没有直接关系,网站使用哪个页面完全取决于这个 网站 并输入。
从SEO的角度来看,行业资讯和综合门户网站整体使用真实的静态页面,因为它们需要让百度搜索引擎抓取页面来引导流量,以维持网站的生存。
另一方面,企业网站和社交网站一般使用伪静态和动态页面,因为它们一般不带来搜索引擎的流量,更注重其他推广方式。
从制作网页的角度来看,行业资讯和综合门户的内容太多了。为了方便用户,页面一般比较简单易懂,这样可以在首页放置更多的内容和栏目。企业网站和社交网站网页一般比较高,各种flash效果或者JS效果,只能用伪静态和动态页面来做。