您的位置:首页 > 理论基础 > 计算机网络

HTTP服务应用详解及相关配置

2013-08-26 22:04 537 查看
第一部分 HTTP服务应用详解一、HTTP协议简介
HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从Web服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。因此HTTP事务是由一个请求以及与其对应的响应报文组合起来的。 HTTP协议的主要特点:1、支持客户/服务器模式。2、简单快速:客户向服务器请求服务时,只需传送请求方法和路径。3、灵活:HTTP允许传输任意类型的数据对象。4、无连接:无连接的含义是限制每次连接只处理一个请求。5、无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。二、HTTP服务的请求方法GET:客户端从服务器获取资源,客户端发出的为完整的请求。 PUT:客户端向指定资源位置上传其最新内容。 DELETE:请求服务器删除Request-URI所标识的资源。
HEAD:客户端仅请求响应首部,则服务器只返回响应的首部。
POST:向指定资源提交数据进行处理请求,如提交表单。
OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法。
TRACE:追踪一个资源请求中间所经过的代理。
三、HTTP协议的报文格式
1、起始行
2、首部:Host
3、主体
请求报文格式:Request

<method>   <request-URL>   <version>
#请求方法   请求资源路径    所使用HTTP协议版本
<headers>
#标题、头文件
<entity-boday>
#实体主题


响应报文格式:Response

<version>   <status>   <reason-phrase>
#版本       状态码      原因管理
<headers>
#标题、头文件
<entity-boday>
#实体主题
四、HTTP的报文首部

1、通用首部:请求和相应均可使用

# connection  指定连接
# date  报文创建时间
# via  所经过的代理服务器
2、请求首部:只能用于请求
# Host  所请求的主机
# Referer  提供的包含当前请求URI文档的URL
# Accept  接受的MIME类型
# Accept-Charset  接受的字符集
# Accept-Encoding  接受的编码
# Accept-Lanague  告诉服务器能够发送哪些语言
①条件请求首部
If-Modified-since 控制缓存
If-none-match
②安全请求首部
Authorization 客户端提供给服务器的认证信息
cookie(cookie2) 追踪用户连接
3、响应首部

# Age  响应时间
# Pulic  可存于公共缓存
# Server  服务器软件的名称及版本
# Vary  响应变化,会影响缓存
# Set-cookie(cookie2) 设定cookie
4、实体首部
# Allow  允许的请求方法
# Location  资源的实际位置
# Content_Lanague  主体内容的语言
# Content_Location  主体内容所处的位置
# Content_Type MIME  主体内容类型
# Etag  实体标记
# Expires  过期缓存
# Last-Mofified 上次修改时间


五、HTTP事务流程

① 建立连接
② 接受请求

③ 处理请求
④ 获取资源
⑤ 构建响应
⑥ 回送响应
⑦ 记录日志
第二部分 HTTP的相关配置
一、httpd软件的相关信息
1、服务脚本:/etc/rc.d/init.d/httpd
2、运行记录: /etc/httpd
3、配置文件
Ⅰ 主配置文件:/etc/httpd/conf/httpd.conf
Ⅱ 扩展配置文件:/etc/httpd/conf.d/*.conf
4、网页文件目录(DocumentRoot): /var/www/html
5、默认主页面:index.html



二、配置httpd的工作属性
1、指令不区分字符大小写,但一般情况下,单词的首字母大写;指令的值要区分大小写;有些指令可以重复使用多次。
2、配置文件的构成
Ⅰ 主服务器不能和虚拟主机同时启用
Ⅱ 全局配置:对主服务器或虚拟机都有效,且有些功能是服务器自身的工作属性
Ⅲ 主服务器:主站的属性
Ⅳ 虚拟主机:虚拟主机及其属性定义
3、配置文件的语法测试

# service httpd configtest
# httpd -t



大多数配置修改后,使用 service httpd reload 既能生效,而修改过监听的地址或端口的文件通常需要重启服务 service httpd restart 。

4、配置监听的端口和地址

# Listen    [ IP: ] PORTsan



三、配置所选的MPM(多道处理模块)
1、prefork: 一个进程响应一个请求,linux中默认使用
Ⅰ 绑定特权端口
Ⅱ 派发和回收子进程
Ⅲ 读取并分析主配置文件



2、worker: 一个进程生成多个线程,一个线程响应一个请求



3、event: 测试模式 (勿使用)
4、配置使用编译进不同的MPM的httpd 编辑配置文件 /etc/sysconfig/httpd
5、配置加载的模块

# LoadModule foo_module modules/mod_foo.sosui



四、配置服务器支持 keep-alived

# KeepAlive {on|off}
on 空闲时使用,off 繁忙时使用
# KeepAlive TimeOut
最多允许连接时间
# MaxKeepAliveRequests
每次最大的资源请求次数
1)KeepAlive {on|off}



2)KeepAlive TimeOut



3)MaxKeepAliveRequests




五、配置站点的根目录

1、DocumentRoot ""
<Directory "FS_PATH">
</Directory>

# DocumentRoot " "
指定配置网页文件目录路径
# <Directory FileSystem_PATH>
# </Directory >
Userdir:让每个人都拥有个人站点:http://HOST/~username

UserDir Public_html



访问文件的配置文件及访问结果











2、<Location "URL">
</Location>




六、配置页面文件访问属性

# <Directory "FS_PATH">
# Options
# Indexes
是否允许索引页面文件,建议关闭
# FollowSymLinks
是否允许跟随软连接
# ExecCGI
是否允许执行CGI脚本
# All
# None



七、配置日志功能
1、日志有两类:访问日志和错误日志,而访问日志的格式需要自定义
2、错误日志

# ErrorLog "/path/to/error_log_file"



3、访问日志
# CustomLog /path/to/Custom_Log_File LOGTORMAT



八、配置访问控制
1、基于客户端(IP)的访问控制
order:定义allow和deny哪一个为默认法则,写在后面的为默认法则,写在前面的指令没有显示定义的即受后面的指令控制。
# Order allow,deny
# Allow from All



2、基于用户的访问控制

# DocumentRoot " "
# <Directory  "/path/to/DocumentRoot_SUBDIR">
# Options None
# AllowOverride    是否允许覆盖
# AuthName "Realm"  用户名称
# AuthType Basic    认证类型
# AuthUserFile /path/to/passwords   用户账号文件
# Require username   本账号允许登录的用户
# AuthGroupFile   用户组文件
# Require grpname  本账号允许登录的用户组
# </Directory>


九、配置虚拟主机
1、虚拟主机的类型
Ⅰ 基于端口的虚拟主机














Ⅱ 基于IP的虚拟主机














Ⅲ 基于主机名的虚拟主机

















2、每个虚拟主机的定义

# <VirtualHost IP:PORT>
指定虚拟主机的IP、端口
#  ServerName
指定虚拟主机的主机名
# DocumenRoot " "
指定虚拟主机的站点路径
# </VirtualHost>
3、每个虚拟主机的单独配置

<VirtualHost IP:80>
ServerName
Document " "
CustomLog
ErrorLog
<Directory "">
Options None
AllowOverride Authconfig
AuthName " "
AuthType Basic
Require Vaild-user
</Directory>
ScriptAlias /cgi-bin/
Alias
</VirtualHost>


本文出自 “丿Sky 灬ONE PEICE” 博客,转载请与作者联系!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: