- 深入分析Java Web技術(shù)內(nèi)幕
- 許令波
- 808字
- 2018-12-30 19:21:07
第1章 深入Web請(qǐng)求過程
隨著Web 2.0時(shí)代的到來(lái),互聯(lián) 網(wǎng)的網(wǎng)絡(luò)架構(gòu)已經(jīng)從傳統(tǒng)的C/S架構(gòu)轉(zhuǎn)變到更加方便快捷的B/S架構(gòu),B/S架構(gòu)大大簡(jiǎn)化了用戶使用網(wǎng)絡(luò)應(yīng)用的難度,這種人人都能上網(wǎng)、人人都能使用網(wǎng)絡(luò)上提供的服務(wù)的方法也進(jìn)一步推動(dòng)了互聯(lián)網(wǎng)的繁榮。
B/S架構(gòu)帶來(lái)了兩方面好處:
◎ 客戶端使用統(tǒng)一的瀏覽器(Browser)。由于瀏覽器具有統(tǒng)一性,它不需要特殊的配置和網(wǎng)絡(luò)連接,有效地屏蔽了不同服務(wù)提供商提供給用戶使用服務(wù)的差異性。另外,最重要的一點(diǎn)是,瀏覽器的交互特性使得用戶使用它非常簡(jiǎn)便,且用戶行為的可繼承性非常強(qiáng),也就是用戶只要學(xué)會(huì)了上網(wǎng),不管使用的是哪個(gè)應(yīng)用,一旦學(xué)會(huì)了,在使用其他互聯(lián)網(wǎng)服務(wù)時(shí)同樣具有了使用經(jīng)驗(yàn),因?yàn)樗鼈兌蓟谕瑯拥臑g覽器操作界面。
◎ 服務(wù)端(Server)基于統(tǒng)一的HTTP協(xié)議。和傳統(tǒng)的C/S架構(gòu)使用自定義的應(yīng)用層協(xié)議不同,B/S架構(gòu)使用的都是統(tǒng)一的HTTP協(xié)議。使用統(tǒng)一的HTTP協(xié)議也為服務(wù)提供商簡(jiǎn)化了開發(fā)模式,使得服務(wù)器開發(fā)者可以采用相對(duì)規(guī)范的開發(fā)模式,這樣可以大大節(jié)省開發(fā)成本。由于使用統(tǒng)一的HTTP協(xié)議,所以基于HTTP協(xié)議的服務(wù)器就有很多,如Apache、IIS、Nginx、Tomcat、JBoss等,這些服務(wù)器可以直接拿來(lái)使用,不需要服務(wù)開發(fā)者單獨(dú)來(lái)開發(fā)。不僅如此,連開發(fā)服務(wù)的通用框架都不需要單獨(dú)開發(fā),服務(wù)開發(fā)者只需要關(guān)注提供服務(wù)的應(yīng)用邏輯,其他一切平臺(tái)和框架都可以直接拿來(lái)使用,所以B/S架構(gòu)同樣簡(jiǎn)化了服務(wù)器提供者的開發(fā),從而出現(xiàn)了越來(lái)越多的互聯(lián)網(wǎng)服務(wù)。
B/S網(wǎng)絡(luò)架構(gòu)不管對(duì)普通用戶的使用還是對(duì)服務(wù)的開發(fā)都帶來(lái)了好處,為互聯(lián)網(wǎng)的主要參與者、服務(wù)使用者和服務(wù)開發(fā)者降低了學(xué)習(xí)成本。但是作為互聯(lián)網(wǎng)應(yīng)用的開發(fā)者,我們還是要清楚,從用戶在瀏覽器里單擊某個(gè)鏈接開始,到我們的服務(wù)返回結(jié)果給瀏覽器為止,這個(gè)過程中到底發(fā)生了什么、這其中還需要哪些技術(shù)來(lái)配合。
所以本章將為你描述這一過程的工作原理,它將涉及瀏覽器的基本行為和HTTP協(xié)議的解析過程、DNS如何解析到對(duì)應(yīng)的IP地址、CDN又是如何工作和設(shè)計(jì)的,以及瀏覽器如何渲染出返回的結(jié)果等。
- ASP.NET Core:Cloud-ready,Enterprise Web Application Development
- Testing with JUnit
- Docker進(jìn)階與實(shí)戰(zhàn)
- Python編程完全入門教程
- Visual Basic程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)(第4版)
- ADI DSP應(yīng)用技術(shù)集錦
- Python Data Structures and Algorithms
- 微服務(wù)從小白到專家:Spring Cloud和Kubernetes實(shí)戰(zhàn)
- Python程序設(shè)計(jì)與算法基礎(chǔ)教程(第2版)(微課版)
- Oracle數(shù)據(jù)庫(kù)編程經(jīng)典300例
- Android移動(dòng)應(yīng)用開發(fā)項(xiàng)目教程
- Java7程序設(shè)計(jì)入門經(jīng)典
- Mastering SciPy
- Python數(shù)據(jù)科學(xué)實(shí)踐指南
- Spring Boot學(xué)習(xí)指南:構(gòu)建云原生Java和Kotlin應(yīng)用程序