1. 程式人生 > >同步請求和非同步請求的區別

同步請求和非同步請求的區別

先解釋一下同步和非同步的概念

同步是指:傳送方發出資料後,等接收方發回響應以後才發下一個數據包的通訊方式。  
非同步是指:傳送方發出資料後,不等接收方發回響應,接著傳送下個數據包的通訊方式。

同步通訊方式與非同步通訊的概念

同步通訊方式要求通訊雙方以相同的時鐘頻率進行,而且準確協調,通過共享一個單個時鐘或定時脈衝源保證傳送方和接收方的準確同步,效率較高;
非同步通訊方式不要求雙方同步,收發方可採用各自的時鐘源,雙方遵循非同步的通訊協議,以字元為資料傳輸單位,傳送方傳送字元的時間間隔不確定,傳送效率比同步傳送效率低。

使用者用於呼叫WEB服務的通訊選擇:同步或非同步。

使用者可以同步或非同步實現服務呼叫。從使用者的觀點來看,這兩種方式的不同之處在於:

  • 同步——使用者通過單個執行緒呼叫服務;該執行緒傳送請求,在服務執行時阻塞,並且等待響應。
  • 非同步——使用者通過兩個執行緒呼叫服務;一個執行緒傳送請求,而另一個單獨的執行緒接收響應。

術語同步 和非同步 經常與順序 和併發 混淆了。後面的這兩個術語與執行單獨的任務必須遵循的順序有關,而同步非同步 與執行緒執行單個任務(如呼叫單個服務)的方式有關。理解同步和非同步呼叫之間的不同的一種很好的方法是考慮崩潰恢復的後果:

  • 同步——如果使用者在服務執行的過程中阻塞時崩潰了,當它重新啟動時,將無法重新連線到正在進行的呼叫,所以響應丟失了。使用者必須重複呼叫過程,並且期望這次不會崩潰。
  • 非同步——如果使用者在傳送了請求之後等待響應時崩潰了,當它重新啟動時,可以繼續等待響應,所以響應不會丟失。

崩潰恢復不是同步和非同步呼叫之間的唯一不同,但是如果您嘗試確定某個呼叫採用哪一種方式,請考慮每一種呼叫如何處理崩潰恢復,這通常可以給您一個很好的答案.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

在 Java Web 開發中使用 Ajax 時,重要的是完整理解同步 和非同步 通訊模型的區別(請參閱 參考資料)。對非同步通訊模型支援的缺乏,會對客戶端開發、與 Web 框架的整合、標記庫的使用、IDE 的使用以及執行緒的行為有影響。

在同步請求/響應通訊模型中,總是瀏覽器(與 Web 伺服器、應用伺服器或 Web 應用程式相對)發起請求(通過 Web 使用者)。接著,Web 伺服器、應用伺服器或 Web 應用程式響應進入的請求。在處理同步請求/響應對期間,使用者不能繼續使用瀏覽器。

在非同步請求/響應通訊模型中,瀏覽器(通過 Web 使用者)到 Web 伺服器、應用伺服器或 Web 應用程式的通訊(以及反過來)是解耦的。在非同步請求/響應對的處理中,Web 使用者在當前非同步請求被處理時還可以繼續使用瀏覽器。一旦非同步請求處理完成,非同步響應就被通訊(從 Web 伺服器、應用伺服器或 Web 應用程式)回客戶機頁面。典型情況下,在這個過程中,呼叫對 Web 使用者沒有影響;他們不需要等候響應。

相關推薦

同步請求非同步請求區別

先解釋一下同步和非同步的概念 同步是指:傳送方發出資料後,等接收方發回響應以後才發下一個數據包的通訊方式。   非同步是指:傳送方發出資料後,不等接收方發回響應,接著傳送下個數據包的通訊方式。 同步通訊方式與非同步通訊的概念 同步通訊方式要求通訊雙方以相同的時鐘頻率進行,而且準確協調,通過共享一個單個時鐘

POSTGET以及同步請求非同步請求區別

一、HTTP是應用層的網路傳輸協議,對於HTTP的請求方式主要流行的GET請求與POST請求對於GET請求與POST請求的區別 1.GET請求,伺服器以及引數都會出現在請求介面中,也就是請求引數也是介面的一部分,而POST請求在介面中只有伺服器地址,而引數會作為請求提交

同步請求非同步請求區別(轉發)

同步請求和非同步請求的區別 先解釋一下同步和非同步的概念 同步是指:傳送方發出資料後,等接收方發回響應以後才發下一個數據包的通訊方式。 非同步是指:傳送方發出資料後,不等接收方發回響應,接著傳送下個數據包的通訊方式。 同步通訊方式與非同步通訊的概念 同

okHttpClient同步請求非同步請求區別

OKhttp中請求任務的管理是由dispatcher來負責的,負責的請求的分發的發起,實際執行請求的是ConnectionPool同步請求:同一時刻只能有一個任務發起,synchronized關鍵字鎖住了整個程式碼,那麼如果dangqianOKhttpClient已經執行了一

Ajax同步請求非同步請求區別

同步是指:傳送方發出資料後,等接收方發回響應以後才發下一個數據包的通訊方式。使用者填寫所有資訊後,提交給伺服器,等待伺服器的迴應(檢驗資料),是一次性的。資訊錯誤又要重新填寫!非同步是指:傳送方發出資料

ajax 同步請求非同步請求區別

先解釋一下同步和非同步的概念 同步是指:傳送方發出資料後,等接收方發回響應以後才發下一個數據包的通訊方式。   非同步是指:傳送方發出資料後,不等接收方發回響應,接著傳送下個數據包的通訊方式。 同步通訊方式與非同步通訊的概念 同步通訊方式要求通訊雙方以相同的時鐘頻率進行,而且準確協調,通過共享一個

extjs中Ext.Ajax.request同步請求非同步請求

用Ext.Ajax.request請求預設是非同步請求,這就導致定義的物件無法識別,沒有定義,因此需要將請求方式改為同步。請看程式碼。 function showFormPanel(){ if(centerPanel.getSelectionModel().hasSelection()){

okhttp 同步請求非同步請求

一、使用OkHttp OkHttp傳送請求後,可以通過同步或非同步地方式獲取響應。下面就同步和非同步兩種方式進行介紹。 1.1、同步方式 傳送請求後,就會進入阻塞狀態,知道收到響應。下面看一個下載百度首頁的例子: OkHttpClient client = new

web中的同步請求非同步請求的差別(重點是ajax中的同步非同步)

此前,對於web中同步請求和非同步請求的概念模糊不清,不過對於這樣的知識盲點,不去克服的話都不好意思說自己是一名前端開發人員了[捂臉][捂臉]。還好,功夫不負有心人。通過自己的方式終於讓自己理解了,這兩個概念,因此,也想把自己的理解作博文,跟大家分享,如果說的不對,還請各位

詳細解讀XMLHttpRequest(一)同步請求非同步請求

XMLHttpRequest 讓傳送一個HTTP請求變得非常容易。你只需要簡單的建立一個請求物件例項,開啟一個URL,然後傳送這個請求。當傳輸完畢後,結果的HTTP狀態以及返回的響應內容也可以從請求物件中獲取。 通過XMLHttpRequest生成的請求可以有兩種方式來

同步請求非同步請求

(自iOS9.0起,NSURLConnection.sendSynchronousRequest被廢除不用了。建議改用NSURLSession的dataTaskWithRequest方法。具體用法可以參考這篇文章:Swift - 使用NSURLSession同步

Web_Http同步非同步請求區別

舉個例子:普通B/S模式(同步)AJAX技術(非同步) 同步:提交請求->等待伺服器處理->處理完畢返回 這個期間客戶端瀏覽器不能幹任何事 非同步: 請求通過事件觸發->伺服器處理(這是瀏覽器仍然可以作其他事情)->處理完畢 同步就是你叫我去吃飯,我

注意ajax的同步非同步請求

預設 一般ajax 或者 ajax工具  都是 非同步請求的。 但是 在開發中,使用了一個 開源的 前端ui裡面自帶的ajax工具, 文件寫錯了, 把 非同步請求 和 同步請求的配置引數搞反了。 不小心 設定成了 同步的 ajax, 這可坑爹了,  比如 同步請求

HttpHttps網路同步請求httpclient非同步請求async-http-client

    Http和https網路請求     主要總結一下使用到的網路請求框架,一種是同步網路請求org.apache.httpcomponents的httpclient,另一種是非同步網路請求com.ning的async-http-client,總結一下常用的http請求

Okhttp之同步非同步請求簡單分析

在讀這篇部落格之前,如果想了解okhttp更多原理,可移步博主的okhttp分類部落格。用過okhttp的應該都瞭解,Okhttp是支援同步和非同步請求的,本篇就就對其原理做一個簡單的梳理。算是加深okhttp的理解。 同步請求使用方式如下: Respo

Java執行緒-同步非同步區別

1.                                         &nb

Ajax同步非同步區別,如何解決跨域問題

同步的概念應該是來自於OS中關於同步的概念:不同程序為協同完成某項工作而在先後次序上調整(通過阻塞,喚醒等方式).同步強調的是順序性.誰先誰後.非同步則不存在這種順序性. 同步:瀏覽器訪問伺服器請求,使用者看得到頁面重新整理,重新發請求,等請求完,頁面重新整理,新內容出現,使用者看到新內容,進行下一步操作。

ajax 中 post 請求 get 請求區別(二)

get 請求 1、傳遞資料方式: 資料直接在post 的 url 中傳遞,直接拼接在 url ? 後面,多個數據用 & 符號拼接 xhr.open('get ‘, 2.get.php?username = Tom & age = 30&’)

關於Agax的get與post淺分析,同步請求非同步請求

Agax區域性非同步重新整理全稱ASynchronous JavaScript And XML.使用Javascript程式碼獲取伺服器的資料,Ajax當中有兩個請求方法,一個是get方法,一個是post請求方法。   ①get請求方法:請求引數在URL的後面,多個引數之間用&連線。   ②pos

並行併發,同步非同步區別

  老是忘記併發和並行,同步和非同步之間的區別,今天寫篇部落格,加深印象。 併發 & 並行  併發:當有多個執行緒在操作時,如果系統只有一個CPU,則它根本不可能真正同時進行一個以上的執行緒,它只能把CPU執行時間劃分成若干個時間段,再將時間段分配給各個執行緒執行