B/S工作原理

B/S疑問

先對比C/S,在C/S中我們開發時怎麼做的,是不是這樣:拖控件,寫方法,所有的功能基本就是這樣,就像我們的機房收費系統,C/S學習完之後,我們開始B/S學習,這裏我們接觸的是ASP.NET的web學習,首先我們學習的牛腩新聞發佈系統,感覺很簡單,和之前的C/S開發有很多相似的地方,大部分實現功能也是拖控件,寫方法,最多在ASP.NET中可以通過HTML、CSS設計頁面(也就是前臺頁面),當然還可以通過Javascript去提交表單,前臺後臺相互調用,傳輸數據等等。這些當時感覺都沒有什麼問題,其實沒有問題就是最大的問題。在學到AJAX之後,很多問題纔開始認識。何爲B/S,它的機制或者原理是怎樣的?好了廢話少說,進入正題。

Web發展及總結

客戶端

HTML

超文本標記語言。用來標記和規範文本、圖片、聲音、視頻等多媒體元素,通過瀏覽器展示給我們(Web Page)。

CSS

級聯樣式表。用來對HTML進行樣式設計,CSS+DIV的應用使得頁面的實現結構與表現分離,而CSS的學習重點在CSS的盒子模型,它是DIV排版的核心。

XML

可擴展標記語言。字面解析不太容易理解,其實它就是用來存儲傳輸數據的。和HTML的關係就是,在不使用XML時,HTML用於顯示數據,數據必須存儲在HTML文件之內;使用了XML,數據就可以存放在分離的XML文檔中。這種方法可以讓你集中精力去到使用HTML做好數據的顯示和佈局上,並確保數據改動時不會導致HTML文件也需要改動。這樣可以方便維護頁面。JSON對比

Javascript

客戶端腳本語言。有了HTML和CSS,雖然有了很好的頁面效果,但是那是遠遠不夠的,因爲我們除了點擊超鏈接,我們不能進行其它操作,JS的出現使網頁增加了很強的互動性,準確的說JS是基於對象和事件驅動的客戶端腳本語言。基於對象,學過面向對象的都知道它的強大之處,基於對象原理也是一樣的;事件驅動,使得我們的網頁可以向普通的WinForm程序一樣,可以進行各樣的鼠標、鍵盤等等觸發操作。總而言之,JS與HTML結合在一起能及時響應客戶端的操作,對錶單的提交做出及時響應。

AJAX

客戶端交互技術,異步的Javascript和XML,允許客戶端腳本(JS)發送HTTP請求(XMLHttp)。傳統的web應用在用戶提交表單然後向web服務器發送請求後,服務器接收處理穿過來的表單,然後返回一個新的網頁,這樣客戶端頁面會進行一次刷新以顯示從服務端獲取的數據,這樣做其實沒有任何錯,但是如果用戶在請求前後的兩個頁面內容相差很少,頁面整體刷新沒有必要,也浪費寬帶,用戶體驗很不好。

AJAX的產生完全解決了這個問題,Ajax技術其實就是把 JavaScript 和XMLHttpRequest對象放在 Web 表單和服務器之間。當用戶向服務器請求時,數據發送給一些 JavaScript代碼而不是直接發送給服務器。JavaScript代碼在幕後發送異步請求,然後服務器將數據返回到 JavaScript 處理,後者決定如何處理這些數據,它可以迅速更新表單數據,而不需要更新整個頁面。常見的例如谷歌地圖。

Jquery

一個Javascript框架,基本思想和用法就是"選取某個網頁元素,然後對其進行某種操作",這就需要我們瞭解基本的DOM及Jquery基本的語法和API。它的功能很強大!

服務端

對客戶端的請求做出相應的處理,實現網站動態化,說白了就是爲客戶端服務的。這裏不多說了,下面主要說一些學習使用ASP.NET的認識。

B/S的工作原理

基本的原理也有了一些認識,下面開始分析B/S應用程序的工作原理。

從用戶的操作開始,用戶在瀏覽器頁面提交表單操作,向服務器發送請求,服務器接收並處理請求,然後把用戶請求的數據(網頁文件、圖片、聲音等等)返回給瀏覽器,至此一次請求完成。

問題就在這,瀏覽器的請求是怎麼形成怎麼發送的,然後又是怎麼發送到服務器端的,服務器又是如何返回的,中間又有什麼操作?

瀏覽器/服務器的交互

帶着問題我們看一下瀏覽器對服務器進行一次請求的整個過程:

image.png

看完圖對瀏覽器和服務器的交互基本就清晰了。下面再對一些圖中的內容進行認識。

HTTP協議

超文本傳輸協議。看到超文本是不是很熟悉,是的它是通過網絡傳輸超文本標記語言(HTML)文檔的傳輸協議,詳細的規定了瀏覽器和服務器相互通信的規則,我們稱爲 Http請求報文(瀏覽器向服務器發送請求的數據格式)和Http響應報文(服務器返回給瀏覽器的數據格式)。

HTTP協議之請求

指的是從瀏覽器端到服務器端的請求信息,通過這個信息來告訴服務器用戶需要的資源。

Http協議定義了很多與服務器交互的方法,最基本的有4種,分別是GET,POST,PUT,DELETE。一個URL地址用於描述一個網絡上的資源,而HTTP中的GET, POST, PUT,DELETE就對應着對這個資源的查,改,增,刪4個操作。 我們最常見的就是GET和POST了。GET一般用於獲取/查詢資源信息,而POST一般用於更新資源信息。

HTTP協議之響應

接收和解析請求信息後,服務器返回一個HTTP響應信息。也就是將將生成的HTML文檔發送給瀏覽器。

關於HTTP的內容很多,沒有實踐操作很多機制很難弄清楚,HTTP協議日後再續,現在的理解能夠明白Ajax的交互原理即可。因爲在Web開發中的Ajax也是使用請求和響應的模式與服務器傳遞信息的。

ASP.NET平臺

ASP.NET中web開發原理也符合B/S的提交請求並處理返回這個模式,只不過我們開發的過程沒有考慮,也不需要考慮它的底層實現,ASP.NET封裝了其底層的處理機制,使很多任務只需要通過拖拽控件就可以實現,這個過程我們感受不到web的內容處理變化。這最大的好處讓我們學習ASP.NET變得簡單,也更容易開發,這是我們從C/S到B/S過渡最好的工具。

任何一個學習不僅學習它的技術,理解它的本質原理更能幫助我們來深入的分析問題,提高技術。萬變不離其宗,B/S的學習結束了,不然,其實才剛剛開始。

引用:https://www.cnblogs.com/zuochengsi-9/p/4915418.html

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