js與後臺交互詳述(入門篇)

首先需要知道兩個東西,一個是客戶端,一個是服務器,客戶端其實就是我們在上網時候使用的機器,大部分情況下這個客戶端就是我們的電腦,包括臺式電腦,筆記本電腦,手機,平板之類的。那麼服務器是什麼?服務器其實也是電腦,準確的說服務器是性能比較強大的電腦,正常情況下一臺服務器可以連續半年甚至一年不關機,連續運行,這個技能我們傢用電腦大多做不到。正是因為服務器可以保持長時間的運行,從而保證我們放在服務器上文件可以隨時都被訪問到.

現在來看一下服務器和客戶端之間的聯系,這裡就以網站為基礎,通俗的解釋一下。我們訪問網站大多數使用的都是瀏覽器,通過在地址欄裡面寫下域名,按下回車就可以訪問到我們想要訪問的網站,那麼這個具體的過程肯定不是那麼簡單,我們在地址欄中寫下網址以後,按下回車,這個時候瀏覽器首先會訪問自己所在的電腦上的host文件,查看host文件中是否記錄有我們在地址欄中輸入的域名,如果有,則找到與之對應的ip,訪問去瞭。如果沒有,它就要去到一個叫做dns的系統中,這個dns是存在於公網中的,他的作用就是保存許多域名和ip(真實的dns系統比這個復雜的多,這裡隻是方便理解簡述一下),他找到dns以後,把域名告訴dns,讓dns去查一下,看看有沒有與之對應的ip,如果查到瞭,就會拿著ip去找那個網站去瞭!!這裡說一下,ip實際上可以理解為地址,是我們存放程序時候標記的地址。域名隻是為瞭幫助我們更好的記住,實際上真正要找到網站還是要靠ip。

到此為止,我們已經找到瞭與這個ip對應的服務器,那麼接下來解釋兩者互相對話啦,瀏覽器告訴服務器我要看首頁,服務器回答好,然後把首頁交給瀏覽器,去看吧!!這裡我打瞭一個比方,事實上這個過程都是建立在網絡通訊協議上的,其中有一個最常用的就是http協議,瀏覽器與服務器之間一切交流都是建立在這個協議之上的,這裡我簡單的講一下這個協議吧,http協議分為兩部分,分別是請求部分和響應部分,請求部分是又瀏覽器發出的,服務器接受到以後讀取協議內容,然後發出響應,瀏覽器接受到響應的內容,並把它展示到電腦上。http協議中的請求部分分為請求行,請求頭信息,請求消息體三部分,請求行包括我們想要訪問的域名,協議等級,請求消息頭包括具體訪問的文件,連接長度,瀏覽器內核信息等,消息體則是瀏覽器發送給服務器上的具體數據,這個數據隻有在發送方式為post的情況才會出現在消息體上,如果是get方式,則出現在地址欄中。服務器收到相關請求以後,開始分析具體要幹什麼,然後去執行,執行完成以後吧數據全部返回,相應部分就不詳細說明瞭。

還要註意一件事情,那就是服務器收到請求以後做的事情是如何完成的,我以PHP程序為例。假如服務器收到請求需要訪問網站首頁,那麼首先就會去調取後臺對應的首頁文件,然後開始解析這個文件,解析的過程中,PHP就發揮作用瞭,比如說,頁面中的數據都是依靠它來進去讀取的,假如首頁中有一塊地方需要展示出今天的最新新聞,那麼PHP就會調用相關程序,然後去訪問數據庫,把對應的數據從數據庫中取出來,然後展示到頁面中,以此類推,其他的的數據都是這樣搞出來的。當然瞭,PHP還會做很多其他事情啊,比如判斷登錄狀態,檢測ip之類的,最後當PHP把所有要做的事情都做完以後,最後就是把處理好的文件返回給瀏覽器瞭,這裡註意一下,服務返回給瀏覽器的其實就是已經生成好的靜態頁面瞭,裡面沒有一行後臺代碼,瀏覽器接收到這個返回到數據,然後開始逐行解析,最後展示給我們看。

以上就是前後臺交互流程。至於Js與後臺交互,說白瞭,就是依靠js像後臺發送數據,然後接受服務器返回的數據就是瞭。這裡要說到一個技術就是ajax,其實整體的流程都是一樣的,我們通過js的事件觸發ajax,像服務器發送相關數據,服務器得到數據,處理完成以後返回給我們對應的數據,js可以獲取到這個數據,然後該怎麼處理就怎麼處理,這個和我們上面說的流程基本一樣,區別就是通過 js發送請求可以達到無刷新的效果,正常我們訪問一個頁面,服務器都是整個頁面的返回給我們,如果是通過ajax的話,隻會返回我們想要的數據,這樣,是不會刷新頁面的,加快瞭速度,減少流量的浪費,還有很多好處的,不多說瞭。(如果不瞭解ajax,那麼可能需要首先學習下ajax哦!!)

發佈留言