HTTP協議說明

HTTP協議原理介紹

掌握用戶訪問網站流程:
1)利用DNS服務進行域名解析(DNS解析原理-遞歸查詢/迭代查詢)
2)用戶端要和企業網站服務器建立網絡連接(TCP三次握手過程/三次握手的狀態轉換)
3)用戶請求網站發送相應頁面信息 --- http請求報文發送(客戶端發出)
3+) 根據網站架構層次,順明詳細請求過程
4)網站響應用戶請求,發送相應頁面信息 --- http響應報文發送(服務端發出)
5)用戶端要和企業網站服務器斷開網絡連接(TCP四次揮手過程/四次揮手的狀態轉換)

2.1 HTTP協議原理介紹

HTTP協議,全稱HyperText Transfer Protocol,中文名爲超文本傳輸協議
HTTP的重要應用之一是WWW服務
www,全稱World Wide Web,常稱爲Web,中文譯爲“萬維網”
HTTP協議的WWW服務應用的默認端口爲80
另外一個加密的WWW服務應用https的默認端口爲443
說明:一般互聯網公司,對外開放的端口,只有兩個(80和443)

2.2 HTTP協議報文結構詳細說明

HTTP請求報文結構
請求行:
a 請求方法:
get --- 獲得請求文件信息的數據內容(獲取)
post --- 告知服務需要保存的數據信息(提交)
b 請求文件信息
說明:當沒有指定請求的文件內容,默認請求的是首頁文件index.html
c 說明請求報文采用什麼http協議版本
HTTP協議版本說明
1.0:規定瀏覽器與服務器只保持短暫的連接(TCP短連接)
1.1:規定瀏覽器與服務器只保持長久的連接(TCP長連接)

請求頭內容:

空行

請求主體內容:
說明:採用get方法時,不會有請求主體內容;採用post方法時,將要提交的信息放入請求主體中

2.3 HTTP響應報文結構

起始行:
a HTTP協議版本
HTTP協議版本說明
1.0:規定瀏覽器與服務器只保持短暫的連接(TCP短連接)
1.1:規定瀏覽器與服務器只保持長久的連接(TCP長連接)
b HTTP響應狀態碼信息
告知請求的結果
200 --- 正常響應請求報文
301 --- 跳轉,永久跳轉
302 --- 跳轉,臨時跳轉
403 --- 設置指定頁面拒絕訪問;(*****還有一種情況???)
404 --- 找不到我所要請求的文件內容(找不到請求的頁面信息)
500+ --- 網站後端服務器出現了問題(大部分情況都是網站出現問題)
說明:詳細瞭解很多http狀態碼,http權威指南
c HTTP狀態描述信息
curl命令可以在linux系統中,模擬瀏覽器功能,訪問網站
-I --- 顯示響應報文起始行和響應頭部信息

響應頭部:

空行

HTTP協議說明
HTTP協議說明

響應報文主體:
說明:就是請求報文中,所要請求文件的內容;客戶端瀏覽器會識別響應報文主體內容,進行解析

以上信息命令查看方法:
curl -v www.oldboyedu.com <- 利用curl命令的-v參數,查看訪問網站請求與響應信息
wget --debug www.oldboyedu.com <- 利用wget命令的--debug參數,查看訪問網站請求與響應信息

2.4 HTTP請求與相應報文說明

HTTP協議說明

2.5 HTTP術語介紹說明

2.5.1 媒體資源類型
說明:定義相應web服務可以識別的文件資源類型;
?如果媒體資源類型中有相應請求文件類型,會幫你進行解析
?如果媒體資源類型中沒有響應請求文件類型,會將文件傳輸給客戶端,自行解析

2.5.2 URL與URI概念介紹
URL,全稱爲Uniform Resource Location,中文翻譯爲統一資源定位符
URI,全稱爲Uniform Resource Identifier,中文翻譯爲統一資源標識符

  https://search.jd.com     /     Search?keyword=10tb&enc=utf-8&suggest=3.his.0
      URL                                        URI

2.5.3 靜態網頁資源
純粹HTML格式的網頁(可以包含圖片、視頻JS(前端功能實現)、CSS(樣式)等)通常被稱爲“靜態網頁”
特徵說明:
1)每個頁面都有一個固定的URL地址,且URL一般以.html、.htm、.shtml等常見形式爲後綴,
而且地址中不含有問號“?”或“&”等特殊符號。
2)靜態網頁是實實在在保存在服務器上的文件實體,每個網頁都是一個獨立的文件
3)靜態資源不需要和數據庫進行交互,因此網站交互性能差
4)網頁內容是固定不變的,因此,容易被搜索引擎收錄(容易被用戶找到)(優點)
5)網頁程序在用戶瀏覽器端解析,當客戶端向服務器請求數據時,
服務器會直接從磁盤文件系統上返回數據(不做任何解析)

2.5.4 動態網頁資源
所謂的動態網頁是與靜態網頁相對而言的,也就是說,動態網頁的URL後綴不是.html、.htm、.xml、.shtml、.js、.css等靜態網頁的常見擴展名形式
特徵說明
1)動態資源需要和數據庫進行交互,因此網站交互性能好
省略...

  5)網頁程序在服務端解析,當客戶端向服務器請求數據時,
     服務器會直接從磁盤文件系統上返回數據(會做數據解析後返回)
     ![](http://i2.51cto.com/images/blog/201801/14/38df26e40f991374aa0fe36be68d5a48.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

2.5.5 僞靜態資源(瞭解/真正企業中有開發人員負責僞靜態資源編寫)
1) 網頁內容是固定不變的,因此,容易被搜索引擎收錄
2) 網頁程序在用戶瀏覽器端解析,當客戶端向服務器請求數據時,
服務器會直接從磁盤文件系統上返回數據(不做任何解析)
3) 動態資源需要和數據庫進行交互,因此網站交互性能優
4)網頁程序在服務端解析,當客戶端向服務器請求數據時,
服務器會直接從磁盤文件系統上返回數據(會做數據解析後返回)

2.6 HTTP請求的方法

HTTP協議說明

2.7 如何證明一個網站有價值?

IP度量值:(參考值)   
根據訪問的用戶源IP地址進行統計,判斷有多少用戶進行訪問?
說明:有可能統計數值不準確
a 由於有NAT映射問題,會把局域網多臺主機不同的源IP地址映射爲一個相同的公網源IP地址
b 由於家用撥號網絡,沒有固定的外網IP地址

數據計算方法:
01)利用awk數組方法結合nginx訪問日誌(分享講解awk多維數組)
02)通過程序代碼進行統計
    <script>
        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);
        })();
    </script>
    說明:通過代碼實現IP度量值統計記錄
03)藉助第三方工具進行統計

2.8 PV度量值:(參考值)

page view:頁面訪問量
    數據計算方法:
01)利用awk數組方法結合nginx訪問日誌(分享講解awk多維數組)
02)通過程序代碼進行統計
    <script>
        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);
        })();
    </script>
    說明:通過代碼實現IP度量值統計記錄
03)藉助第三方工具進行統計

UV度量值:
記錄一個獨立訪客數;利用cookie進行統計記錄
cookie: 記錄客戶端訪問信息,cookie信息一般會保存在客戶端
session:記錄客戶端訪問信息,session信息一般會保存在服務端

2.9 數據計算方法:

01)利用awk數組方法結合nginx訪問日誌(分享講解awk多維數組)
02)通過程序代碼進行統計
    <script>
        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);
        })();
    </script>
    說明:通過代碼實現IP度量值統計記錄
03)藉助第三方工具進行統計

最終度量統計信息獲取,利用第三方統計網站獲取
http://alexa.chinaz.com/alexa_more.aspx

2.10 網站併發概念

A種理解:網站服務器每秒能夠接收的最大用戶請求數。
B種理解:網站服務器每秒能夠響應的最大用戶請求數。
C種理解:網站服務器在單位時間內能夠處理的最大連接數。(推薦)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章