网站优化---页面静态化技术

news/2024/5/17 18:19:02/文章来源:https://blog.csdn.net/sallycnn/article/details/79559289

一:

首先先区分一下动态页面和静态页面的区别

动态文件:PHP脚本、Java脚本等

动态文件的执行过程:词法、语法分析 -> 编译 -> 渲染输出

静态文件:HTML文件

从加载速度上可以看出,静态文件明显比动态文件速度快

二:静态文件的分类

真静态:真正的静态文件(访问时候的地址是动态地址,但实际上是静态文件),目的是为了减轻数据库服务器的压力,提高访问速度

伪静态:不是真正的静态文件,(但是访问的时候的网址是静态网址,但实际访问的是动态文件),目的是为了SEO推广,方便百度搜索引擎进行搜索,

三:实现方法

真静态:OB缓冲技术;模板替换术

伪静态:使用PHP脚本进行实现;通过web进行配置实现

四:实现方法及原理

OB缓存

 1实现原理

  PHP执行过程中,存在一个缓冲区output_buffering

  oboutput_buffering(输出缓存),用于缓存响应主体的数据内容。

第一种方式:在php.ini文件中,

第二种方式:在页面中使用ob_start()函数,来开启。

两种方式的区别是,ob_start()只在当前页面有效,推荐第二种方式来完成。

常用函数

ob_start( );开启

ob_get_contents();获取ob缓存里面的数据内容。

ob_clean();//清空ob缓存里面的数据,不关闭ob缓存。

ob_end_clean();//清空ob缓存里面的数据,并关闭ob缓存。

ob_flush();//ob缓存里面的数据给刷新(移动,推送)到程序缓存,不关闭ob缓存。

ob_end_flush();//ob缓存里面的数据给刷新(移动,推送)到程序缓存,并关闭ob缓存。

3、实现页面静态化的三种方式

  ①访问时生成静态文件(不推荐)

     控制好静态文件的更新时间

  ②在后台手动生成静态文件

     后台手动更新

  ③使用定时任务定期生成静态文件(推荐使用)

最佳做法:②③的结合体,先后台手动生成一次静态文件,然后定时更新,如果在更新的时间内,定时脚本没有运行,就手动清除缓存(删除缓存文件)


模板替换技术

1、实现方式:

1)在添加新闻内容的时候,生成对应的新闻详情的静态页面。

2)在修改新闻内容的时候,要重新生成新闻详情的静态页面。

3)在访问新闻详情页面的时候,直接访问生成的静态页面

真静态的应用场景

1)网站页面访问比较频繁的,但是更新不是很频繁,比如一些新闻类型的网站详情页及网站的首页

2)不适合于要求实时更新的一些网站,比如股票及银行类型的网站

3)一般来说后台不用做真静态


伪静态

先来看一个网址:

http://jingyan.baidu.com/article/90bc8fc804f4faf652640c6c.html  

从形式上看是一个静态地址,实际上还是访问的动态地址,

比如:访问:http://www.abc.com/news-sport-id123.html

实际上是:http://www.abc.com/news.php?type=sprot&id=123;

作用:主要是利于seo推广,静态页面的方式,比较容易被搜索引擎给搜集


第一种:apache的重写机制

实现原理:

使用apache/nginxrewrite机制(就是一个url的重写机制

在apache/conf/httpd.conf开启(开启重写模块

配置方式:直接在配置虚拟主机处进行配置 ,每次修改apache的文件都需要重启apache

在配置虚拟机时给对应的域名开启重写机制

权限控制   先拒绝后允许

在需要重写机制的文件夹的下面新建文件    .htaccess   并在.htaccess中写入重写规则

比如:

重启apache

CI框架中的重写规则

第一步:在虚拟主机开启  AllowOverride All

第二步: //配置伪静态时 在CI框架的配置文件config中 修改URL协议为

$config['uri_protocol']= 'PATH_INFO';


nginx的重写机制

2.在需要重写机制的文件夹写新建   .htaccess  文件  并在文件中写入相应的规则

比如:

3.在ngniz的配置文件ngnix.conf  或者 引入的.conf文件中引入重写规则的文件<文件放在server内location外>


4.重启nginx  .php-fpm

伪静态的使用遵循原则

主要是为了搜索引擎的收集

只要url不要过长,过多的参数,同时不要让蜘蛛陷入链接黑洞,现在的搜索引擎技术对待动态链接和静态链接基本没有区别。因此,如果不方便动态链接静态化的站长朋友,也没必要将太多精力花在这方面。另外,伪静态是通过服务器配置将动态映射成静态页面,多了一个映射步骤,伪静态处理更加占用服务器cpu资源。

如何选择真静态和伪静态?

网站实时性要求高,不要使用静态化(真静态,伪静态均不适宜)。

如果网站访问量较小,没有必要使用静态化技术(网站后台)

如果数据项目文件不多,但是访问频率极大,建议使用真静态,比如新浪新闻频道。

如果数据项目海量(论坛),使用真静态会生成海量的html静态页面,建议使用伪静态。

在一个大型网站中,静态化技术是综合使用的,这个需要大家经验的积累,多做项目。(

网站:新闻频道,真静态,基金频道:伪静态,管理后台:不使用静态技术)

后台:  管理控制前台生成真静态或者更新静态页面


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_855492.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站优化---解决网站的大流量问题

首先解决网站的大流量问题可以从一下几个方面进行 1、防盗链 2、减少http请求 3、配置浏览器缓存 4、文件配置压缩&#xff0c;减少数据传输量 5、占流量大的资源单度部署服务器&#xff08;比如云存储&#xff09; 6、花钱买带宽 7、动静分离&#xff08;动态文件和静态…

网站优化---mamcache的安装及memcached安装

Linux下安装mamcached和memcached的扩展包 一&#xff1a;Linux下安装memcached服务端 yum安装 yum -y install memcached 启动 /usr/bin/memcached -d root 查看是否启动 ps -ef|grep memcached 二、安装客户端PHP1操作memcache的memcached扩展 编译安装&…

推荐一个自学java非常好的网站!

http://how2j.cn?p7870 这个是一个在淘宝有8年工作经验的大神制作的一个java自学网站&#xff0c;里面有java基础知识&#xff0c;大型实战项目以及很多好用的java工具&#xff0c;针对每个知识点都结合非常有趣的lol举例&#xff0c;让你在快乐中学会java&#xff01; 这个…

超有趣的java学习网站,打LOL一样过瘾!

作为一个java学习者&#xff0c;一直找这样的项目&#xff0c;准备作为个人项目&#xff0c;找工作时候的谈资&#xff1a; 贯穿整个java知识点的&#xff0c;用到SSH或者SSM框架&#xff0c;这样就可以让自己对java有一个整体的&#xff0c;清晰的认识。 什么烂大街的OA人事…

Web设计之颜色设计 让你的网站熠熠生辉

今天给大家讲讲Web Design中的颜色设计&#xff08;Color Design&#xff09;。 当你第一次点进一个网页时&#xff0c;吸引你的第一眼是什么&#xff1f;内容&#xff1f;字体&#xff1f;布局&#xff1f;都不是&#xff0c;最吸引你第一眼的&#xff0c;是颜色。为什么会这样…

如何设计一个吸引访问者的网站主页?

1.你的网站首页应该有什么&#xff1f; 你网站的主页必须包含清晰的信息。最重要的主页应该遵循新的趋势。不应该有不必要的信息干扰用户或与网站目的无关的信息。所有的数据必须整洁有序&#xff0c;最好是段落&#xff0c;以便用户更容易和舒适地阅读和处理信息。如果广告产品…

支付宝:web页面扫码支付、网站支付、支付宝即时到账 + springmvc

一、场景&#xff1a;公司需要在网站上进行支付宝支付。 二、API&#xff1a;使用支付宝开放平台的支付能力-即时到账接口。支付宝开放平台链接 三、分析&#xff1a; 1、支付宝的文档比较容易看&#xff0c;主要是有相应的DEMO&#xff0c;我这里看的DEMO是 JAVA-UTF-8版本。…

微信:微信扫码支付、调用统一下单接口、网站支付 + springmvc

一、场景&#xff1a;公司需要在网站上进行微信支付。 二、API&#xff1a;使用微信开放平台的接入微信支付 -扫码支付。微信支付开发者平台链接三、分析&#xff1a; 接入扫码支付&#xff08;包含PC网站支付&#xff09;包含三个阶段&#xff0c;问这里只讲使用&#xff0c;也…

JAVA 模拟网站注册登录功能,用文件代替数据库

JAVA 模拟网站注册登录功能 代码太长&#xff0c;粘不上去&#xff0c;只能截图了&#xff0c;看起来可能会比较困难&#xff0c;抱歉~ 操作过程注释写的很清楚&#xff0c;我就不多说了

ASP.NET网站管理工具无法连接SQLamp;n…

所遇问题&#xff1a;进入Visual Studio 2010的“网站”菜单的“ASP.NET 配置”后&#xff0c;点击“安全”后&#xff0c;出现如下的出错信息&#xff1a; 测试“AspNetSqlProvider”&#xff0c;出现如下的出错信息&#xff1a;未能建立数据库连接。如果尚未创建 SQL Server …

Java 爬虫遇到需要登录的网站,该怎么办?(三)

这是 Java 网络爬虫系列博文的第二篇&#xff0c;在上一篇 Java 网络爬虫&#xff0c;就是这么的简单 中&#xff0c;我们简单的学习了一下如何利用 Java 进行网络爬虫。在这一篇中我们将简单的聊一聊在网络爬虫时&#xff0c;遇到需要登录的网站&#xff0c;我们该怎么办&…

(10)基于Python模拟网站的登录

最近利用工作之余&#xff0c;把之前研究的东西又翻看了一遍&#xff0c;发现其中一个数据表格的导出&#xff0c;并没有对网站的登录进行模拟。本着打破砂锅问到底的精神&#xff0c;再一次打开该网站&#xff0c;研究了该网站的登录是怎么一回事的。 首先&#xff0c;打开抓包…

基于struts1.2的网站源码组织结构

结合自己弄的一个小项目,总结一下在MyEclipse下&#xff0c;使用Strut1.2框架开发网站的源码组织结构 &#xff08;stuts1.2的架构基本上是这样的了~&#xff09; 下图左边是源码组织结构,右边为相应的说明

数据库有用网站

分享下常用的数据库网站&#xff0c;希望对大家有用 数据库SQL基础知识&#xff1a;http://www.w3school.com.cn/sql/index.asp ChinaUnix: http://www.chinaunix.net/ itpub网站&#xff1a; http://www.itpub.net/ MySQL中文社区&#xff1a;http://www.mysqlpub.com/fo…

个人创业楷模:一个人,一个网站,5.75亿美元卖掉

个人创业楷模&#xff1a;一个人&#xff0c;一个网站&#xff0c;5.75亿美元卖掉&#xff08;转&#xff09; 一个人&#xff0c;24岁时写了一个网站&#xff0c;每天只工作2小时&#xff0c;他还嫌工作量太大。他每天从谷歌广告赚好几万美元&#xff0c;不用合伙人&#xff…

Apache网站服务器

Apache网站服务基础 Apache简介 Apache HTTP Server 是开源软件项目的杰出代表&#xff0c;基于标准的HTPP网络协议提供网页浏览服务&#xff0c;在Web服务器领域中长期保持着超过半数的份额。Apache服务器可以运行在Linux、UNIX、Windows等多种操作系统平台中。 Apache的主…

网站架构常识

1、DNS域名解析&#xff08;步骤&#xff09; 2、网站架构演变过程 &#xff08;1&#xff09;传统架构 传统项目分为三层架构&#xff0c;将业务逻辑层、数据库访问层、控制层放入在一个项目中 使用SSH或者SSM技术。 优点:适合于个人或者小团队开发&#xff0c;不适合大团队…

不修改代码就能优化ASP.NET网站性能的一些方法

阅读目录 开始配置OutputCache启用内容过期解决资源文件升级问题启用压缩删除无用的HttpModule其它优化选项本文将介绍一些方法用于优化ASP.NET网站性能&#xff0c;这些方法都是不需要修改程序代码的。它们主要分为二个方面&#xff1a;1. 利用ASP.NET自身的扩展性进行优化。2…

IIS日志-网站运维的好帮手

阅读目录 开始IIS日志包含了哪些信息IIS日志的配置如何分析IIS日志推荐的IIS日志分析方法IIS日志中的异常记录再谈 scwin32status64寻找性能问题寻找可改进的目标程序架构对IIS日志分析过程的影响对于一个需要长期维护的网站来说&#xff0c;如何让网站长久稳定运行是件很有意义…

【Python成长之路】Python爬虫 --requests库爬取网站乱码(\xe4\xb8\xb0\xe5\xaf\x8c\xe7\x9)的解决方法

【写在前面】 在用requests库对自己的CSDN个人博客&#xff08;https://blog.csdn.net/yuzipeng&#xff09;进行爬取时&#xff0c;发现乱码报错&#xff08;\xe4\xb8\xb0\xe5\xaf\x8c\xe7\x9&#xff09;&#xff0c;如下图所示&#xff1a; 网上 查找了一些方法&#xff0c…