linux之httpd服务centos6 配置 html网页

httpd服务centos6 配置  html网页

1.centos6挂载两个光盘  配置yum 复制到cdiso1 安装httpd服务 网页测试

两个镜像 第一个

mount /dev/sr0 /mnt/        ---先挂载镜像光盘1 到mnt下

cd /media/cdiso/

mkdir cdiso1                 --创建cdiso1的目录

cp -rf /mnt/* /media/cdiso1  ---把 mnt挂载的镜像1内容复制到cdiso1中

du -sh /media/cdiso1        ---查看目录文件大小

 

 

 

 

第二个

去虚拟机中设置第二个镜像光盘

cd /media/

mkdir cdiso2                                 ---创建挂载点

mount /dev/sr0 /media/cdiso2                ---挂载

 

 

 

 

 

挂载两个光盘镜像的yum源

cd /etc/yum.repos.d/             

cp CentOS-Base.repo  CentOS-Base.repo.bak

vim CentOS-Base.repo

baseurl=file:///media/cdiso1

        file:///media/cdiso2

 

 

 

 

 

安装软件   httpd

yum clean all         --清空缓存

yum -y install httpd   --安装httpd软件

yum list  --查看yum列表

yum  -y  remove  httpd   --卸载httpd

 

 

1.相关配置文件路径  启停脚本  日志存放路径

/etc/httpd/conf/httpd.conf  主配置文件

/etc/httpd/conf.d/*.conf    辅助配置文件

 

服务启停脚本:

/etc/rc.d/init.d/httpd start  或者 service  httpd start

 

httpd启动选项文件/etc/sysconfig/httpd      ----选择工作模式

程序的主程序指令文件 /usr/sbin/httpd

                      ② /usr/sbin/httpd.event

                      ③ /usr/sbin/httpd.worker

 

日志文件路径:

/var/log/httpd  --->符号连接文件/etc/httpd/logs

访问日志:access_log   --查看谁访问

错误日志:error_log

网页根路径/var/www/html        

2.)Centos6httpd程序 配置文件组成  解读配置文件

配置文件可以实现配置Httpd的基本功能,

有三部分组成:

Global Environment 全局特性配置

Main server configuration 主服务器配置  即网站配置

Virtual Hosts虚拟主机配置(不要同第二种同时使用)

 

 

33 ### Section 1: Global Environment     --全局配置

44 ServerTokens OS                      --服务器标签

57 ServerRoot "/etc/httpd"               --根目录(即为默认路径可指定)

后面如果说有一个配置目录  没有指定  那么这就是默认路径

65 PidFile run/httpd.pid                  ---阿帕奇运行会有一个pid进程

写在  run/httpd.pid  这个文件下 ,没有指绝对路径就会在 第57 ServerRoot "/etc/httpd"   这个目录下面

 

 

 

 

root      27254  0.0  0.4 139140  4792 pts/2    S+   20:21   0:00 vim httpd.conf

存放的是父进程的Pid号,下面都是子进程  不记录pid号

Httpd  是root运行的所以为父进程  ,下面是由父进程产生的

1.端口配置Listen(是否增加或更改监听端口)

格式:Listen [IP:] PORT    IP省略代表监听所有IP地址。PORT端口

135 #Listen 12.34.56.78:80          ---也可以加上ip地址:80(可不写80)

136 Listen 80                   ---侦听的是80端口(默认)

 

   ---也可增加8080 指定端口

2持久连接设置(是否开启,最大连接数,超时时间)

连接网页: 一次连接实现传输多次请求  (请求网页资源)

连接建立,每个资源获取完成后不会断开连接  而是继续等待其他的请求完成。

76 KeepAlive Off                  --是否开启持久连接以及设置连接超时

83 MaxKeepAliveRequests 100        --一次连接可完成100次的连接  最大连接数

89 KeepAliveTimeout 15            --两次时间请求间隔超时  15s则断开

#超时时间为15s,单位默认为s

Httpd-2.4支持毫秒级持久连接。    

格式KeepAlive On|Off    打开浏览器,F12打开调试,F5刷新

请求连接的数量和时间限制可自行配置(根据实际生产环境来定义,推荐较短持久连接时间)

3.MPM(多路并发模型响应)运行模式更改  

centos6 rpm包为2.2版本,自带模块prefork  worker  event

查看当前使用的MPM模块ps aux | grep httpd     默认是prefork

 

 

 

 

查看当前编译入httpd核心的MPM模块

命令格式:   http[.MPM] -l     http .worker -l     http .event -l  

 

 

 

 

 

运行模式更改   更换httpd程序,MPM模块

vim  /etc/sysconfig/httpd   --- httpd的脚本配置文件 解开httpd那个即可

/etc/sysconfig/httpd   restart重启服务

 ps aux | grep httpd   查看当前使用的MPM模块  

 

 

 

 

可看到 /usr/sbin/httpd.worker  已更改

 

 

 

 

4.DSO动态加载模块配置

主配置文件中的LoadModule选项,进行启用或卸载已装载的模块。

动态装卸载模块的系统存放路径/etc/httpd/modules/  (链接路径--->/usr/lib64/httpd/modules)

 

 httpd -M 查看其他编译装载的模块

 vim /etc/httpd/conf/httpd.conf配置文件路径 :

/usr/lib64/httpd/modules/模块文件位置

 

#LoadModule foo_module modules/mod_foo.so后面模块就会加载起来

 

 

 

 

这是阿帕奇现在加载的模块  但这个/etc/httpd/modules   --是软连接  

连接到  实际模块文件位置:/usr/lib64/httpd/modules/   --实际路径(可用)

 

 

 

 

 

 

 

5.网页根路径配置和ServerName

vim /etc/httpd/conf/httpd.conf主配置文件    

httpd主配置文件中的DocumentRoot  来定义

网页的根路径,默认在/var/www/html  也是在访问URL地址的起始根路径 /。

                  /  代表网页根路径

 

 

 

 

292 DocumentRoot "/var/www/html"      --指定网页根路径(可修改)

276 ServerName www.example.com:80  --设定网站的名称 80端口可不加

 

 

 

 

6.编写测试网站

vim /etc/httpd/conf/httpd.conf主配置文件

404 DirectoryIndex index.html index.html.var   因为这里指定了名称首页

所以就建立这个测试网站首页文件

 

 

 

 

<body>

        <h1>test</h1>

        <p>web test</p>

        </br>

        <img src="welcome.jpg"></br>

        <a href="http://www.baidu.com">www.baidu.com.com</a>

</body>

 

7.指定首页  更改默认主页面  启动服务

vim /etc/httpd/conf/httpd.conf主配置文件      

DirecotryIndex  index.html index.html.var   (html    htm   xhtml  index.html.var)  ----指定首页.php  .jsp   .py  .cgi   .perl)

 

8.网页访问 启动服务  安装网页访问软件 Linux内对WEB站点资源访问的相关命令方式

curl查看源码      elinks           lynx 访问网站

 

yum -y install lynx    安装访问网站的软件               

curl 请求资源的操作方法

curl [option] xxx.xxx.xxx.xxx[:80]      

例如: curl 192.168.10.20     

elinks 请求资源操作方法

elinks  xxx.xxx.xxx.xxx [:80]

lynx  xxx.xxx.xxx.xxx[:80]

lynx 192.168.10.20     --访问网站

 

 

 

 

curl 192.168.10.20 查看源码

 

 

 

 

 

在真机中访问   

 

 

 

 

 

 

9.设定默认的字符集

vim /etc/httpd/conf/httpd.conf  在主配置文件中     

761 AddDefaultCharset UTF-8

设定默认字符集为支持中文编码

10.目录 路径别名(请求的资源会自动进入服务器另外的网页路径)

vim /etc/httpd/conf/httpd.conf  httpd 主配置文件中     

给目录起别名格式:

Alias /URL/ “/XXX/XXX/dir/”    

Alias 给他起别名   /URL/ 根目录下的URL  是 /XXX/XXX/dir/目录

网站服务器真实存在的目录   

注意:最后面的路径提示符要统一,要么都有,要么都没有。

示例一:

Alias /bbs "/forum/htdocs"

<Directory "/forum/htdocs">

    Options Indexes FollowSymLinks MultiViews

    AllowOverride all

    Require all granted

</Directory>

1.去修改配置文件增加别名

vim /etc/httpd/conf/httpd.conf  

 

Alias /bbs "/var/www/html/bbs"     bbs不存在但是指向后面的连接

<Directory "/var/www/html/bbs">    对这个bbs目录进行控管

    Options Indexes FollowSymLinks MultiViews    显示的选项

    AllowOverride None     --不进行权限的复写

    order allow,deny        

        allow from all       --访问的控制 allow all允许所有

</Directory>

 

 

 

 

上述别名的配置,就是说当你基于你的站点访问http://ip/bbs目录下的文件时,会直接从服务器/forum/htdocs目录下访问对应的文件。

 

cd /var/www/html/     mkdir bbs新建目录  

echo "bbs text" > index.html

 

 

 

 

 

重启服务测试

 /etc/init.d/httpd restart

 

2.真实机访问  

http://192.168.10.20/bbs

 

 

 

 

 

11.httpd的日志设定解读(很重要)

1.)访问日志(CustomLog)

主配置文件默认定义    cd /var/log/httpd/logs/access.log  

有不同的定义格式,有combined(组合格式)  common  agent

访问日志分析%h--->请求资源客户端的IP地址

              %l---->远程登陆的用户名(大多数都是空,以-表示)

              %u--->被认证登陆的用户名

              %t---->服务器收到请求的时间

              %r---->请求报文的首行信息method  URL   version)

              %s---->响应请求的状态码

              %b:响应报文的大小,不包括首部,以字节为单位

              %{Referer}:请求报文当中的”referer”首部的值(首部字段Referer会告知服务器请求的原始资源的URI)

              %{User-Agent}:请求报文中”User-Agent”首部的值,即发出请求用到的应用程序。浏览器

 

cd /var/log/httpd/logs/access.log  

tail -f /var/log/httpd/logs/access.log  

 

 

 

 

192.168.10.20 - - [28/Oct/2019:22:37:54 +0800] "GET / HTTP/1.1" 200 173 "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.27.1 zlib/1.2.3 libidn/1.18 libssh2/1.4.2"

日志解读   access.log

192.168.10.20   --客户IP地址

[28/Oct/2019:22:37:54 +0800]   --时间

GET   --获取的方法

 /    --获取的内容   首页

HTTP/1.1   --协议和版本

200     --状态码

curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.27.1 zlib/1.2.3 libidn/1.18 libssh2/1.4.2"    --使用的浏览器 使用的客户端程序

 

②错误日志(errorLog)

主配置文件中定义了其日志位置,   cd /var/log/httpd/logs/error_log

错误日志规定了级别LogLevel warn) 分别为dubug  info  notice  warn   error   crit   alert   emerg

 

 

 

 

 

 

错误日志    errorLog

 

 

 

 

7debug      用来debug (除错) 时产生的讯息数据;

6 info        仅是一些基本的讯息说明而已;

5. notice      虽然是正常信息,但比info还需要被注意到的一些信息内容;

4 warning (warn )   警示的讯息,可能有问题,但是还不至于影响到某个daemon运行的信息;基本上,info, notice, warn这三个讯息都是在告知一些基本信息而已,应该还不至于造成一些系统运行困扰;

3err (error)     一些重大的错误讯息,例如配置文件的某些设置值造成该服务

服法启动的信息说明,通常借由err的错误告知,应该可以了解到该服务无法启动的问题呢!

2.crit         error还要严重的错误信息,这个crit是临界点( critical)

的缩写,这个错误已经很严重了喔!

1. alert           警告警告,已经很有问题的等级,比crit还要严重!

0 emerg ( panic)  疼痛等级,意指系统已经几乎要死机的状态!很严重的错误信息了。通常大概只有硬件出问题,导致整个核心无法顺利运行,就会出现这样的等级的讯息吧!

 

 

 

2.httpd 案例 网页查看图片 设置持久连接数等

1.)yum  安装 httpd服务

yum -y install httpd

2.)编写网页,访问自己的IP地址,显示自己编辑的HTML的内容   

编写网页,要求直接访问自己的IP地址,即可出现自己编写的Html页面index.html:

vim /var/www/html/index.html

 

<body>

        <h1>test</h1>

        <p>web test</p>

        </br>

        <img src="welcome.jpg"></br>

        <a href="http://www.baidu.com">www.baidu.com.com</a>

</body>

 

 

 

 

启动服务

service  httpd  restart

3.)在真机中访问,

http://192.168.10.20          可以点击下面的百度网站

 

 

 

 

4.)更改域名,增加监听端口

httpd服务器的域名设置为www.ujiuye.com,

并使其除了监听自己默认的80端口外,还额外监听在8080端口上。

ServerName www.ujiuye.com:80

 

 

 

 

137 Listen 192.168.10.20:80    监听的端口

138 Listen 80

139 Listen 8080

 

 

 

 

重启

/etc/init.d/httpd  restart

service httpd restart

 

 

 

 

 

然后作本机的测试

因为没有DNS   所以使用本机指定解析

 

vim /etc/hosts           这样就解析出ujiuye是10.20

 

 

 

 

 

本机linux测试

lynx www.ujiuye.com

 

 

 

 

 

5更改进程运行模式为MPM模式,查看httpd验证

httpd程序运行模式改为MPM模式,并查看httpd进程进行验证。

 

vim /etc/sysconfig/httpd

HTTPD=/usr/sbin/httpd.worker解开或者写入       

 

 

 

 

注意:yum -y install php-zts-5.3.3-47.el6.x86_64

 

然后重启   查看进程

/etc/init.d/httpd  restart

service httpd restart

ps -aux | grep http

 

 

 

 

 

6.)更改网页路径.

vim /etc/httpd/conf/httpd.conf主配置文件    

 

更改网页根路径为/doc/www/html/下,并进行访问。

DocumentRoot "/doc/www/html"       ---指定根目录,没有要新建

DocumentRoot    --指定网站根目录   注意写的时候的标签对

 

加入内容

<Directory "/doc/www/html">     

Options Indexes FollowSymLinks   

    Order allow,deny

    Allow from all

</Directory>        

 

解读文件

Options   ---目录显示属性的设置

Indexes   ---如果这个目录下没有找到doc/www/html这个网站的话,就把这个目录的内容列表一下

FollowSymLinks  ---这个目录里的软连接是可以失效的

Allow from all    ---所有人都可以访问

<Directory "/doc/www/html"> 

</Directory>    -标签对--通过标签对来进行访问控制

 

配置好后  重启服务

service httpd restart

客户端登录查看

 

 

 

 

7.)设置持久连接和最大连接数,超时时间

打开持久连接,设置最大连接数为50,超时时间为2s

76 KeepAlive On                  --是否开启持久连接以及设置连接超时

83 MaxKeepAliveRequests 100        --一次连接可完成100次的连接    最大连接数

89 KeepAliveTimeout 15            --两次时间请求间隔超时  15s则断开

#超时时间为15s,单位默认为s

 

 

 

 

 

8.目录别名   网页制作小技巧

vim /etc/httpd/conf/httpd.conf修改主配置文件

    

Alias /jxj "/doc/www/html/bbs"

<Directory "/doc/www/html/bbs">

    Options Indexes FollowSymLinks MultiViews

    AllowOverride None

    order allow,deny

    allow from all

</Directory>

解读

Alias   /jxj   网站后面加别名  实际位置是 /doc/www/html/bbs

 

创建别名网站这个文件

cd   /doc/www/html/jxj

vim index.html

写入  I love you jing

 

 

 

 

 

网页制作小技巧

标题标签:<h1>---<h6>  h1字号最大,h6字号最小。

段落标签:<p></p>   换行标签:</br>        范围标签<span></span>

图像标签<img>    超链接标签<a href=”http://xxx/xxx/xxx”> HIT</a>

特殊符号: (空格符号) "(引号”) ©(公司符号)

 

使其显示图片和文字

/doc/www/html/bbs    新建测试网站:index.html

在其中写入图片的名称(图片也在bbs目录下)

 

 

 

 

 

 

 

Jxj相当于软连接   指向的是/doc/www/html/bbs 文件目录里的initial.html

 

3.理论:

1.)HTTP(超文本传输协议)基础:

属于应用层协议目前主要实现网页共享和通信。

网页:纯文本文件,编写的基本语言为html客户端浏览器翻译网页形式显示出来。

http:hyper text transfer protocol

html:超文本标记语言,属于一种标记语言(网页源码)。

CSS:Cascading Style Sheet(层级样式表,定义页面格式)

js:脚本编程语言,工作在客户端。

 

2.)HTML文档结构:

头部部分

标题部分

主体部分

网页内容:文本、图像

 

3.)网页基本标签

头部部分:网页摘要信息,便于浏览器解析和搜索引擎搜索。

<title>标签   针对搜索引擎的搜索或更新频度的关键词。

 

例如:

<head>

    <title> 我的测试网页 </title>

</head>

②主体部分

标题标签:<h1>---<h6>  h1字号最大,h6字号最小。

段落标签:<p></p>   换行标签:</br>        范围标签<span></span>

图像标签<img>    超链接标签<a href=”http://xxx/xxx/xxx”> HIT</a>

特殊符号: (空格符号) "(引号”) ©(公司符号)

例如

<body>

<h1>这是一级标签</h1>

<h2>这是二级标签</h2>

<p>这是一个段落</p>

测试换行</br>

<span>范围测试

范围测试</span>

<img src=”/xxx/xxx/xxx.jpg”/>

<a href=”http://www.ujiuye.com”> 优就业IT教育</a>

"aaa" bbb<br />Ujiuye.Inc

</body>

 

4.)http的工作原理

   http请求流程:主要实现跨主机发送文档,客户端基于浏览器向服务端获取文档,文档在服务器的某个路径之中,

服务端此时监听在套接字上,服务器接受请求,分析文档是否存在,如果存在,从磁盘取到资源取到进程(网站服务程序进程)之中,封装成HTML的响应报返回给客户端并在浏览器上显示。

5.)WEB资源:

WEB内容的重要组成部分,是客户端基于HTTP协议可以调用的服务器的相关资源WEB资源分为静态资源(文件)和动态资源(文件)

   WEB静态资源:服务器端的WEB资源,不会发生变化,不需要在服务器上进行执行的资源,原路返回发还给客户端

例如.html   .jpg   .gif   .txt   .js   .css   .mp4   .avi  。。。

   WEB动态资源:服务端的web动态资源,浏览器无法直接解析,需要在服务端进行执行一次,才发还给客户端的资源。

例如:.php  .jsp   .cgi  ......

 

6.)MIME

Multipurpose Internet Mali Extension,多用途英特网邮件扩藏)媒体类型:(使用不同的编码方式进行编码)

格式   major/minor,大类/子类

text/html               ---文本/标签

text/Plain               ---文本/普通文本

image/jpg             

image/gif  ......           

因特网上有数千种不同类型的数据,HTTP仔细地给每种要通过web传输的对象都打上了名为MIME类型(MIME type)的数据格式标签,Web 服务器会为所有 HTTP 对象数据附加一个 MIME 类型。 Web 浏览器从服务器中取回一个对象时,会去查看相关的 MIME 类型,看看它是否知道应该如何处理这个对象。大多数浏览器都可以处理数百种常见的对象类型:显示图 片文件、解析并格式化 HTML 文件、通过计算机声卡播放音频文件,或者运行外部插件软件来处理特殊格式的数据。

 

MIME 类型是一种文本标记,表示一种主要的对象类型和一个特定的子类型,中间由一条斜杠来分隔。

1.HTML 格式的文本文档由 text/html 类型来标记

2.普通的 ASCII 文本文档由 text/plain 类型来标记

3.JPEG 版本的图片为 image/jpeg 类型

4.GIF 格式的图片为 image/gif 类型

5.Apple 的 QuickTime 电影为 video/quicktime 类型

6.微软的 PowerPoint 演示文件为 application/vnd.ms-powerpoint 类型

7.)资源标识定位符

资源标识--->URI,统一资源标识符用于标示一个抽象或者物理资源,相当于名称,由三部分组成:访问资源的命名机制,存放资源的主机名,资源自身的名称由路径表示

资源定位--->URL (服务器地址ip:port)统一资源定位符用于标示网络资源的位置,由三部分组成:第一部分是协议(或称为服务方式);第二部分是存有该资源的主机IP地址(有时也包括端口号);第三部分是主机资源的具体路径。

每个URL都必须从以下命名机制开始:ftp、http、https、gopher、mailto、news、nntp、telnet、wais、file或prospero。如果不是以此开头,则不是URL。

 

 

8.)PV .UV,AC.IV概念

PVpage view(一次页面的访问)  即页面访问量,每打开一次页面PV计数+1,刷新页面也是。包括全站PV,首站PV

UVuser view (多少用户访问过,跟页面数量多无关,表现为用户活跃度一台电脑终端为一个访客

ACActive connection  活动连接数,当前在使用的活动的连接数

IV:是IP访问数指独立IP访问数,一个独立的IP在一个计算时段内访问网站计算为1次IP访问数。在同一个计算时段内不管这个IP访问多少次均计算为1次。计算时段有以1天为一个计算时段,也有以1个小时为一个计算时段。

qps:每秒查询数    并发/响应

 

9.)WEB服务并发响应模型(web的I/O模型)

并发的概念:多个客户端时请求服务器的资源,服务端进行资源I/O响应。

①:单进程I/O结构,一个进程处理一次请求,多个请求需串行响应。(排队)

②:多进程I/O结构--->启动多个进程,一个进程处理一个请求,多个进程同时进行处理请求。

注意:多进程I/O结构缺点:进程启动太多,会造成大量进程间切换,消耗大量的内存资源。

      多进程I/O结构优点:进程之间互相不影响。

③:复用I/O结构:多路I/O处理器完成I/O复用,实现一个进程响应多个用户请求。

单个进程响应多个请求的实现方式:

1.) 多线程方式   一个进程生成多个线程,一个线程响应一个请求。

       2.) 事件驱动方式,当web server接收到请求,就把他扔到一个队列中然后在继续响应请求。在队列中准备就绪后,服务器在把结果发送给客户端。

④:复用多进程I/O结构:启动多个进程每个进程响应多个请求

 

10.)HTTP协议版本:

HTTP 0.9版本  最初版本,已弃用

HTTP 1.0版本  最初广泛使用版本,支持多媒体资源,但是对缓存支持很差

HTTP 1.1版本  当前主流版本,增强了缓存功能。

HTTP 2.0版本  当前没有主流使用的版本,但功能强大。

 

11.)HTTP请求细节:(报文)

细分为:①:建立、处理连接(是否接受或拒绝)

           ②:接受请求

           ③:处理请求

           ④:访问资源

           ⑤:构建响应报文

           ⑥:发送响应报文

           ⑦:记录日志

 

处理请求:对请求报文进行解析,并获取请求资源和请求方法相关信息

请求报文首部:

GET /my_view_page.php HTTP/1.1   --网址网页指定根目录

Host: 10.0.17.183:8000

Connection: keep-alive

Cache-Control: max-age=0

Upgrade-Insecure-Requests: 1

(KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

Referer: http://10.0.17.183:8000/my_view_page.php

Accept-Encoding: gzip, deflate, sdch

访问资源:获取http报文中请求指定的资源(存放在httpd服务器中,提供资源--->包括静态资源和动态资源,

本地文件系统某个路径,此路径叫网页根路径--->会有多种路径映射)

 

构建响应报文:服务端将资源封装成响应报文,需要进行分类,明确标记资源类型。

              资源访问可能会基于URL重定向方式进行响应(非客户端的请求资源,而是另一个访问路径)

 

发送响应报文:把构建的报文发送给请求方

 

记录日志:(同时方便分析客户行为需求)

 

12.)http协议的软件程序解决方案

静态资源请求WEB服务器程序

①:httpd(apache)

②:nginx

③:lighttpd

动态资源:

    IIS

    tomcat  jboss  jetty   轻量级

    weblogic  webshpere  企业级重量级

 

市场份额WEB服务器领域数据分析网站:https://news.netcraft.com/

 

http软件(apache)的详细介绍和安装(centos-6和centos-7)

apache有apache软件基金会提供,属于开源软件,在当今主要的web服务器领域是绝对的龙头老大。

apache程序在系统中命名---->httpd

 

13.)httpd程序的特点(工作模式)

高度模块化的设计:httpd内核+模块(modules)

DSO:动态共享对象,装载器根据当前地址空间的空闲情况,动态分配一块足够大小的虚拟地址空间给相应的共享对象

MPM:多路访问模块(多种不同的I/O模型,包括prefork模型,worker模型,event模型)

1.prefork:多进程模型,每个进程响应一个请求。一个主进程(监听套接字),负责生成n个子进程,子进程为工作进程,没有用户请求,也会生成空闲进程,等待请求达到。最大不超过1024个进程。

2.worker:多线程模型(多进程生成,一个进程生成多个线程),一个线程响应一个请求

3.event:事件驱动模型,一个进程响应多个请求。(httpd-2.2属于试验阶段,httpd-2.4生产环境已大规模使用)

14.)URI

<1>什么是URI

URI,通一资源标志符(Uniform Resource Identifier, URI),表示的是web上每一种可用的资源,如 HTML文档、图像、视频片段、程序等都由一个URI进行定位的。

<2>URI的结构组成

URI通常由三部分组成:

①访问资源的命名机制;

②存放资源的主机名;

③资源自身的名称。

<3>URI举例

如:https://blog.csdn.net/qq_32595453/article/details/79516787

我们可以这样解释它:

①这是一个可以通过https协议访问的资源,

②位于主机 blog.csdn.net上,

③通过“/qq_32595453/article/details/79516787”可以对该资源进行唯一标识(注意,这个不一定是完整的路径)

二、URL

URL是URI的一个子集。它是Uniform Resource Locator的缩写,译为“统一资源定位 符”。

通俗地说,URL是Internet上描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上。

采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。

URL的一般格式为(带方括号[]的为可选项):

protocol :// hostname[:port] / path / [;parameters][?query]#fragment

URL的格式由三部分组成: 

①第一部分是协议(或称为服务方式)。

②第二部分是存有该资源的主机IP地址(有时也包括端口号)。

③第三部分是主机资源的具体地址,如目录和文件名等。

第一部分和第二部分用“://”符号隔开,

第二部分和第三部分用“/”符号隔开。

第一部分和第二部分是不可缺少的,第三部分有时可以省略。 

三、URI和URL之间的区别

从上面的例子来看,你可能觉得URI和URL可能是相同的概念,其实并不是,URI和URL都定义了资源是什么,但URL还定义了该如何访问资源。URL是一种具体的URI,它是URI的一个子集,它不仅唯一标识资源,而且还提供了定位该资源的信息。URI 是一种语义上的抽象概念,可以是绝对的,也可以是相对的,而URL则必须提供足够的信息来定位,是绝对的。

URL 和 URI 区别

本文我们讨论URL 和 URI 的主要区别,并通过示例说明这些差异。

URL 和 URI

直接差异来自其定义:

Uniform Resource Identifier (URI) − 对任何抽象或物理资源进行完整标识的字符序列。 Uniform

Resource Locator (URL) − 除了标识资源可用的位置之外,URI的一个子集描述了访问该资源的主要机制。

现在我们可以得出结论:每个URL都是一个URI,后面我们会看到情况并非如此。

语法

所有URI,不管其是否为URL,需遵循形式:

scheme:[//authority][/path][?query][#fragment]

1

每部分描述如下:

scheme − 对于 URL, 是访问资源的协议名称;对其他URI,是分配标识符的规范的名称

authority − 可选的组成用户授权信息部分,主机及端口(可选)

path − 用于在scheme和authority内标识资源

query − 与路径一起的附加数据用于标识资源。对于url是查询字符串

fragment − 资源特定部分的可选标识符

为了方便地识别特定的URI是否是URL,我们可以检查它的scheme。每个URL都必须从以下scheme开始:ftp、http、https、gopher、mailto、news、nntp、telnet、wais、file或prospero。如果不是以此开头,则不是URL。

现在我们已经了解了语法,让我们看一些示例。下面是uri列表,其中只有前三个是url:

    ftp://ftp.is.co.za/rfc/rfc1808.txt

    https://tools.ietf.org/html/rfc3986

    mailto:john@doe.com

    tel:+1-816-555-1212

    urn:oasis:names:docbook:dtd:xml:4.1

    urn:isbn:1234567890

 

posted @ 2020-08-01 11:05  浅唱I  阅读(1532)  评论(0编辑  收藏  举报