一. 寫在前面
去年粗讀《HTTP權(quán)威指南》和《圖解HTTP》還有部分《TCP/IP詳解》后,覺得心里明亮不少,Web的大門又向我敞開了一些??。如今回想起來說到粗讀,對我的形容還是很準(zhǔn)確的,因為到現(xiàn)在,我基本忘了看到了什么,學(xué)到了什么。但是又覺得,我明明都看了呀。所以我也只能從一個普通程序員的角度來敘述,在我的前端開發(fā)到服務(wù)器和服務(wù)端代碼的幾方面流程中,盡可能多的了解HTTP會帶給我們個人什么好處,也鼓勵愛技術(shù)的新司機更多的了解HTTP, 這是我們做應(yīng)用層面的研發(fā)人必備的素養(yǎng)。
接下來我將從請求發(fā)出到拿到結(jié)果來簡單敘述,這里敘述的僅僅是我們開發(fā)中每天能遇到的整體流程,沒提代理,沒有網(wǎng)關(guān),沒有SSL, 沒有緩存,沒有認(rèn)證,沒有報文詳解。細(xì)節(jié)的部分我無法分享過多,畢竟兩本HTTP的書籍超過一千頁,超級推薦。
二. 先談DNS
既然打算從實際工作的角度來談,那還是要說一下從我們的前端頁面或者是前端AJAX請求如何拿到響應(yīng)。
在我們輸入網(wǎng)址或者發(fā)起AJAX Http請求時, 由于HTTP協(xié)議基于TCP/IP協(xié)議簇, 要建立TCP通信通道時, IP地址和端口號是必要的。 如何通過域名拿到IP地址呢?這就通過DNS(Domain Name System)域名系統(tǒng)。域名系統(tǒng)是誰的,域名系統(tǒng)在哪兒呢? 像BAT,Sina這種大公司,一級域名DNS當(dāng)然是自己搭建的了,根域名.com .cn .net此類都是在全世界13臺根服務(wù)器上進行解析的.