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