【Web服务详解】

一、状态码

状态代码:由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。

– 1xx:指示信息 —— 表示请求已接收,继续处理

– 2xx:成功 —— 表示请求已被成功接收、理解、接受

– 3xx:重定向 —— 要完成请求必须进行更进一步的操作

– 4xx:客户端错误 —— 请求有语法错误或请求无法实现

– 5xx:服务器端错误 —— 服务器未能实现合法的请求

– 常见状态代码、状态描述的说明如下:

• 200 OK:客户端请求成功

• 400 Bad Request:客户端请求有语法错误,不能被服务器所理解

• 401 Unauthorized:请求未经授权,这个状态代码必须和 WWW-Authenticate 报头域一起使用

• 403 Forbidden:服务器收到请求,但是拒绝提供服务

• 404 Not Found:请求资源不存在,举个例子:输入了错误的URL

• 500 Internal Server Error:服务器发生不可预期的错误

• 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常

二、HTTP报文

HTTP报文:http报文中有很多行内容,这些行的字段内容都是由一些ASCII码串组成,但各个字段的长度是不同的。http报文可分为两种,一种是从web客户端发往web服务器的http报文,称为请求报文。另外一种是从web服务器发往web客户端的报文,称为响应报文

HTTP请求报文

http请求报文由请求行、请求头部、空行和请求报文主体几个部分组成;

HTTP响应报文

http响应报文由起始行、响应头部、空行和响应报文主体这几个部分组成。

HTTP协议请求的工作流程

(1)终端客户在web浏览器地址栏输入访问地址http://www.ceshi.com:80/index.html

(2)web浏览器请求DNS服务器把域名www.ceshi.com解析成web服务器的IP地址

(3)web浏览器将端口号(默认是80)从访问地址(URL)中解析出来

(4)web浏览器通过解析后的ip地址及端口号与web服务器之间建立一条TCP连接

(5)建立TCP连接后,web浏览器向web服务器发送一条HTTP请求报文

(6)web服务器响应并读取浏览器的请求信息,然后返回一条HTTP响应报文。

(7)web服务器关闭HTTP连接,关闭TCP连接,web浏览器显示访问的网站内容到屏幕上。

三、www服务器的类型

仅提供用户浏览的单向静态网页

单纯是由服务器单向提供数据给客户端,Server不需要与client端有互动,所以你可以到该网站上去浏览,但是无法进行数据的上传。

提供用户互动接口的动态网站

这种类型的网站可以让服务器与用户互动,常见的例如留言板,博客。这种类型的网站需要通过“网页程序语言”来实现与用户互动的行为。常见的例如:PHP网页程序语言,配合数据库系统来进行数据的读、写。当你在向服务器请求数据时,其实是通过服务器端同一个网页程序在负责将数据读出或写入数据库,变动的是数据库的内容,网页程序并没有任何改变。

另外一种交互式的动态网页主要是在客户端实现。服务端将可执行的程序代码(JavaScript)传送给客户端,客户端的浏览器如果提供JavaScript的功能,那么该程序就可以在客户端的计算机上面工作了;另外一种可在客户端执行的就是flash动画格式,在这种动画格式内还可以进行程序设计。

搭建动态网站的需求

1、可支持的操作系统:让所有需要的软件都能够进行安装。

2、可运行的www服务器:例如Apache。

3、网页程序语言:Perl(Practical Extraction and Report Language,实用报表提取语言)、PHP(Hypertext Preprocessor,超文本预处理器,是一种通用开源脚本语言)、JSP(Java Server Pages,java服务器页面)、CGI(Common Gateway Interface,公共网关接口)、ASP(Active Server Pages,动态服务器页面)。

4、数据存储的数据库系统 :MySQL、MSSQL、Oracle等。

LAMP(linux+Apache+MySQL+PHP)

• Apache主要提供www的服务器平台

• MySQL:传统的文件读取是很麻烦的,如果你只要读取该文件当中的一小部分,系统还是会将整个文件读出来,若又有人同时读取同一个文件时,那就会造成效率与系统上的问题,所以才会有数据库系统的推出。数据库其实是一种特殊格式的文件,这种文件要通过特殊接口(数据库软件)来进行读写。由于这个特殊接口已经针对数据的查询、写入做过优化设计,因此很适合多人同时写入与查询工作。

• PHP:PHP可以被用来建立动态网页,PHP程序代码可以直接在HTML网页当中嵌入,就像编辑HTML网页一样简单。PHP是一种“程序语言”,这种程序语言可以直接在网页当中编写,不需要经过编译即可执行。

四、www服务器的配置

服务器端:在linux上面实现网页服务器需要Apache这套服务器软件,httpd提供Apache主程序 http://httpd.apache.org/docs/2.4/

1.安装软件:httpd

[root@localhost ~]# yum install httpd -y
[root@localhost ~]# rpm -ql httpd
[root@localhost httpd]# tree /etc/httpd
/etc/httpd
├── conf
│   ├── httpd.conf
│   └── magic
├── conf.d
│   ├── autoindex.conf
│   ├── README
│   ├── userdir.conf
│   └── welcome.conf
├── conf.modules.d
│   ├── 00-base.conf
│   ├── 00-dav.conf
│   ├── 00-lua.conf
│   ├── 00-mpm.conf
│   ├── 00-proxy.conf
│   ├── 00-systemd.conf
│   └── 01-cgi.conf
├── logs -> ../../var/log/httpd
├── modules -> ../../usr/lib64/httpd/modules
└── run -> /run/httpd

2.配置文件

1、主要的配置文件/etc/httpd/conf/httpd.conf。

2、额外的参数文件/etc/httpd/conf.d/*.conf。

3、如果你不想要修改原始配置文件httpd.conf的话,那么你可以将你自己的额外参数文件独立出来,例如你想要有自己的额外设置值,可以将它写入/etc/httpd/conf.d/zhuji.conf(注意,扩展名一定是.conf),而启动Apache时,这个文件就会被读入主要配置文件当中了。

4、默认的首页所在目录/var/www/html/,当输入网址时所显示的数据,就是放在这个目录当中的首页文件(默认为index.html)。

5、默认给一些可执行的CGI(网页程序)程序放置的目录/var/www/cgi-bin/,当输入网址/cgi-bin/时所显示的数据所在。

6、默认的Apache日志文件都放在/var/log/httpd/,对于流量比较大的网站来说,一个星期的日志文件的数据可以达到1GB左右

3.主配置文件内容

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

31   ServerRoot "/etc/httpd"                 #http服务的顶级目录为/etc/httpd
42 Listen 80		#监听在80端口,80为web服务器的默认端口
56 Include conf.modules.d/*.conf     #包括/etc/httpd/conf.modules.d/*.conf的所有文件
66 User apache		#服务的用户(ps -ef | grep httpd,先以root用户把/usr/sbin/httpd服务启动起来)。启动服务后转换的身份,在启动服务时通常以root身份,然后转换身份,这样增加系统安全
67 Group apache
86 ServerAdmin root@localhost		#你的邮箱,有事的时候给你发邮件
95 #ServerName www.example.com:80    ServerName 0.0.0.0:80匹配任意IP地址,监听端口在80端口
注:默认是不需要指定的,服务器通过名字解析过程来获得自己的名字,但如果解析有问题(如反向解析不正确),或者没有DNS名字,也可以在这里指定ip地址,当这项不正确的时候服务器不能正常启动。解决办法就是启动该项把www.example.com:80修改为自己的域名或者直接修改为localhost
 
102 <Directory />    #目录为根,<>为起始标志,</>为结束标志
103     AllowOverride none 	#不允许这个目录下的访问控制文件来改变这里的配置,这也意味着不用查看这个目录下的访问控制文件。
104     Require all denied 		#拒绝访问根
105 </Directory>        #和<Directory />是一组标签,目录控制容器
 
119 DocumentRoot "/var/www/html"			#网页文件存放的目录
 
124 <Directory "/var/www">
125     AllowOverride None
126     # Allow open access:
127     Require all granted
128 </Directory>
 
131 <Directory "/var/www/html">
144     Options Indexes FollowSymLinks   #索引,跟踪软链接
151     AllowOverride None
156     Require all granted
157 </Directory>
 
163 <IfModule dir_module>		#加载一个目录模块
164     DirectoryIndex index.html
165 </IfModule>
 
171 <Files ".ht*">		#不能访问
172     Require all denied
173 </Files>
182 ErrorLog "logs/error_log"
189 LogLevel warn
191 <IfModule log_config_module>	
	#日志配置模块 /var/log/httpd,日志模块:通过时间节点去记录(man date)
196     LogFormat "%h %l %u %t \"%r\" %>s %b \"%{    Referer}i\" \"%{User-Agent}i\"" combined
197     LogFormat "%h %l %u %t \"%r\" %>s %b" com    mon
198 
199     <IfModule logio_module>
201       LogFormat "%h %l %u %t \"%r\" %>s %b \"    %{Referer}i\" \"%{User-Agent}i\" %I %O" combi    nedio
202     </IfModule>
217     CustomLog "logs/access_log" combined
218 </IfModule>
 
 
220 <IfModule alias_module>		#别名模块
247     ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
248 
249 </IfModule>
cgi(通用网关接口)是web服务器运行时外部程序的规范,按cgi编写的程序可以扩展服务器的功能。cgi应用程序能与浏览器进行交互,还可通过数据库API与数据库服务器等外部数据源进行通信,从数据库服务器中获取数据
 
255 <Directory "/var/www/cgi-bin">
256     AllowOverride None
257     Options None
258     Require all granted
259 </Directory>
261 <IfModule mime_module>    #多用途互联网邮件扩展模块
266     TypesConfig /etc/mime.types
283     AddType application/x-compress .Z
284     AddType application/x-gzip .gz .tgz
305     AddType text/html .shtml
306     AddOutputFilter INCLUDES .shtml
307 </IfModule>
mime多用途互联网邮件扩展类型,是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问时,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。 
316 AddDefaultCharset UTF-8  默认字符集
318 <IfModule mime_magic_module>
324     MIMEMagicFile conf/magic
325 </IfModule>
348 EnableSendfile on
353 IncludeOptional conf.d/*.conf

4.设置防火墙状态

[root@localhost ~]# systemctl status firewalld

[root@localhost ~]#systemctl stop firewalld

[root@localhost ~]#systemctl disable firewalld
注意:systemctl start/restart/enable/disable/stop/status/reload的区别

5.重启服务

[root@localhost ~]# systemctl restart httpd

6.查看状态

[root@localhost ~]# systemctl status httpd | less

Aug 31 03:35:09 localhost.localdomain httpd[7374]: AH00558: httpd: Could not reliably 
determine the server's fully qualified domain name, using localhost.localdomain.
Set the 'ServerName' directive globally to suppress this message

#httpd:无法使用localhost.localdomain可靠地确定服务器的完全限定域名。 
全局设置“ServerName”指令以禁止显示此消息

7.排错

• 编辑httpd的主配置文件:vim /etc/httpd/conf/httpd.conf

• 将ServerName 改成0.0.0.0:80

• 重启服务

• 看状态显示正常

8.测试

• 在客户端:curl http://ip地址,curl -I可以查看http报文信息

• 通过浏览器访问http://ip地址

五、实验

1、搭建静态网站——基于http协议的静态网站

实验一:搭建一个web服务器,访问该服务器时显示“hello world”欢迎界面。

[root@localhost ~]# echo hello world > /var/www/html/index.html

[root@localhost ~]# curl 192.168.126.140

hello world

实验二:建立两个基于ip地址访问的网站

要求如下:

1、该网站ip地址的主机位为100,设置DocumentRoot为/www/ip/100,网页内容为:this is 100。

2、该网站ip地址主机位为200,设置DocumentRoot为/www/ip/200,网页内容为:this is 200。

• 第一步,先添加两个ip地址

[root@localhost ~]#nmcli connection modify eno16777736 +ipv4.addresses 192.168.126.100/24 ipv4.gateway 192.168.126.1 ipv4.method manual connection.autoconnect yes

[root@localhost ~]# nmcli connection modify eno16777736 +ipv4.addresses 192.168.126.200/24

[root@localhost ~]# nmcli connection up eno16777736

• 第二步,创建两个网页文件根目录,并定义网页内容

[root@localhost ~]# mkdir -pv /www/ip/{100,200}

[root@localhost ~]# echo this is 100 > /www/ip/100/index.html

[root@localhost ~]# echo this is 200 > /www/ip/200/index.html

[root@server html]# setenforce 0

[root@server html]# getenforce 

Permissive

第三步,定义基于不同ip地址来访问网站的配置文件

示例文件:
[root@localhost ~]# vim /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf 
[root@localhost ~]# vim /etc/httpd/conf.d/host.conf
[root@localhost ~]# systemctl restart httpd

[root@localhost ~]# curl 192.168.126.200
this is 200

[root@localhost ~]# curl 192.168.126.100
this is 100

如果访问时显示的是apache默认的欢迎界面,则需要做如下操作:

[root@localhost ~]# setenforce 0

实验三:建立两个基于不同端口访问的网站

要求如下:

1、建立一个使用web服务器默认端口的网站,设置DocumentRoot为/www/port/80,网页内容为:the port is 80。

2、建立一个使用10000端口的网站,设置DocumentRoot为/www/port/10000,网页内容为:the port is 10000。

• 第一步,创建两个网页文件根目录,并定义网页内容

[root@localhost ~]# mkdir -pv /www/port/{80,10000}

[root@localhost ~]# echo the port is 80 > /www/port/80/index.html

[root@localhost ~]# echo the port is 10000 > /www/port/10000/index.html

• 第二步,定义基于不同端口来访问网站的配置文件

[root@localhost ~]# systemctl restart httpd

[root@localhost ~]# curl 192.168.126.3
the port is 80

[root@localhost ~]# curl 192.168.126.3:10000
the port is 10000

实验四:建立两个基于域名访问的网站

要求如下:

1、新建一个网站,域名为www.ceshi.com,设置DocumentRoot为/www/name,网页内容为this is test。

2、新建一个网站,域名为rhce.first.day,同时可通过ce.first.day访问,设置DocumentRoot为/www/ce,网页内容为:today is first day of class。

拓展:基于域名的网站,需要用到域名解析。域名------->ip地址

浏览器如何通过域名去查询URL对应的IP(对应服务器地址):

1、浏览器缓存:浏览器会按照一定的频率缓存DNS记录。

2、操作系统缓存:如果浏览器缓存中找不到需要的DNS记录,那就去操作系统中的hosts文件找。hosts是一个没有扩展名的系统文件,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联"数据库",当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交DNS域名解析服务器进行IP地址的解析。

windows下的hosts文件路径:C:\Windows\System32\drivers\etc\hosts

Linux下的hosts文件路径:/etc/hosts

3、路由缓存:路由器也有DNS缓存。

4、ISP的DNS服务器:ISP是互联网服务提供商(Internet Service Provider)的简称,ISP有专门的DNS服务器应对DNS查询请求。

5、根服务器:ISP的DNS服务器还找不到的话,它就会向根服务器发出请求,进行递归查询(DNS服务器先问根域名服务器.com域名服务器的IP地址,然后再问.com域名服务器,依次类推)。

步骤:

• 第一步,创建两个网页文件根目录,并定义网页内容

[root@localhost ~]# mkdir /www/{name,ce}

[root@localhost ~]# echo this is test > /www/name/index.html

[root@localhost ~]# echo today is first day of class > /www/ce/index.html

• 第二步,定义基于域名访问的网站的配置文件

[root@localhost ~]# vim /etc/httpd/conf.d/host.conf
[root@localhost ~]# systemctl restart httpd

[root@localhost ~]# vim /etc/hosts
[root@localhost ~]# curl [www.ceshi.com](http://www.ceshi.com)
this is test

[root@localhost ~]# curl rhce.first.day
today is first day of class

[root@localhost ~]# curl ce.first.day
today is first day of class

2、搭建静态网站——基于https协议的静态网站

HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道。HTTPS并不是一个新协议,而是HTTP+SSL(TLS)。原本HTTP先和TCP(假定传输层是TCP协议)直接通信,而加了SSL后,就变成HTTP先和SSL通信,再由SSL和TCP通信,相当于SSL被嵌在了HTTP和TCP之间。

SSL

SSL 是“Secure Sockets Layer”的缩写,中文叫做“安全套接层”。它是在上世纪90年代中期,由网景公司设计的。到了1999年,SSL 应用广泛,已经成为互联网上的事实标准。IETF 就把SSL 标准化。标准化之后SSL被改为 TLS(Transport Layer Security传输层安全协议)。

SSL协议分为两层

• SSL记录协议 (SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能。

• SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

SSL协议提供的服务

1)认证用户和服务器,确保数据发送到正确的客户机和服务器

2)加密数据以防止数据中途被窃取

3)维护数据的完整性,确保数据在传输过程中不被改变。

HASH算法

HASH是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。Hash算法特别的地方在于它是一种单向算法,用户可以通过hash算法对目标信息生成一段特定长度的唯一hash值,却不能通过这个hash值重新获得目标信息。因此Hash算法常用在不可还原的密码存储、信息完整性校验等。

常见的HASH算法:MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1。

共享密钥加密(对称密钥加密)

加密和解密使用相同密钥。

对称加密算法:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES。

公开密钥加密(非对称密钥加密)

公开密钥加密使用一对非对称的密钥。一把叫做私有密钥,一把叫做公开密钥。私有密钥不能让其他任何人知道,而公开密钥则可以随意发布,任何人都可以获得。使用此加密方式,发送密文的一方使用公开密钥进行加密处理,对方收到被加密的信息后,再使用自己的私有密钥进行解密。利用这种方式,不需要发送用来解密的私有密钥,也不必担心密钥被攻击者窃听盗走。

常见的非对称加密算法:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)。

但由于公开密钥比共享密钥要慢,所以我们就需要综合一下他们两者的优缺点,使他们共同使用,而这也是HTTPS采用的加密方式。在交换密钥阶段使用公开密钥加密方式,之后建立通信交换报文阶段则使用共享密钥加密方式。

如何证明公开密钥本身是货真价实的公开密钥?

如,正准备和某台服务器建立公开密钥加密方式下的通信时,如何证明收到的公开密钥就是原本预想的那台服务器发行的公开密钥。或许在公开密钥传输过程中,真正的公开密钥已经被攻击者替换掉了。这个时候就需要第三方公证单位来帮忙啦。

CA就是一个公认的公证单位,你可以自行产生一把密钥且制作出必要的证书数据并向CA单位注册,那么当客户端的浏览器在浏览时,该浏览器会主动向CA单位确认该证书是否为合法注册过,如果是,那么该次连接才会建立,如果不是,浏览器会发出警告信息,告知用户应避免建立连接。所以说,如此一来WWW服务器不但有公证单位的证书,用户在建立连接时也比较有保障。

https工作过程

当你在浏览器的地址栏上输入https开头的网址后,浏览器和服务器之间会在接下来的几百毫秒内进行大量的通信:

1、客户端浏览器向服务器端发送如下信息:

(1)客户端支持的SSL /TLS协议的版本号。

(2)Cipher Suite(密钥算法套件)。

(3)客户端产生的随机数,稍后用于生成"会话密钥"。

2、服务器端向客户端发送如下信息:

1.确认使用的加密通信协议版本,如果浏览器与服务器支持的版本不一致,服务器关闭加密通信。

2.确认使用的加密方法。

3.服务器证书。

要使数字证书有用,它的结构必须采用一种可理解且可靠的形式,以便人们可以轻松地检索并理解证书内的信息。例如,护照采用这样一种结构:人们可以轻松地理解以前从未见过的那一类护照中的信息。同样,只要数字证书是标准化的,则无论颁发该证书的是哪个机构,人们都可以阅读并理解该证书。

S/MIME 标准规定:用于 S/MIME 的数字证书应遵守国际电信同盟 (ITU) X.509 标准。S/MIME 版本 3 明确要求数字证书应遵循 X.509 的第 3 版。由于 S/MIME 依赖于已建立的数字证书结构公认标准,因此 S/MIME 标准建立在该标准的发展之上,从而提高了它的认可度。

X.509 标准规定数字证书应包含标准化信息。具体地说,

X.509 版本 3 证书包含下列字段:

版本号 证书所遵循的 X.509 标准的版本。

序列号 唯一标识证书且由证书颁发机构颁发的编号。

签名算法 CA用于对证书进行数字签名的hash算法。

颁发者名称 实际颁发该证书的证书颁发机构的标识。

有效期 数字证书保持有效的时间段,并包含起始日期和过期日期。

使用者名称 数字证书所有者的姓名。

使用者公钥信息 与数字证书所有者关联的公钥以及与该公钥关联的特定公钥算法。

颁发者唯一标识符 可以用来唯一标识数字证书颁发者的信息。

使用者唯一标识符 可以用来唯一标识数字证书所有者的信息。

扩充信息 与证书的使用和处理有关的其他信息。

证书颁发机构的数字签名 使用指纹算法中指定的HASH算法以及证书颁发机构的私钥进行加密的数字签名。

4.服务器生成的随机数,稍后用于生成"对话密钥"

客户端利用服务器传过来的信息验证服务器的合法性。如果合法性验证没有通过,通讯将断开;如果合法性验证通过,则可以知道认证服务器的公开密钥的是真实有效的数字证书认证机构,并且服务器的公开密钥是值得信赖的。(此处认证机关的公开密钥必须安全地转交给客户端。使用通信方式时,如何安全转交是一件很困难的事,因此,多数浏览器开发商发布版本时,会事先在内部植入常用认证机关的公开密钥。)

客户端随机产生一个用于后面通讯的对称密钥,然后用服务器的公钥对其加密,然后将加密后的对称密钥传给服务器。

HTTPS的安全通信机制:

配置

[root@localhost ~]# yum install mod_ssl -y
[root@localhost ~]# cd /etc/pki/tls/certs/
[root@localhost certs]# make jiami.crt
 
#/etc/httpd/conf.d/ssl.conf 文件
[root@localhost ~]# vim /etc/httpd/conf.d/host.conf 
<VirtualHost 192.168.126.140:443>
    SSLEngine on   
    SSLProtocol all -SSLv2
    SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA密码套件,列出允许客户端协商的密码。
    SSLCertificateFile /etc/pki/tls/certs/jiami.crt指定证书路径
    SSLCertificateKeyFile /etc/pki/tls/certs/jiami.key指定密钥文件路径
    DocumentRoot /www/jiami
    ServerName 192.168.126.140
</VirtualHost>
[root@localhost ~]# systemctl restart httpd
通过浏览器访问或者curl --insecure https://IP地址

3、基于虚拟目录和用户控制的web网站

[root@localhost ~]# htpasswd -c /etc/httpd/mymima xiaoming(-c表示创建)
输入密码
[root@localhost ~]# htpasswd  /etc/httpd/mymima xiaohong
输入密码
[root@localhost ~]# mkdir /usr/local/mysecret
[root@localhost ~]# echo this is my secret > /usr/local/mysecret/index.html
[root@localhost ~]# vim /etc/httpd/conf.d/vhosts.conf  
AuthType Basic 基本认证类型(账号)
AuthName “Please login:” 提示信息,双引号必须有,可以更换为其它提示信息
AuthUserFile /etc/httpd/mymima 用户认证文件的用户名和密码指定的文件所在位置
Require user xiaoming xiaohong 指定这两个用户可以访问该服务器
[root@localhost ~]#systemctl restart httpd
[root@localhost ~]#curl 192.168.227.140/mimi/  -u xiaoming
在浏览器中输入:http://192.168.227.140/mimi
【登录成功后实际上访问的是/usr/local/mysecret/index.html的内容】

4、搭建动态网站(须学网页程序语言)

动态网站并不是指具有动画功能的网站,而是指网站内容可根据不同情况动态变更的网站,一般情况下动态网站通过数据库进行架构。动态网站除了要设计网页外,还要通过数据库和编程序来使网站具有更多自动的和高级的功能。

动态网页:使用网页脚本语言,比如php、JSP等,通过脚本将网站内容动态存储到数据库,用户访问网站是通过读取数据库来动态生成网页的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值