SpringTang's Notes
===========================================================
qq也可以用
===========================================================

以前对qq不感冒,不过现在感觉还可以,至少用起来方便。


SpringTang 发表于:2007.09.14 18:08 ::分类: ( 生活琐事 ) ::阅读:(377次) :: 评论 (0)
===========================================================
利用压缩网页来提升网站浏览速度
===========================================================

本文转自: http://www.ibm.com/developerworks/cn/web/wa-lo-webcompress/index.html

网站的访问速度是由多个因素所共同决定的,这些因素例如应用程序的响应速度、网络带宽、服务器性能、与客户端之间的网络传输速度等等。其中最重要的一个因素是应用程序本身的响应速度,因此当你为网站性能所苦恼时,你第一个需要着手进行处理的便是尽可能的提升应用程序的执行速度,你可以使用缓存或者是优化代码的执行效率来提升应用程序的速度。

但是,本文并不是介绍如何来提升应用程序的执行效率,前面提到的只不过是为了防止您病急乱投医。在确保您的应用程序的性能已经达到足够好,同时服务器的性能也完全满足的情况下,不妨来试试网页压缩来进一步提升网页的浏览速度,而且非常重要的是,它完全不需要任何的成本,只不过是会让您的服务器CPU占用率稍微提升一两个百分点而已或者更少。

网页压缩是一项由WEB服务器和浏览器之间共同遵守的协议,也就是说WEB服务器和浏览器都必须支持该技术,所幸的是现在流行的浏览器都是支持的,包括IE、FireFox、Opera等;服务器有Apache和IIS等。双方的协商过程如下:

1. 首先浏览器请求某个URL地址,并在请求的头(head)中设置属性accept-encoding值为gzip,deflate,表明浏览器支持gzip和deflate这两种压缩方式(事实上deflate也是使用gzip压缩协议,下面我们会介绍二者之间的区别);
2. WEB服务器接收到请求后判断浏览器是否支持压缩,如果支持就传送压缩后的响应内容,否则传送不经过压缩的内容;
3. 浏览器获取响应内容后,判断内容是否被压缩,如果是则解压缩,然后显示响应页面的内容。

在实际的应用中我们发现压缩的比率往往在3到10倍,也就是本来50k大小的页面,采用压缩后实际传输的内容大小只有5至15k大小,这可以大大节省服务器的网络带宽,同时如果应用程序的响应足够快时,网站的速度瓶颈就转到了网络的传输速度上,因此内容压缩后就可以大大的提升页面的浏览速度。

接下来我们介绍几种常用的环境下如何启用网页压缩功能。

1. 纯Tomcat服务器

如果您的WEB应用程序是跑在Tomcat服务器下的,而且直接使用Tomcat所提供的HTTP服务,那建议你马上动手,因为实在是太简单了,你只需要在server.xml配置文件中给HTTP Connector增加一个compression的参数值为on并重启Tomcat服务器就立刻生效,配置如下:


maxThreads="150" connectionTimeout="20000"
redirectPort="8443" compression="on"/>

Tomcat采用的是HTTP/1.1的GZIP压缩协议,它会根据浏览器送过来的请求中的accept-encoding值是否包含gzip来判断浏览器是否支持gzip压缩协议,如果浏览器支持就启用gzip压缩,否则就不进行任何压缩处理。Tomcat中还有另外一个参数compressableMimeType,这个参数可以用来指定压缩哪种类型的内容,例如可以指定该配置值为:text/html,text/plain ,则只压缩contentType为text/html和text/plain的页面,不过您最好也将css和javascript文件也算在压缩的文件类型中,因为这两者的压缩效果也十分的明显。

2. Apache服务器

在apache1.3版本,大家常用mod_gzip对输出内容进行压缩,现在主流的浏览器都支持gzip解压缩。在apache2下,这个模块换名为mod_deflate,对应的模块文件名是mod_deflate.so。mod_gzip本文不做介绍,下面描述一下在Apache2下如何启用并配置mod_deflate模块。默认安装的Apache不管是Windows还是Linux/Unix,都是不启用该模块的, Linux/Unix下甚至不带该模块,你需要手工编译这个模块。

下面我们分别介绍在Windows和Linux操作系统下如何启用并配置mod_deflate模块。

在Windows下采用安装程序安装的Apache服务器已经带有deflate所需要的模块 mod_deflate.so和mod_headers.so,我们只需要在httpd.conf配置文件中启用并进行相关的配置即可,配置如下:

LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so

# Insert filter
SetOutputFilter DEFLATE
# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4.0[678] no-gzip
# MSIE masquerades as Netscape, but it is fine
# BrowserMatch MSIE !no-gzip !gzip-only-text/html
# NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
# the above regex won't work. You can use the following
# workaround to get the desired effect:
BrowserMatch MSI[E] !no-gzip !gzip-only-text/html
# Don't compress images
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary

而如果是Linux/Unix操作系统,如果你没有在编译安装的过程中将所需要的两个模块mod_deflate和mod_headers编译进去的话,那就稍微有点麻烦,首先我们先看如何在编译安装Apache过程中也同时编译这两个模块,请在执行configure程序时增加两个参数分别是

# ./configure --enable-deflate --enable-headers

这样在编译完Apache后就可以直接在httpd.conf中启用并配置deflate模块了,配置的方法跟Windows平台下是相同的。

如果说您的Apache已经在运行了,不想再重新编译一次,那也可以选择只编译deflate模块所需的文件mod_deflate.c和mod_headers.c。这两个文件位于{apache-src}/modules/filters/目录下(其中{apache-src}为apache源文件所在的目录)。使用如下命令来单独编译这两个源文件。

# {apache-bin}/apxs -i -a -c {apache-src}/modules/filters/mod_deflate.c
# {apache-bin}/apxs –i –a –c {apache-src}/modules/filters/mod_headers.c

其中{apache-bin}为Apache安装目录下的bin目录,接下来在httpd.conf直接配置该模块即可。

很多时候你在单独编译deflate模块的时候可能会碰到编译错误,提示是:

Cannot load /opt/apache/modules/mod_deflate.so into server: /opt/apache/modules/mod_deflate.so: undefined symbol: deflate

解决的方法如下:

编辑/usr/local/apache2/bin/apr-config文件修改其中的LDFLAGS值为"-lz"
然后再重新编译mod_deflate模块,apxs -ica mod_deflate.c即可。

为了省却不必要的麻烦,请尽量在编译安装时直接加上--enable-deflate --enable-headers参数。

3. IIS服务器

微软的IIS服务器同样也是目前用得最多的WEB服务器之一,而且用来运行ASP页面也是必不可少的。IIS6本身支持gzip压缩,IIS5就比较费劲了,你可以找一些第三方的组件来处理,例如httpzip,网址是:http://www.port80software.com/products/httpzip/?vid=3354166,不过这玩意是收费的。接下来我们介绍如何在IIS6中启用压缩功能。

打开Internet信息服务(IIS)管理器,右击"网站"->"属性",选择"服务"。在"HTTP压缩"框中选中"压缩应用程序文件"和"压缩静态文件",按需要设置"临时目录"和"临时目录的最大限制",如下图所示:

接下来配置gzip组件,在Internet信息服务(IIS)管理器,点击"Web服务扩展"->"增加一个新的Web服务扩展...",在"新建Web服务扩展"框中输入扩展名"HTTP Compression",添加"要求的文件"为C:WINDOWSsystem32inetsrvgzip.dll,选中"设置扩展状态为允许",如下图所示:

还没完呢,我们还需要修改一个配置文件,修改之前请先停止IIS服务,打开C:WindowsSystem32inetsrvMetaBase.xml,这个文件很大,找到下面一段信息:


HcCompressionDll="%windir%system32inetsrvgzip.dll"
HcCreateFlags="1"
HcDoDynamicCompression="TRUE"
HcDoOnDemandCompression="TRUE"
HcDoStaticCompression="TRUE"
HcDynamicCompressionLevel="0"
HcFileExtensions="htm
html
txt"
HcOnDemandCompLevel="10"
HcPriority="1"
HcScriptFileExtensions="asp
dll
exe"
>

增加一些要进行压缩的文件后缀,其中HcFileExtensions是静态文件的扩展名,增加js和css等;HcScriptFileExtensions为动态文件的扩展名,增加aspx,保存后启动IIS即可生效。

最后我们介绍如何来测试前面所做的工作是否起效,你可能会觉得很奇怪,配置好了,用浏览器打开页面正常,查看页面源码,内容并没有变化,大小也跟原来一样,怎么回事呢?这是因为浏览器已经把内容解压了的结果,有两个方法来判断压缩是否生效:第一,查看WEB服务器的日志,不管是Apache或者是IIS,二者的访问日志格式都差不多是下面这种格式:

127.0.0.1 - - [14/May/2006:08:44:28 +0800] "GET /manual/style/css/manual.css HTTP/1.1" 200 19351

最后两个数字分别是HTTP的结果码(200表示OK),19351表示的是响应内容的大小,把这个大小跟你在浏览器上查看源码的大小比较一下就可以知道是否生效。另外一种方法就是自己写一个HTTP客户端的小程序并设置Accept-Encoding的值为gzip,deflate,由这个程序去请求服务器端的某个URL地址,然后打印出响应的内容,如果是一堆乱码,恭喜你,配置成功。下面是一段Java写的测试客户端代码(需要用到commons-httpclient包):

HttpClient http = new HttpClient();
String url = "
http://www.dlog.cn/javayou";
GetMethod get = new GetMethod(url);
try{
System.out.println("fetching url : "+ url);
get.addRequestHeader("accept-encoding", "gzip,deflate");
int er = http.executeMethod(get);
if(er==200){
System.out.println(get.getResponseContentLength());
String html = get.getResponseBodyAsString();
System.out.println(html);
System.out.println(html.getBytes().length);
}
}finally{
get.releaseConnection();
}

相关网址

Apache http://httpd.apache.org
Tomcat http://tomcat.apache.org
IIS 6.0 http://www.microsoft.com/windowsserver2003/iis/
mod_deflate详细配置文档 http://httpd.apache.org/docs/2.2/mod/mod_deflate.html


SpringTang 发表于:2007.09.06 17:32 ::分类: ( 软件开发杂粹 ) ::阅读:(7220次) :: 评论 (0)
===========================================================
mysql 远程链接错误 ERROR 1130
===========================================================

用MySQL-Front连接mysql的时候发生的这个错误
ERROR 1130: Host 129.2.1.100 is not allowed to connect to this MySQL server

1。 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改称”%”

mysql -u root -p

mysql>use mysql;

mysql>update user set host = ‘%’ where user =’root’;

mysql>flush privileges;

mysql>select ‘host’,'user’ from user where user=’root’;

现在就可以连接了!

2. 授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。

GRANT ALL PRIVILEGES ON *.* TO‘myuser’@'%’IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;

如果你想允许用户myuser从ip为129.2.1.22的主机连接到mysql服务器,并使用mypassword作为密码

GRANT ALL PRIVILEGES ON *.* TO‘myuser’@‘129.2.1.22’IDENTIFIED BY ‘mypassword’ WITH


SpringTang 发表于:2007.09.06 10:56 ::分类: ( 其他数据库技术 ) ::阅读:(2953次) :: 评论 (0)
===========================================================
Information Codes 及网络状态
===========================================================
Error # Info Error Code:
  • 100 Info Continue
  • The request was successful. The process can now continue.
  • 101 Info Switching Protocols
  • The request for the server to switch protocols was accepted, such as a switch from ftp to http.
Success Codes Error # Info Error Code
  • 200 Info OK
  • The item requested of the server is available (keep in mind, available, not accepted or completed).
  • 201 Info Created
  • 202 Info Accepted
  • 203 Info Non-Authoritative Information
  • 204 Info No Content
  • 205 Info Reset Content
  • 206 Info Partial Content
  • Redirection Codes
  • Error # Info Error Code
  • 300 Info Multiple Choices
  • 301 Info Moved Permanently
  • 302 Info Found
  • 303 Info See Other
  • 304 Info Not Modified
  • 305 Info Use Proxy
  • 307 Info Temporary Redirect
  • Client Error Codes
  • Error # Info Error Code
  • 400 Info Bad Request
  • 401 Info Unauthorized
  • 402 Info Payment Required
  • 403 Info Forbidden
  • 404 Info Not Found
  • 405 Info Method Not Allowed
  • 406 Info Not Acceptable
  • 407 Info Proxy Authentication Required
  • 408 Info Request Timeout
  • 409 Info Conflict
  • 410 Info Gone
  • 411 Info Length Required
  • 412 Info Precondition Failed
  • 413 Info Request Entity Too Large
  • 414 Info Request-URI Too Large
  • 415 Info Unsupported Media Type
  • 416 Info Requested Range Not Satisfiable
  • 417 Info Expectation Failed
Server Error Codes Error # Info Error Code
  • 500 Info Internal Server Error
  • 501 Info Not Implemented
  • 502 Info Bad Gateway
  • 503 Info Service Unavailable
  • 504 Info Gateway Timeout
  • 505 Info HTTP Version not supported
 查看全文
SpringTang 发表于:2007.08.31 17:10 ::分类: ( 网络、信息安全及系统集成 ) ::阅读:(381次) :: 评论 (0)
===========================================================
ST's Ch02 修改Oracle User Process。
===========================================================

1:
第一种方法:
在 Oracle 企业管理器例程-->会话中可以查看当前连接到数据库的详细信息
第二种方法:
在oracle安装目录下,例如:
oracleadminxxxpfileinit.ora 找到 processes=150
其中XXX代表你的数据库实例名
这个值就是Oracle 的最大连接数,默认安装时是150个连接,也可以对这个值进行修改,但是要注意的是:用户最大连接数跟你的硬件配置有关,所以要谨慎
第三种方法:
SQLPLUS下运行:alter system set processes=250 scope=spfile;

2:
strings SPFILEORACLE10.ORA > initoracle10.ora
然后按以上1中说法,改process的值
并删除SPFILEORACLE10.ORA ,因为默认启动参数文件是spfile
等启动完成后,用下面语句建立spfile
create spfile from pfile;

3,spfile文件坏掉可以新建一个通过 pflie ,并在文件最后加上 procees = 250,读取是 读取最后的值(这个不是很清楚待补充)


SpringTang 发表于:2007.08.31 16:49 ::分类: ( Oracle tour ) ::阅读:(1405次) :: 评论 (9)
===========================================================
ST 's Ch01 Oracle常识及常用SQL
===========================================================
Oracle不得不知道的问题
  1. 一个表空间只能属于一个数据库
  2. 每个数据库至少有一个控制文件(建议3个并分别存在不同的磁盘上)
  3. 每个数据库至少有一个表空间(System表空间)
  4. 每个数据库至少两个联机日志文件(redoLog文件)
  5. 一个数据文件只能属于一个表空间
  6. 一个数据文件一旦加入到一个表空间中就不能被移除,也不能加入到其他表空间中
  7. 建立新的表空间需要建立新的数据文件
  8. 数据文件被Oracle格式化为Oracle块,且块的大小在建立数据库是指定,以后不能更改
  9. 单一一个事务不能跨越多个回滚段
  10. 索引表不含ROWID
  11. 一个Oracle块的最大大小为16KB(2K,4K,8K,16K)
  12. 一个Oracle数据库可以有多个Oracle实例启动
  13. 一套操作系统中只能安装一个版本的Oracle
 查看全文
SpringTang 发表于:2007.08.31 16:22 ::分类: ( Oracle tour ) ::阅读:(792次) :: 评论 (0)
===========================================================
Standdby Oracle 10G的一些使用命令
===========================================================
sqlplus /nolog
conn sys/password@physicalstandby
--启动到恢复模式
startup mount;
alter database recover managed standby database disconnect from session;
--从恢复管理模式切换到只读模式
alter database recover managed standby database cancel;
alter database open;
--从只读模式切换到恢复管理模式
alter database recover managed standby database disconnect from session;
--关闭standby数据库
alter database recover managed standby database cancel;
shutdown immediate;
--直接启动到只读模式
startup;
--通过MRP0进程是否存在确认当前数据库所处的模式
select process, status from v$managed_standby;
--把备用数据库激活成主数据库
--alter database activate standby database

SpringTang 发表于:2007.08.30 18:23 ::分类: ( Oracle tour ) ::阅读:(347次) :: 评论 (0)
===========================================================
oracle 杂类
===========================================================
explain plan 查看全文
SpringTang 发表于:2006.08.24 11:25 ::分类: ( Oracle tour ) ::阅读:(545次) :: 评论 (0)
===========================================================
MVC在Web系统中的模式与应用
===========================================================

面向对象的设计模式是经验的总结,MVC思想是原先用于构建用户界面的。这篇文章主要论述了如何在新的Web应用领域中使用设计模式和MVC架构。文章首先介绍了设计模式的概念和特点,以及MVC架构的设计思想,并分析了MVC架构中包含的几种主要的模式。然后根据Web应用系统的特点,就如何应用模式和MVC架构提出了一些设计思路。

 查看全文
SpringTang 发表于:2006.08.23 10:12 ::分类: ( Java research ) ::阅读:(314次) :: 评论 (0)
===========================================================
Chapter 1 JDBC,PROCEDURE学习笔记
===========================================================

下面是一个sample讲了oracle如何与java连接 工作.

 查看全文
SpringTang 发表于:2006.06.27 14:44 ::分类: ( Oracle tour ) ::阅读:(576次) :: 评论 (0)
===========================================================
Failed to restart service
===========================================================

Oracle 10g也出现

Failed to start service, error 1053.
TNS-12536: TNS: 操作可能阻塞
TNS-12560: TNS: 协议适配器错误
TNS-00506: 操作可能阻塞
32-bit Windows Error: 997: Unknown error

在net8 assistant 中增加一个监听器试试。或则,如果你的操作系统是WIN2000,在服务中修改 OracleOraHome81TNSListene服务的路径。具体在注册表中HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesOracleOraHome81TNSListener下面的健:ImagePath修改为具体的路径:比如f:OracleOra81BINTNSLSNR

参考别人的资料有如下:

 查看全文
SpringTang 发表于:2006.06.27 14:18 ::分类: ( Oracle tour ) ::阅读:(783次) :: 评论 (1)
===========================================================
sql性能优化
===========================================================

选用适合的ORACLE优化器

以前的版本有:ORACLE的优化器共有3种:
a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性)

 查看全文
SpringTang 发表于:2006.06.23 13:03 ::分类: ( Oracle tour ) ::阅读:(277次) :: 评论 (0)
===========================================================
《SQL SELECT语法》
===========================================================

转载----

 查看全文
SpringTang 发表于:2006.06.22 17:52 ::分类: ( Oracle tour ) ::阅读:(307次) :: 评论 (0)
===========================================================
不重复的数据显示SQL
===========================================================

sql tuning 不重复的数据显示SQL sample

 查看全文
SpringTang 发表于:2006.06.22 17:11 ::分类: ( Oracle tour ) ::阅读:(965次) :: 评论 (0)
===========================================================
在Oracle中存取BLOB对象实现文件的上传和下载
===========================================================

转---基于上述原因,先列出我们的开发环境,免得有人配不出来,招人唾骂。

数据库 Oracle 9i

应用服务器 BEA Weblogic 8.11

开发工具 JBuilder X

 查看全文
SpringTang 发表于:2006.06.21 16:02 ::分类: ( Java research ) ::阅读:(1419次) :: 评论 (10)
自我介绍
切换风格
新闻聚合
博客日历
文章归档...
最新发表...
最多评论文章...
博客统计...
Blog信息
网站链接...