1、簡述PV,UV,QPS的含義及計算方式
PV(訪問量):既Page View,頁面瀏覽或點擊量,用戶每次刷新即被計算一次,PV反映的是瀏覽某網站的頁面數,PV與來訪者的數量成正比,PV并不是頁面的來訪者的數量,而是頁面被訪問的數量
UV(獨立訪客):即Unique Visitor,訪問網站的一臺電腦為一個訪客。一天內相同的客戶端只被計算一次??梢岳斫獬稍L問某網站的電腦的數量。網站判斷來訪電腦的身份是通過cookies實現的。如果更換了IP后不清楚cookies,再訪問相同的網站,該網站的統(tǒng)計中UV數是不變的
QPS:request per second,每秒請求數
2、一次完整的HTTP請求過程
1、建立連接:接收或拒絕連接請求
2、接收請求:接收客戶端請求報文中對某資源的一次請求的過程
3、處理請求:服務器對請求報文進行解析,并獲取請求的資源及請求方法等相關信息,根據方法,資源,首部和可選的主體部分對請求進行處理
4、訪問資源:服務器獲取請求報文中請求的資源web服務器,即存放了web資源的服務器,復制向請求者提供對方請求的靜態(tài)資源,或動態(tài)運行后生成的資源
5、構建響應報文:一旦Web服務器識別除了資源,就執(zhí)行請求方法中描述的動作,并返回響應報文。響應報文中 包含有響應狀態(tài)碼、響應首部,如果生成了響應主體的話,還包括響應主體
1)響應實體:如果事務處理產生了響應主體,就將內容放在響應報文中回送過去。響應報文中通常包括:
- 描述了響應主體MIME類型的Content-Type首部
- 描述了響應主體長度的Content-Length
- 實際報文的主體內容
2)URL重定向:web服務構建的響應并非客戶端請求的資源,而是資源另外一個訪問路徑
3)MIME類型: Web服務器要負責確定響應主體的MIME類型。多種配置服務器的方法可將MIME類型與資源管理起來
- 魔法分類:Apache web服務器可以掃描每個資源的內容,并將其與一個已知模式表(被稱為魔法文件)進行匹配,以決定每個文件的MIME類型。這樣做可能比較慢,但很方便,尤其是文件沒有標準擴展名時
- 顯式分類:可以對Web服務器進行配置,使其不考慮文件的擴展名或內容,強制特定文件或目錄內容擁有某個MIME類型
- 類型協(xié)商: 有些Web服務器經過配置,可以以多種文檔格式來存儲資源。在這種情況下,可以配置Web服務器,使其可以通過與用戶的協(xié)商來決定使用哪種格式(及相關的MIME類型)"最好"
6、發(fā)送響應報文:Web服務器通過連接發(fā)送數據時也會面臨與接收數據一樣的問題。服務器可能有很多條到各個客戶端的連接,有些是空閑的,有些在向服務器發(fā)送數據,還有一些在向客戶端回送響應數據。服務器要記錄連接的狀態(tài),還要特別注意對持久連接的處理。對非持久連接而言,服務器應該在發(fā)送了整條報文之后,關閉自己這一端的連接。對持久連接來說,連接可能仍保持打開狀態(tài),在這種情況下,服務器要正確地計算Content-Length首部,不然客戶端就無法知道響應什么時候結束
7、記錄日志:最后,當事務結束時,Web服務器會在日志文件中添加一個條目,來描述已執(zhí)行的事務
3、建立httpd服務器,要求提供兩個基于名稱的虛擬主機:
[root@server ~]# yum -y install httpd
[root@server ~]# systemctl start httpd
[root@server ~]# systemctl enable httpd
[root@server ~]# echo "this is master http" >> /var/www/html/index.html
[root@client ~]# curl 192.168.108.18
this is master http
#(1)www.X.com,頁面文件目錄為/web/vhosts/x;錯誤日志為/var/log/httpd/x.err,訪問日志為/var/log/httpd/x.access
#(2)www.Y.com,頁面文件目錄為/web/vhosts/y;錯誤日志為/var/log/httpd/www2.err,訪問日志為/var/log/httpd/y.access
[root@server ~]# vi /etc/httpd/conf.d/Vhosts.conf
<VirtualHost *:80>
ServerName www.X.com
DocumentRoot "/web/vhosts/x"
ErrorLog "/var/log/httpd/x.err"
CustomLog "/var/log/httpd/x.access" combined
<Directory "/web/vhosts/x">
Options None
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName www.Y.com
DocumentRoot "/web/vhosts/y"
ErrorLog "/var/log/httpd/www2.err"
CustomLog "/var/log/httpd/y.access" combined
<Directory "/web/vhosts/y">
Options None
Require all granted
</Directory>
</VirtualHost>
[root@server ~]# mkdir -p /web/vhosts/{x,y}
#(3)為兩個虛擬主機建立各自的主頁文件index.html,內容分別為其對應的主機名
[root@server ~]# echo "this is www.X.com server" >> /web/vhosts/x/index.html
[root@server ~]# echo "this is www.Y.com server" >> /web/vhosts/y/index.html
[root@server ~]# systemctl restart httpd
#在192.168.108.8上
[root@client ~]# echo 192.168.108.18 www.X.com www.Y.com >> /etc/hosts
[root@client ~]# curl www.X.com
this is www.X.com server
[root@client ~]# curl www.Y.com
this is www.Y.com server
4、http狀態(tài)碼總結
**http協(xié)議狀態(tài)碼分類 **
1xx:100-101 信息提示
2xx:200-206 成功
3xx:300-307 重定向
4xx:400-415 錯誤類信息,客戶端錯誤
5xx:500-505 錯誤類信息,服務器端錯誤
http協(xié)議常用的狀態(tài)碼
200: 成功,請求數據通過響應報文的entity-body部分發(fā)送;OK
301: 請求的URL指向的資源已經被刪除;但在響應報文中通過首部Location指明了資源現在所處的新位置;Moved Permanently
302: 響應報文Location指明資源臨時新位置 Moved Temporarily
304: 客戶端發(fā)出了條件式請求,但服務器上的資源未曾發(fā)生改變,則通過響應此響應狀態(tài)碼通知客戶端;Not Modified
307: 瀏覽器內部重定向
401: 需要輸入賬號和密碼認證方能訪問資源;Unauthorized
403: 請求被禁止;Forbidden
404: 服務器無法找到客戶端請求的資源;Not Found
500: 服務器內部錯誤;Internal Server Error
502: 代理服務器從后端服務器收到了一條偽響應,如無法連接到網關;Bad Gateway
503: 服務不可用,臨時服務器維護或過載,服務器無法處理請求
504: 網關超時