HTTP ( 一)

1.定义:   http: hypertext transport protocol

                      http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方                     式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应                          用。


2.http协议的版本:


http/0.9: 1991,仅用于传输html文档

http/1.0: 支持多媒体数据的处理,keep-alive(保持连接),有缓存功能

http/1.1: 更多的请求方法,更精细的缓存控制,持久连接

MIME: Multipurpose Internet Mail Extension    多功能邮件扩展

       base64: 将二进制数据编码成文本发送,并能够让接收方还原回原来的格式;

                  major/minor          主类型/子类型      用来说明资源类型   

3. HTTP请求:request

 HTTP请求报文

报文格式:

第一行:<method> <request-URL> <version>            (方法,资源,版本)

第二行:<headers>                                                        (请求头)

两行后:<entity-body>                                                   (请求主体)

4. HTTP响应:response

HTTP响应报文

报文格式:

<version> <status> <reason-phrase>                        (版本,状态吗,原因短语)

<headers>                                                                     (请求头)

<entity-body>                                                                (响应主体)

 

<method>: 请求方法, 希望服务器端执行的动作,如GET、HEAD、POST等

<request-url>: 请求的资源,可以是相对路径,也是完整的URL

<version>:协议版本,格式HTTP/<major>.<minor>,如http/1.0

<headers>:HTTP首部

<status>: 状态码

<reason-phrase>:原因短语,数字状态码易读信息

<entity-body>: 主体部分

5. HTTP状态码:

       1xx: 信息性状态码

       2xx:成功状态码

           200: OK

           201: Created,接受并保存

       3xx:重定向状态码

           301:Moved Permanently, 永久重定向。在响应报文中使用首部“Location: URL”指定资源现在所处的位置;

           302:Found,临时重定向,本资源有,但暂时不在本地。在响应报文中使用首部“Location: URL”指定临时资源位置;

           304:Not Modified,没修改这个资源,就可以使用缓存了。条件式请求中使用;

       4xx:客户端类的错误 ,例如服务器端资源不存在

           403:Forbidden,请求被服务器拒绝,原因可能是没有权限

           404:Not Found,服务器无法找到请求的URL

           405:Method Not Allowed,不允许使用此方法请求相应的URL

       5xx:服务器类的错误

           500:Internal Server Error,服务器内部错误;如服务器端脚本无权限执行

           502:Bad Gateway,代理服务器从上游收到了一条伪响应;

           503:Service Unavailable,服务器此时无法提供服务,但将来可能可用;


6.MPM: Multipath Processing Module,多道处理模块,非一个模块,而是对一种特性的称谓

       prefork:

           一个进程一个请求,预先forck好多个,prefork是基于事件分离器来工作的,而select的文件数最大不能超过1024个,也就是说prefork最多能处理1024个进程

       worker:

           一个进程多个线程,一个线程一个请求

       event:

           一个线程响应多个请求。event是基于事件驱动(event-driven)的,主要目的在于实现单线程响应多个请求;


 7. 虚拟主机

       一个物理服务器提供多个站点; 使用虚拟主机得先取消中心主机

       Web: Socket(IP, port)

       基于不同的IP实现不同的虚拟主机

           变化IP

       基于不同的port实现不同的虚拟主机

           变化port

       基于不同的FQDN实现不同的虚拟主机

           变化ServerName的值

       

       NameVirtualHost *:80


       <virtualhost IP:port>

           ServerName

           DocumentRoot ""

           <Directory "">

               Options

           </Directory>

           ServerAlias

           ServerAdmin

       </virtualhost>

   

   虚拟主机的单独配置:

       用户认证

       访问日志

       错误日志

       别名

       脚本别名


   9 服务器status页面


       内生的status信息,且此信息可以通过web预以显示

       配置文件系统路径访问属性

           <Directory [~] "">

           </Directory>

           

           <File [~] "">

           </File>

       配置URL访问属性

           <Location  [~] "">

           </Location>

           

           <LocationMatch "">

           </LocationMatch>

       如果某要配置其属性的URL能映射到某具体文件系统路径,建议使用<Directory>;

       处理器:是当文件被调用时,Apache内部表示形式;一般每种文件类型都有其隐式处理器;

       显式的定义使用的处理器 SetHandler

       <Location /URL>

           SetHandler server-status

       </Location>

       定义访问控制机制

           基于IP控制

           基于用户控制

       

       示例:

       <Location /server-status>

           SetHandler server-status

           AuthType Basic

           AuthName "Server Status"

           AuthUserFile "/etc/httpd/conf/.htpasswd"

           Require valid-user

           Order deny,allow

           Allow from all

       </Location>









發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章