(一)、DHCP服务
DHCP:Dynamic Host Configuration Protocol,动态主机配置协议 <-- bootp
TCP/IP
IPADDR
NETMASK
GATEWAY
DNS
广播租用:
Client--> DHCPDISCOVER
DHCPOFFER <--Server
Client--> DHCPREQUEST
DHCPACK <--Server
单播续租:
Client--> DHCPREQUEST
DHCPACK <--Server
# dhclient (显示获取DHCP地址时的详细信息,需# killall dhclient才可再次使用)
# dhclient -d (工作在前台,用Ctrl+C来使之停止)
(二)、http服务
HTTP:HyperText Transfer Protocol,超文本传输协议
超链接
Web:
http:仅纯文本(超链接);ASCII
HTML:HyperText Mark Language,超文本标记语言
Browser:客户端
URI:Uniform Resource Indentifier,统一资源标示符;全局范围内
统一:路径格式上的统一
URL:Uniform Resource Locator,统一资源定位符;是URI的子集
protocol://HOST:port/path/to/file
Web资源:能够通过URI标记并让客户端可以访问的资源,多个资源很可能被整合为一个html文档
MIME:Multipurpose Internet Mail Extension,多用途互联网邮件扩展
SMTP:Simple Mail Transmission Protocol,简单邮件传输协议;纯文本
MIME:将非文本数据在传输前重新编码为文本格式,接收方能够用相反的方式将其重新还原为原来的格式,还能够调用相应的程序来打开此文件
动态效果:Java,Applet,JRE
动态网页:服务器端存储的文档非HTML格式,而是编程语言开发的脚本,脚本接受参数之后在服务器运行一次,完成之后会生成HTML文档,并把生成的文档发至客户端;包含静态内容和动态内容(动态内容部分才需运行)
缓存:
IP:
Source IP + Destination IP
TCP:
Source Port + Destination Port
http首部(HTTP报文):请求报文,响应报文
Host:www.***.com(虚拟主机)
请求报文语法:
<method> <request-URL> <version>
<headers>
<entity-body>
响应报文语法:
<version> <status> <reason-phrase>
<headers>
<entity-body>
状态代码:
1xx:纯信息
2xx:“成功”类的信息
3xx:重定向类的信息
4xx:客户端错误类的信息
5xx:服务器端错误类的信息
Web服务器的主要操作:
建立连接--接受或拒绝客户端连接请求
接受请求--通过网络读取HTTP请求报文
处理请求--解析请求报文并做出相应动作
访问资源--访问请求报文中相应的资源
构建响应--使用正确的首部生成HTTP响应报文
发送响应--向客户端发送生成的响应报文
记录日志--将已经完成的HTTP事务记录进日志文件
C/S:
Client:IE,Firefox,Chrome,Opera,Safari
Server:Apache-->httpd,IIS,nginx,lighttpd,thttpd(www.netcraft.com)
应用程序服务器:
IIS,tomcat(apache,JSP,open source),Websphere(IBM,JSP,commodity),Weblogic(Oracle,JSP,commodity),JBoss(RedHat)
httpd:
事先创建进程
按需维持适当的进程
模块化设计,核心比较小,各种功能都由模块添加(包括PHP)
支持运行配置,支持单独编译模块
支持多种方式的虚拟主机配置
Socket IP:Port
虚拟主机:
基于IP的虚拟主机
基于端口的虚拟主机
基于域名的虚拟主机
支持https协议(mod_ssl)
支持用户认证
支持基于IP或主机名的访问控制机制ACL
支持每目录的访问控制
支持URL重写
httpd安装配置方式:
rpm包
源码编译
httpd:
/usr/sbin/httpd(MPM:prefork)
httpd:root,root(master process)
httpd:apache,apache(worker process)
/etc/httpd:工作根目录,相当于程序安装目录
/etc/httpd/modules:模块目录
/etc/httpd/conf:配置文件目录
主配置文件:httpd.conf(include /etc/httpd/conf.d/*.conf,/etc/httpd/conf.modules.d/*.conf)
/etc/httpd/logs --> /var/log/httpd:日志目录
日志文件有两类,访问日志access_log,错误日志error_log
/var/www:页面路径
html:静态页面路径
cgi_bin:动态页面路径
cgi:Common Gateway Interface,通用网关接口
Client --> httpd(index.cgi) --> Spawn Process(index.cgi) --> httpd --> Client
MPM:Multi Path Module
mpm_winnt
prefork(一个请求用一个进程响应)
worker(一个请求用一个线程响应)
event(一个进程处理多个请求)
URL路径跟本地文件系统路径不是一码事儿,URL是相对于DocumentRoot的路径而言的
Options:
None:不支持任何选项
Indexes:允许索引目录
FollowSynLinks:允许访问符号链接指向的源文件
Includes:允许执行服务端包含(SSI)
ExexCGI:允许允许CGI脚本
ALL:支持所有选项
Order:用于定义基于主机的访问控制功能的,可实现基于IP、网络地址或主机定义访问控制机制
Order allow,deny
allow from
deny from
# httpd -t (测试语法正确性)
# elinks URL (交互式的显示一个,纯文本界面的浏览器,需安装elinks纯文本浏览器,yum install elinks)
-dump:显示网页后立即退出交互式界面
-source:显示网页的源代码
apache虚拟主机:
apache:服务器 Host:物理主机
虚拟主机:
apache服务:服务于多个不同的站点
apache:
中心主机
虚拟主机
基于IP IP1:80 IP2:80
基于端口 IP:80 IP:8080
基于域名 IP:80 主机名不同(www.**.com,www.**.org,www.**.net)
先取消中心主机,注释中心主机的DocumentRoot即可。
虚拟主机的定义:
<VirtualHost HOST>
基于IP:
HOST
IP1:80
IP2:80
基于端口:
HOST
IP:80
IP:8080
基于域名:
HOST
*:80(ServerName不同)
</VirtualHost>