DHCP服務和http服務
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>
DHCP服務和http服務