HTTP協議原理
HTTP協議,全稱HyperText Transfer Protocol,中文名為超文本傳輸協議
HTTP的重要應用之一是WWW服務
www,全稱World Wide Web,常稱為Web,中文譯為”萬維網”
HTTP協議的WWW服務應用的默認端口為80
另外一個加密的WWW服務應用https的默認端口為443
說明:一般互聯網公司,對外開放的端口,只有兩個(80和443)
HTTP協議報文結構詳細說明
- HTTP請求報文結構
1)請求行
a 請求方法
get ----獲得請求文件信息的數據內容 (獲取)
post ----告知服務器需要保存的數據信息(提交)
b 請求文件信息
說明:當沒有指定請求的文件內容,默認請求的是首頁文件index.html
c 說明請求報文采用的說明http協議版本
1.0: 規定瀏覽器與服務器只保持短暫的連接(TCP短連接)
1.1: 規定瀏覽器與服務器只保持長久的連接 (TCP長連接)
2)請求頭(內容)
3)空行
4)請求主體內容
說明:採用get方法時,不會有請求主體內容;採用post方法時,將要提交的信息放入請求主體中
- HTTP響應報文結構
1)起始行:
a HTTP協議版本說明
1.0: 規定瀏覽器與服務器只保持短暫的連接(TCP短連接)
1.1: 規定瀏覽器與服務器只保持長久的連接 (TCP長連接)
b HTTP響應狀態碼信息
告知請求的結果
200 --- 正常響應請求報文
301 --- 跳轉,永久跳轉
302 --- 跳轉,臨時跳轉
403 --- 設置指定頁面,拒接訪問:(權限問題)
404 --- 找不到我所要請求的文件內容(找不到請求的頁面信息)
500+ --- 網站後端服務器出現了問題(大部分情況都是網站出現問題)
說明:詳細瞭解很多HTTP狀態碼,http權威指南
c HTTP狀態描述信息
curl 命令可以在linux系統中,模擬瀏覽器功能,訪問網站
-I ----- 顯示響應報文起始行和響應頭部信息
2)響應頭部
3) 空行
4)響應報文主體
說明:就是請求報文中,所要請求文件的內容:客戶端瀏覽器會識別響應報文主體內容,進行解析。
- 不同狀態範圍碼及其作用
- HTTP基礎原理圖 請求與響應報文詳細信息
- HTTP術語介紹說明
互聯網上的數據有很多種不通的類型,Web服務器會把通過Web傳輸的每個對象都打上MIME類型(即MIME type)的數據格式標籤。最初設計MIME(multipurpose internet mail Extension,多用途因特網郵件擴展)是為了解決再不同的電子郵件系統之間搬移報文時存在的問題。MIME在電子郵件系統種工作得非常好。後來,HTTP也支持這個功能,用它來描述數據並標記不同的數據內容類型。
當Web服務器響應HTTP請求時,會為每一個HTTP對象數據加一個MIME類型,當Web瀏覽器獲取到服務器返回的對象時,會去看看相關的MIME類型,並進行相應的處理。
MIME類型存在與HTTP響應報文的響應頭部信息裡,它是一種文件標記,表示一種主要的對象和一個特定的子類型,中間由一條斜槓來分割。
1) 媒體資源類型
說明:定義相應web服務可以識別的文件資源類型
如果媒體資源類型中有相應請求文件類型,會幫你進行解析
如果媒體資源類型中沒有相應請求文件類型,會將文件傳輸給客戶端,自行解析
2) URL與URI概念介紹
URL 全稱為 uniform resource location,中文翻譯為統一資源定位符 比如:jingdong.com.hhk URI 全稱為 uniform resource identifier 中文翻譯為統一資源標識符 比如:jingdong.com
3)靜態網頁資源
門戶新聞業務
新聞網站的特點是一旦發佈完成,幾乎不會再改動網頁內容,因此,新聞業務內容靜態化相對比較簡單。
純粹HTML格式的頁面(可以包含圖片、視頻JS(前段功能實現)、CSS(樣式)等)通常被稱為”靜態網頁”
特徵說明:
a 每個頁面都有一個固定的URL地址,且URL一般以.html、.htm、.shtml等常見形式為後綴,而且地址中不含有問號“?”或“&”等特殊符號。
b 靜態網頁是實實在在保存在服務器上的文件實體,每個網頁都是一個獨立的文件
c 靜態資源不需要和數據庫進行交互,因此網站交互性能差
d 網頁內容是固定不變的,因此,容易被搜索引擎收錄(容易被用戶找到)(優點)
e 網頁程序在用戶瀏覽器端解析,當客戶端向服務器請求數據時,
服務器會直接從磁盤文件系統上返回數據(不做任何解析)
4)動態網頁資源
所謂的動態網頁是與靜態網頁相對而言的,也就是說,動態網頁的URL後綴不是.html、.htm、.xml、.shtml、.js、.css等靜態網頁的常見擴展名形式
特徵說明:
A 動態資源需要和數據庫進行交互,因此網站交互性能好
省略...
B 網頁程序在服務端解析,當客戶端向服務器請求數據時,
服務器會直接從磁盤文件系統上返回數據(會做數據解析後返回)
5) 偽靜態資源(瞭解/真正企業中有開發人員負責偽靜態資源編寫)
A 網頁內容是固定不變的,因此,容易被搜索引擎收錄
B 網頁程序在用戶瀏覽器端解析,當客戶端向服務器請求數據時,服務器會直接從磁盤文件系統上返回數據(不做任何解析)
C 動態資源需要和數據庫進行交互,因此網站交互性能優
D 網頁程序在服務端解析,當客戶端向服務器請求數據時,服務器會直接從磁盤文件系統上返回數據(會做數據解析後返回)
如何證明一個網站有價值
- IP度量值:(參考值)
根據訪問的用戶源IP地址進行統計,判斷有多少用戶進行訪問?
說明:有可能統計數值不準確
a 由於有NAT映射問題,會把局域網多臺主機不同的源IP地址映射為一個相同的公網源IP地址
b 由於家用撥號網絡,沒有固定的外網IP地址
數據計算方法:
01)利用awk數組方法結合nginx訪問日誌(分享講解awk多維數組)
02)通過程序代碼進行統計
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?9aa800f882f575237396648643111698";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
說明:通過代碼實現IP度量值統計記錄
03)藉助第三方工具進行統計
- PV度量值:(參考值)
page view:頁面訪問量
數據計算方法:
01)利用awk數組方法結合nginx訪問日誌(分享講解awk多維數組)
02)通過程序代碼進行統計
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?9aa800f882f575237396648643111698";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
說明:通過代碼實現IP度量值統計記錄
03)藉助第三方工具進行統計
- UV度量值
記錄一個獨立訪客數;利用cookie進行統計記錄
cookie: 記錄客戶端訪問信息,cookie信息一般會保存在客戶端
session:記錄客戶端訪問信息,session信息一般會保存在服務端
數據計算方法:
01)利用awk數組方法結合nginx訪問日誌(分享講解awk多維數組)
02)通過程序代碼進行統計
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?9aa800f882f575237396648643111698";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
說明:通過代碼實現IP度量值統計記錄
03)藉助第三方工具進行統計
網站度量linux企業運維常見面試題
- 你如何理解網站併發?
- 公司訪問量是多少,怎麼計算的?按照PV UV IP 併發來三個知識點去侃
本次完,謝謝大家支持。——ke.ke
閱讀更多 王牌和老K 的文章