详解HTTP协议与服务

客户端请求

[root@localhost ~]# telnet 80Trying 74.125.128.199…Connected to Escape character is ‘^]’.GET / HTTP/1.1HOST:

(末尾有一个空行。第一行指定方法、资源路径、协议版本;第二行是在1.1版里必带的一个header作用指定主机)

服务器响应:

HTTP/1.1 200 OKDate: Thu, 22 Aug 2013 14:06:47 GMTExpires: -1Cache-Control: private, max-age=0Content-Type: text/html; charset=Big5Set-Cookie: PREF=ID=191d6c8d0bb04095:FF=0:NW=1:TM=1377180407:LM=1377180407:S=u8OwwZ_w0a5YzJLT; expires=Sat, 22-Aug-2015 14:06:47 GMT; path=/; domain=.google.com.hkSet-Cookie: NID=67=Jb4v4isJQXT_4WKdwNqVJfT2nJwzArUy_lHzpCYbs5hTAKyFj6-EUAS3Tk5E5r-axhTXuvwGDKP0JZ5DEM8ReCJ3OhTREoJwioqfDWBMrNlg99jGQBBwBa9BZqbeSwKd; expires=Fri, 21-Feb-2014 14:06:47 GMT; path=/; domain=.google.com.hk; HttpOnlyP3P: CP=”This is not a P3P policy! See ?hl=en&answer=151657 for more info.”Server: gwsX-XSS-Protection: 1; mode=blockX-Frame-Options: SAMEORIGINAlternate-Protocol: 80:quicTransfer-Encoding: chunked

Worker工作模式:

特点:主进程产生子进程,一个子进程产生多个线程,每个线程响应一个请求,各个线程独立的处理请求。

Event:(在HTTP-V2.4版本引用了此模式,在V2.2是作为测试模块)

事件驱动模式

四、Apache的安装于配置

使用yum方式安装(源码安装的方式请参照 )

yum installhttpd -y

HTTP的相关信息:

服务脚本:/etc/rc.d/init.d/httpd

运行目录:/etc/httpd

配置文件:/etc/httpd/conf/

主配置文件:httpd.conf

扩展配置:/etc/httpd/conf.d/*.conf

网页文件目录(DocumentRoot):/var/www/html

详解Apache主配置文件的常用选项

[root@localhost conf.d]# vim /etc/httpd/conf/httpd.conf

ServerRoot “/etc/httpd”#软件安装目录PidFile run/httpd.pid#指定pid文件KeepAlive Off#关闭永久连接MaxKeepAliveRequests 100#最多客户端连接数KeepAliveTimeout 15#客户端超时时间<IfModule prefork.c>#prefork模式StartServers8#开机启动的进程MinSpareServers 5#最小空闲进程数MaxSpareServers 20#最大空闲进程数ServerLimit256#单个进程的最大并发量MaxClients256#单个进程允许连接的客户端数MaxRequestsPerChild 4000#单个进程最大处理请求数</IfModule><IfModule worker.c>#work工作模式StartServers4#开机启动的进程数MaxClients300#最大客户端数MinSpareThreads25#最小空闲线程数MaxSpareThreads75#最大空闲线程数ThreadsPerChild25#每进程最多产生多少线程MaxRequestsPerChild 0#每个子进程在其生存期内允许伺服的最大请求数量</IfModule>Listen 80#监听端口User apache#以apache用户身份运行Group apache#以apache组的身份运行DocumentRoot “/website”#指定网站的站点(此处修改为/website)<Directory /website>#定义站点的权限Options noneAllowOverride NoneOrder allow,denyAllow from all</Directory>DirectoryIndex index.html index.html.varErrorLog logs/error_logLogLevel warnLogFormat “%h %l %u %t \”%r\” %>s %b”common #定义日子格式LogFormat “%{Referer}i -> %U”refererLogFormat “%{User-agent}i”agentCustomLog logs/access_logcombinedServerSignature OnAlias /icons/”/var/www/icons/”#定义别名<Directory “/var/www/icons”>Options Indexes MultiViews FollowSymLinksAllowOverride NoneOrder allow,denyAllow from all</Directory><IfModule mod_dav_fs.c>DAVLockDB /var/lib/dav/lockdb</IfModule>ScriptAlias /cgi-bin/”/var/www/cgi-bin/”#定义CGI别名<Directory “/var/www/cgi-bin”>AllowOverride NoneOptions NoneOrder allow,denyAllow from all</Directory>

注释:

第4行:开启永久连接功能以后,下面两行才能生效

第43行:服务器使用alias可以隐藏站点,以提高网站的安全性

第29行:定义站点的访问权限

第7-14行:设置perfork工作模式的属性,此处可以更具站点需要进行调优

第15-23行:设置worker工作模式的属性,此处可以更具站点需要进行调优

第22行:将MaxRequestsPerChild设置成非零值有两个好处:

可以防止(偶然的)内存泄漏无限进行,从而耗尽内存。

给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。

1、网站访问目录的权限设置

<Directory “/var/www/html”>#默认网站存放目录Options Indexes FollowSymLinksAllowOverride NoneOrder allow,denyAllow from all</Directory>

注释:

第2行:Options:

Indexes: 索引文件(一般不是下载站点建议关闭此功能)

FollowSynLinks: 是否跟随软链接文件

ExecCGI:是否允许执行CGI脚本;

None:关闭所有功能

All:开启所有功能

第3行: AllowOverride None 是否允许覆盖

第4行: Orader allow,美国空间,deny 先拒绝后允许

第5行:Allow from all 允许所有

通过以上对权限的说明,不知道你是否已经理解,下面我们举例说明一下。。

例1.

有一些穿高跟鞋走不到的路,

详解HTTP协议与服务

相关文章:

你感兴趣的文章:

标签云: