輸入網址並按下回車鍵那一刻起發生了什麼?(一)

前言

本次爲記錄學習《透視http協議》的感受。

正文

我們以一個問題來進入今天的討論。

問題:輸入網址並按下回車鍵那一刻起發生了什麼?(引自:《透視http協議》)

輸入網址後,瀏覽器通過http協議進行網絡請求,在一段時間內服務器會作出相應的響應,並根據狀態碼判斷是否此次請求成功與否做後續邏輯處理。

在沒有閱讀羅劍鋒老師的《透視http協議》之前,我會這樣回答,其實這個回答“太大”了,沒有將提問者想問的問題答到點上。我們換一種方式來回答:

用戶輸入網址後,由瀏覽器發起http請求,並將用戶的”需求“通過tcp/ip傳輸協議傳遞到服務器端,服務器根據拿到用戶需求後根據需求作出處理後,並將”資源“通過tcp/ip傳輸協議傳遞給瀏覽器,瀏覽器拿到資源後再作出後續邏輯處理。

這樣看來,這個回答比第一個回答看上去看似沒有太大變化,但是你會發現其中有幾個關鍵詞:需求資源tcp/ip拿到,這裏有兩個信息關鍵詞叫
需求資源,相信大家已經知道這其實就是http請求環節中的 報文,而
tcp/ip 則爲傳輸控制協議。而拿到則是一個動詞,對應http中的“報文解析”。

通過上述,我們可以用寫信這個例子來形容:

背景:牛郎和織女相隔甚遠,又不能經常相聚,怎麼辦?於是他們開始了寫信來寄託思念。

一天,牛郎寫了一封信,信的大致內容爲“banabana……,總之,我想你了”,於是投遞到郵箱,等待喜鵲來取走信件運送給織女,織女收到信件後,閱讀了信件內容,並也寫了一封信回覆牛郎:“阿郎,你的來信已收到,banabana……,我也很想你!”,這樣他們就完成了一次http通訊,那麼在這一次通訊來回中,牛郎即爲“請求方”,織女即爲“響應方”,喜鵲即爲“tcp/ip”傳輸控制協議,信件內容即爲“報文”,牛欄和織女拆信的過程則爲“報文解析”,與之對應的牛郎和織女把信件裝進信封則爲“報文封裝”。

通過以上例子你可以清晰的總結出,http的傳輸過程是一個“請求-響應”的過程,其包含請求方(client)發起請求+tcp/ip+響應方(server)】迴應請求等環節,在發送前需要對內容進行“包裝”,然後通過tcp/ip傳輸給接收者,接收者收到內容後對內容進行“解析”,進而才能獲取到具體內容。在“包裝”和“解析”過程,他們都在做什麼呢?“包裝”了什麼,“解析”了什麼?試想,在現實生活中,我們要能夠成功的將一封信寄送到親人手裏,需要什麼關鍵信息?答案當然是”收件地址+郵編+收件人姓名“、“寄信人地址+姓名”,這就是報文包裝和解析的內容,我要寫信給對方,我必須得知道對方的地址和姓名等信息,也要告知對方我的信息,不要玩匿名,郵局是會拒收的,因此不難理解http包裝和解析的內容即爲client和server的信息,通過http中header表現,以k-v形式存在,且爲可讀性的文本內容。信件對應的真實內容即爲http中的body,接下來我們來看看http協議中的報文。

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