1. 程式人生 > >淺析http一些知識點

淺析http一些知識點

很早之前整理過http的一些知識點,今天重新整理了一下:
域名解析的階段可以分為以下幾個:
根據域名找到伺服器的IP --> 發起TCP的3次握手 --> 建立TCP連線後發起http請求 --> 伺服器響應http請求,瀏覽器得到html程式碼 --> 瀏覽器解析html程式碼,並請求html程式碼中的資源(如js、css、圖片等) --> 瀏覽器對頁面進行渲染呈現給使用者。

1.解析HTML結構。
2.載入外部指令碼和css檔案。
3.解析並執行指令碼程式碼。
4.DOM樹構建完成。(此時會觸發DOMContentLoaded事件)
5.載入外部圖片等檔案。
6.頁面載入完畢。(此時會觸發load事件)
從以上DOM文件載入步驟上可以看出;當瀏覽器把DOM樹構建完成後就開始觸發了DOMContentLoaded事件,而load事件則要等包括圖片這些載入完畢才會觸發。
我們監聽事件的時候把優先順序高的可以先監聽DOMContentLoaded再監聽load。

瀏覽器幾種請求
HEAD:向伺服器索要與GET請求相一致的響應,只不過響應體將不會被返回。這一方法可以在不必傳輸整個響應內容的情況下,就可以獲取包含在響應訊息頭中的元資訊。
GET:向特定的資源發出請求。
POST:向指定資源提交資料進行處理請求(例如提交表單或者上傳檔案)。資料被包含在請求體中。POST請求可能會導致新的資源的建立和/或已有資源的修改。
PUT:向指定資源位置上傳其最新內容。
DELETE:請求伺服器刪除Request-URI所標識的資源。
TRACE:回顯伺服器收到的請求,主要用於測試或診斷。
CONNECT:HTTP/1.1協議中預留給能夠將連線改為管道方式的代理伺服器

GET和POST本質上就是TCP連結
1.GET請求在URL中傳送的引數是有長度限制的,而POST沒有,
2.GET比POST更不安全,因為引數直接暴露在URL上,所以不能用來傳遞敏感資訊
3.GET請求引數會被完整保留在瀏覽器歷史記錄裡,而POST中的引數不會被保留GET請求會被瀏覽器主動cache,而POST不會,除非手動設定
4.對於GET方式的請求,瀏覽器會把http header和data一併傳送出去,伺服器響應200(返回資料);而對於POST,瀏覽器先發送header,伺服器響應100 continue,瀏覽器再發送data,伺服器響應200 OPTIONS:返回伺服器針對特定資源所支援的HTTP請求方法。也可以利用向Web伺服器傳送’*'的請求來測試伺服器的功能性。

客戶方錯誤
100  繼續 101  交換協議
(成功) 200  OK 201  已建立 202  接收 203  非認證資訊
204  無內容 205  重置內容 206  部分內容
(重定向) 300  多路選擇 301  永久轉移 302  暫時轉移
303  參見其它 304  未修改(Not Modified) 305  使用代理
(客戶方錯誤) 400 錯誤請求(Bad Request) 401未認證 402 需要付費
403禁止(Forbidden) 404未找到(Not Found) 405方法不允許 406不接受
407需要代理認證 408 請求超時 409衝突 410失敗
411需要長度
( 伺服器錯誤) 500 伺服器內部錯誤 501 未實現(Not Implemented) 502 閘道器失敗 504閘道器超時 505 HTTP版本不支援
503服務暫時不可用