本文爲HTTP入門學習記錄,參考自本視頻,本文會以簡單易懂的語言向各位介紹什麼是HTTP。html
一種通訊協議前端
被各種智能終端(手機、電腦、智能電視等等)使用chrome
http客戶端發起請求,建立到服務器指定端口的TCP鏈接。後端
http服務器在端口監聽客戶端請求瀏覽器
http服務器向客戶端返回狀態(eg:狀態碼200)和內容緩存
Chorme搜索自身的DNS緩存(能夠在chrome中輸入chrome://net-internals/#dns)服務器
搜索操做系統自身的DNS緩存(瀏覽器沒有找到緩存或者緩存已經失效)微信
讀取本地的HOST文件ide
瀏覽器發器一個DNS的一個系統調用(寬帶運營商提供的API)學習
寬帶運營商服務器查看自己緩存
運營商服務器發器一個迭代DNS解析請求,好比訪問域名爲vagor.cc迭代方式以下:
先訪問根域DNS的ip地址,獲得了.cc域的ip地址(即持有.cc的組織)
再訪問.cc域的ip地址,獲得了vagor.cc域的ip地址(即相似於萬網的域名提供商)
再訪問vagor.cc域的ip地址,找到了vaogr.cc的ip地址
運營商服務器把結果返回操做系統內核同時緩存起來,再返回給瀏覽器
最後瀏覽器拿到了vagor.cc的ip地址
瀏覽器得到域名對應的ip地址後,發起TCP/IP的「三次握手」。這裏不詳細贅述,請查看連接
TCP/IP鏈接創建起來後,瀏覽器就能夠向服務器發送HTTP請求使用了
好比說,用http的GET方法請求根域裏的一個域名,協議建議採用HTTP 1.0的一個協議
服務器端接收到了這個請求,根據路徑參數,進事後端的一些處理以後,把處理後的一個結果的數據返回給瀏覽器,若是是網頁頁面,就會把完整的HTML頁面代碼返回給瀏覽器
瀏覽器拿到了完整的HTML頁面代碼,在解析和渲染這個頁面的時候,裏面的JS,CSS,圖片靜態資源,他們一樣也是一個個HTTP請求,都須要通過上面的主要七個步驟
瀏覽器拿到全部資源,進行渲染,最終把一個完整的頁面呈現給用戶
請求頭
包含狀態碼,通訊方式,……
請求體(內容)
GET 向服務器獲取資源
POST 向服務器提交資源
PUT 向服務器更新資源
DELETE 向服務器刪除資源
HEAD
TRACE
OPTIONS
CONNECT
1xx 請求已接受,繼續處理
2xx 請求已處理成功
3xx 重定向,須要進一步指令
4xx 客戶端錯誤(eg:請求語法錯誤)
5xx 服務器錯誤
200 成功
400 客戶端語法錯誤
401 未受權
403 已收到請求,拒絕
404 沒找到文件
500 服務器發生不可知錯誤
503 服務器端當前還不能處理請求
如對個人文章感興趣,請關注微信公衆號「每日前端」,天天分享一篇優質前端文章。