最近時不時會看到一些HTTP的帖子,所以自己也寫一個,拿來備忘
HTTP中文全稱就叫「超文本傳輸協議」
之前一直都是看過就完了,這兩天看到幾篇文章,詳細解釋了一下這個名字,所以我也就跟着大概理解了一下。
超文本傳輸協議,分爲三個詞:「超文本」,「傳輸」,「協議」
超文本:互聯網初期只能傳遞文字文本信息,後來加了圖片、視頻、音頻等信息,再後來,裏面加了超鏈接,可以通過超鏈接跳轉,到這裏,就已經不是簡單地純文本信息了,語義擴大之後就被稱爲「超文本」‘。
傳輸:我通常理解爲「寄快遞」,只是「寄」的東西是數據,現實生活中是某個物品,這個時候,出來2個概念,一個「請求方」,一個「應答方」
在這裏,我們HTTP的請求是參見上網過程,請求百度:請求方發起請求並傳遞數據,響應方對請求執行並返回數據,這裏是一來一回的交互
協議:就是我們之間約定好的一種行爲方式。協議也分很多種,我們經常使用的QQ,使用就是QICQ協議,其實就是一種準則,我告訴你,我接受json格式的數據,你給我一個二進制的格式數據,那我就用不了,不知道你想說什麼(舉例就是我告訴你只會中文,你給我寫了一封日文信,我就讀不懂)
目前我們計算機的數據傳輸,無論是不是HTTP,還是其他的數據,其實 都要經過分層傳遞,這就又到了四層模型,五層模型,七層模型了,這裏不展開,貼個圖,看看就行。
HTTP請求,常見的使用是瀏覽器上,這裏簡單瞭解一下瀏覽器的內核。
目前市面上,我們經常看到360瀏覽器,谷歌瀏覽器,百度瀏覽器,搜狗瀏覽器,火狐瀏覽器,Safari(蘋果系統的瀏覽器)等等,會看到很多,但是其實很多瀏覽器,本質上都是使用的別人的內核,他們只是做了優化,如界面、功能增刪、響應速度等等。
那麼就大概瞭解一下主流的幾款瀏覽器內核吧。
這個地方,作爲測試而言,是一個面試的考點吧,還是要知道的
1XX:等待執行,是一種中間狀態,實際情況用到的比較少
2XX:請求成功
3XX:重定向
4XX:請求方錯誤
5XX:服務端錯誤
因爲HTTP請求是基於TCP傳輸協議進行傳輸的(HTTP/3 把 TCPP 層換成了基於 UDP 的 QUIC),所以這個地方延伸一下TCP請求的三次握手和四次揮手,不想詳細講,講了又有很多東西,貼個圖看看吧
HTTP 最突出的優點是:
簡單、靈活和易於擴展、應用廣泛和跨平臺
缺點:
無狀態和不安全
因爲HTTP的不安全性,導致後續出現一個HTTPS
HTTPS = HTTP + SSL
那麼問題來了,HTTPS和HTTP請求的區別是什麼?