跟我一起學習GO語言010——Web服務器的工作原理

????? 本節我們介紹Web服務器的工作原理是什么?如果我們要在GO語言中搭建Web服務器我們需要了解那些基礎知識呢?

? ? ?對于我們普通上網過程,系統其實是這樣做的,相比有相關網絡基礎的人,也了解一些;瀏覽器(谷歌瀏覽器、IE瀏覽器、火狐瀏覽器、360瀏覽器等)本身是一個客戶端,當你輸入URL的時候,瀏覽器首先會去請求DNS服務器,通過DNS服務器獲取相應域名的IP,然后通過IP地址找到對應的服務器后,要求建立TCP連接,等瀏覽器發送完HTTP Request(請求)包后,服務器接收到請求包之后才開始處理請求包,服務器調用自身服務,返回HTTP Response (響應)包;客戶端收到來自服務器的響應后開始渲染這個Response包里的主體(body),等收到全部內容,隨后斷開與服務器之間的TCP連接。

?????? 一個Web服務器也被稱為HTTP服務器,它通過HTTP協議與客戶端通信。這個客戶端通常指Web瀏覽器,我們常用的手機訪問網頁的過程也是一樣的。

????? URL和DNS是什么呢?URL(Uniform Resource Locator)是“統一資源定位符”的英文縮寫,用于描述一個網絡上的資源;DNS(Domain Name System)是“域名系統“的英文縮寫,是一種組織成域層次結構的計算機和網絡服務器域名系統,它用于TCP/IP網絡,它從事將主機名或域名轉換為實際IP地址的工作。估計不是學習計算機專業的人都不太了解DNS的解析過程,我們來看看DNS解析的過程是怎么樣的:

????? 1. 在瀏覽器中輸入www.abc.com域名,操作系統會檢查本機的hosts文件是否有這個網址的映射關系,如果有,就先用這個IP地址映射,完成域名解析。
????? 2. 如果hosts里面沒有這個域名的映射,則查找本地DNS解析器緩存,是否有這個網址映射關系,如果有,直接返回,返回域名解析。
???? 3. 如果以上都沒有相應的映射關系,首先會找TCP/IP參數設置的首選DNS服務器,在此我們叫它本地DNS服務器,此服務器收到查詢時,如果要查詢的域名包含在本地配置區域資源中,則返回解析結果給客戶機,完成域名解析,此域名解析具有權威性。
???? 4. 如果要查詢的域名,不由本地DNS服務器區域解析,但是該服務器已經緩存了此網址映射關系,則調用這個IP地址映射,完成域名解析,此解析不具有權威性。
???? 5. 如果本地DNS服務器本地區域文件與緩存解析都失效,則根據本地DNS服務器的設置(是否設置轉發器)進行查詢,如果未用轉發模式,本地DNS就把請求發至“根DNS服務器”,“根DNS服務器”收到請求后會判斷這個域名(.com)是誰來授權管理,并返回一個負責該頂級域名服務器的一個IP。本地DNS服務器收到IP信息后,將會聯系負責.com域的這臺服務器。這臺負責.com域服務器收到請求后,如果直接無法解析,它就會找管理.com域的下一級DNS服務器地址給本地DNS服務器。本地DNS收到返回的地址后就會查找管理的域服務器直到找到為止。
????? 6. 如果用的是轉發模式,此DNS服務器就會把請求轉發至上一級DNS服務器,由上一級服務器進行解析,如果上一級也無法解析,找到根DNS或把轉請求至上上級以此循環。不管是本地DNS轉發還是根據提示,最后都是把結果返回給本地DNS服務器,由此DNS服務器返回給客戶機。

? ? ? 接下來我們看看Web工作的核心HTTP協議,了解HTTP是怎樣工作的,HTTP請求有幾種,常用的有幾種。
? ??? HTTP是一種讓Web服務器與瀏覽器通過Internet發送與接收數據的協議,它建立在TCP協議之上,一般采用的80端口。它是一個請求、響應協議一客戶端發出一個請求,服務器響應這個請求。

?????? HTTP定義了多種與服務器交互的請求方法,最基本的有4種,分別是GET、POST、PUT、DELETE。我們最常見的是GETPOST

?????? HTTP協議是無狀態的,同一個客戶端的這次請求和上次請求時沒有對應關系的,對于HTTP服務器來說,它并不知道這兩個請求是否來自同一個客戶端。為了解決這個問題,Web程序引入了Cookie機制來維護連接的可持續狀態。

? ? ?請開始你的表演,踐行,踐行,再踐行。未完待續。。。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,963評論 6 542
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,348評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,083評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,706評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,442評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,802評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,795評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,983評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,542評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,287評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,486評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,030評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,710評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,116評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,412評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,224評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,462評論 2 378

推薦閱讀更多精彩內容