網(wǎng)站設(shè)計(jì)怎么保持風(fēng)格一致視頻廣告接單平臺
HTTP請求
HTTP請求是客戶端往服務(wù)端發(fā)送請求動作,告知服務(wù)器自己的要求。
HTTP請求由狀態(tài)行、請求頭、請求正文三部分組成:
- 狀態(tài)行:包括請求方式Method、資源路徑URL、協(xié)議版本Version;
- 請求頭:包括一些訪問的域名、用戶代理、Cookie等信息;
- 請求正文:就是HTTP請求的數(shù)據(jù)。
PS:請求方式Method一般有GET、POST、PUT、DELETE,含義分別是獲取、修改、上傳、刪除,其中GET方式僅僅為獲取服務(wù)器資源,方式較為簡單,因此在請求方式為GET的HTTP請求數(shù)據(jù)中,請求正文部分可以省略,直接將想要獲取的資源添加到URL中。
HTTP響應(yīng)
服務(wù)器收到了客戶端發(fā)來的HTTP請求后,根據(jù)HTTP請求中的動作要求,服務(wù)端做出具體的動作,將結(jié)果回應(yīng)給客戶端,稱為HTTP響應(yīng)。
1.響應(yīng)數(shù)據(jù)格式
HTTP響應(yīng)由三部分組成:狀態(tài)行、響應(yīng)頭、響應(yīng)正文;
- 狀態(tài)行:包括協(xié)議版本Version、狀態(tài)碼Status Code、回應(yīng)短語;
- 響應(yīng)頭:包括搭建服務(wù)器的軟件,發(fā)送響應(yīng)的時間,回應(yīng)數(shù)據(jù)的格式等信息;
- 響應(yīng)正文:就是響應(yīng)的具體數(shù)據(jù)。
備注:我們主要關(guān)心并且能夠在客戶端瀏覽器看得到的是三位數(shù)的狀態(tài)碼,不同的狀態(tài)碼代表不同的含義,其中
1xx | 表示HTTP請求已經(jīng)接受,繼續(xù)處理請求 |
2xx | 表示HTTP請求已經(jīng)處理完成 |
3xx | 表示把請求訪問的URL重定向到其他目錄 |
4xx | 表示客戶端出現(xiàn)錯誤 |
5xx | 表示服務(wù)端出現(xiàn)錯誤 |
2.常見狀態(tài)碼的含義
- 200—OK/請求已經(jīng)正常處理完畢
- 301—/請求永久重定向
- 302—/請求臨時重定向
- 304—/請求被重定向到客戶端本地緩存
- 400—/客戶端請求存在語法錯誤
- 401—/客戶端請求沒有經(jīng)過授權(quán)
- 403—/客戶端的請求被服務(wù)器拒絕,一般為客戶端沒有訪問權(quán)限
- 404—/客戶端請求的URL在服務(wù)端不存在
- 500—/服務(wù)端永久錯誤
- 503—/服務(wù)端發(fā)生臨時錯誤
3.HTTP響應(yīng)模型
服務(wù)器收到HTTP請求之后,會有多種方法響應(yīng)這個請求,下面是HTTP響應(yīng)的四種模型:
單進(jìn)程I/O模型
服務(wù)端開啟一個進(jìn)程,一個進(jìn)程僅能處理一個請求,并且對請求順序處理;
多進(jìn)程I/O模型
服務(wù)端并行開啟多個進(jìn)程,同樣的一個進(jìn)程只能處理一個請求,這樣服務(wù)端就可以同時處理多個請求;
復(fù)用I/O模型
服務(wù)端開啟一個進(jìn)程,但是呢,同時開啟多個線程,一個線程響應(yīng)一個請求,同樣可以達(dá)到同時處理多個請求,線程間并發(fā)執(zhí)行;
復(fù)用多線程I/O模型
服務(wù)端并行開啟多個進(jìn)程,同時每個進(jìn)程開啟多個線程,這樣服務(wù)端可以同時處理進(jìn)程數(shù)M*每個進(jìn)程的線程數(shù)N個請求。
HTTP報(bào)文格式
HTTP報(bào)文是HTTP應(yīng)用程序之間傳輸?shù)臄?shù)據(jù)塊,HTTP報(bào)文分為HTTP請求報(bào)文和HTTP響應(yīng)報(bào)文,但是無論哪種報(bào)文,他的整體格式是類似的,大致都是由起始、首部、主體三部分組成,起始說明報(bào)文的動作,首部說明報(bào)文的屬性,主體則是報(bào)文的數(shù)據(jù)
請求報(bào)文:
起始:狀態(tài)行
首部:
Accept 指定客戶端能夠接收的內(nèi)容格式類型
Accept-Language 指定客戶端能夠接收的語言類型
Accept-Ecoding 指定客戶端能夠接收的編碼類型
User-Agent 用戶代理,向服務(wù)器說明自己的操作系統(tǒng)、瀏覽器信息
Connection 是否開啟持久連接
Host 服務(wù)器域名
主體:報(bào)文的具體數(shù)據(jù)
響應(yīng)報(bào)文:
起始:狀態(tài)行
首部:
Server 服務(wù)器軟件名 Apache/Nginx
Date 服務(wù)器發(fā)出響應(yīng)報(bào)文的時間
Last-Modified 請求資源最后修改時間
主體:響應(yīng)報(bào)文的具體數(shù)據(jù)
HTTP協(xié)議版本
HTTP/0.9
HTTP協(xié)議的最初版本,功能簡陋,僅支持請求方式GET,并且僅能請求訪問HTML格式的資源。
HTTP/1.0
在0.9版本上做了進(jìn)步,增加了請求方式POST和HEAD;不再局限于0.9版本的HTML格式,根據(jù)Content-Type可以支持多種數(shù)據(jù)格式,即MIME多用途互聯(lián)網(wǎng)郵件擴(kuò)展,例如text/html、image/jpeg等;同時也開始支持cache,就是當(dāng)客戶端在規(guī)定時間內(nèi)訪問統(tǒng)一網(wǎng)站,直接訪問cache即可。
但是1.0版本的工作方式是每次TCP連接只能發(fā)送一個請求,當(dāng)服務(wù)器響應(yīng)后就會關(guān)閉這次連接,下一個請求需要再次建立TCP連接,就是不支持keepalive。
HTTP/1.1
解決了1.0版本的keepalive問題,1.1版本加入了持久連接,一個TCP連接可以允許多個HTTP請求; 加入了管道機(jī)制,一個TCP連接同時允許多個請求同時發(fā)送,增加了并發(fā)性;新增了請求方式PUT、PATCH、DELETE等。
但是還存在一些問題,服務(wù)端是按隊(duì)列順序處理請求的,假如一個請求處理時間很長,則會導(dǎo)致后邊的請求無法處理,這樣就造成了隊(duì)頭阻塞的問題;同時HTTP是無狀態(tài)的連接,因此每次請求都需要添加重復(fù)的字段,降低了帶寬的利用率。
HTTP/2.0
為了解決1.1版本利用率不高的問題,提出了HTTP/2.0版本。增加雙工模式,即不僅客戶端能夠同時發(fā)送多個請求,服務(wù)端也能同時處理多個請求,解決了隊(duì)頭堵塞的問題;HTTP請求和響應(yīng)中,狀態(tài)行和請求/響應(yīng)頭都是些信息字段,并沒有真正的數(shù)據(jù),因此在2.0版本中將所有的信息字段建立一張表,為表中的每個字段建立索引,客戶端和服務(wù)端共同使用這個表,他們之間就以索引號來表示信息字段,這樣就避免了1.0舊版本的重復(fù)繁瑣的字段,并以壓縮的方式傳輸,提高利用率。
另外也增加服務(wù)器推送的功能,即不經(jīng)請求服務(wù)端主動向客戶端發(fā)送數(shù)據(jù)。
當(dāng)前主流的協(xié)議版本還是HTTP/1.1版本。
網(wǎng)站訪問量
IP IP訪問量
相同的公網(wǎng)IP計(jì)算一次,就是同一個局域網(wǎng)內(nèi)的所有用戶訪問一個網(wǎng)站,但是他們都是借助一個公網(wǎng)IP去訪問那個網(wǎng)站的(NAT),因此這也只能算作一個IP訪問量。換一次公網(wǎng)IP則會加1。
PV 網(wǎng)頁訪問量
用戶訪問的頁面數(shù)就是PV訪問量,同一個局域網(wǎng)的不同用戶,而且就算是同一個用戶,只要刷新一次網(wǎng)站頁面,PV訪問量就加1,三個訪問量的值往往數(shù)PV的值最大。
UV 訪客訪問量
這里的訪客不是用戶,而是電腦,一臺電腦算一個訪客,即使是同一臺電腦的不同用戶,訪問同一個網(wǎng)站UV也只能加1,只有更換電腦才會使UV加1,因?yàn)榉?wù)端會記錄客戶端電腦的信息。