我有點困惑的HTTP協議,從我知道HTTP是一個Web服務器與瀏覽器之間提供的網頁和主要發送消息做出。 但是,似乎HTTP在許多確實使用互聯網進行通信但不是Web應用程序(「使用Web瀏覽器作爲客戶端的應用程序」)的應用程序中的任何地方使用。困惑的HTTP協議
我問這個,因爲我開始開發(導航應用的一種)的iPhone應用程序,我需要iPhone客戶端和我的服務器之間發送消息。現在人們總是告訴我要使用HTTP協議,但這真的是一種方式嗎?
我有點困惑的HTTP協議,從我知道HTTP是一個Web服務器與瀏覽器之間提供的網頁和主要發送消息做出。 但是,似乎HTTP在許多確實使用互聯網進行通信但不是Web應用程序(「使用Web瀏覽器作爲客戶端的應用程序」)的應用程序中的任何地方使用。困惑的HTTP協議
我問這個,因爲我開始開發(導航應用的一種)的iPhone應用程序,我需要iPhone客戶端和我的服務器之間發送消息。現在人們總是告訴我要使用HTTP協議,但這真的是一種方式嗎?
你的問題是有效的,如果我可以重申,我們爲什麼要使用HTTP每一個服務器 - 客戶端通信,而它通常意味着瀏覽器的Web服務器的使用情況,並與直接TCP通信可以是低效率的。我的原因如下:
是的,這是要走的路。你還想怎麼去做呢?
Web Server <-------HTTP-------> Client
客戶端可以是瀏覽器,手機,Xbox。服務器請求的接收端上的任何內容都是客戶端。
是,HTTP是去聯網的客戶端/服務器通信的方式。我們現在(終於)看到了從SOAP瘋狂到HTTP的巨大轉變。 @Eyal:如果您對分散式網絡系統背後的迷人問題感興趣,請確保您查看REST(以及2001-2010的REST vs SOAP戰爭)。 –
同意,SOAP,此舉休息和QUERY是一件好事。 我們目前正在實現一個使用HTTP作爲雙向傳輸機制的系統。 返回上傳到服務器的響應是一個標準的HTTP響應,例如200 =沒有正文的成功。 對查詢的響應是一個ASCII文本頁面,其答案爲正文。然後,我們只需將ASCII碼恢復爲二進制即可使用這些數據。 這種方法的優點是你只需要提供正確的URL和參數,你可以處理所有事情。 除非你的協議棧知道如何格式化發佈和獲取請求,否則你將需要自己做。雖然這很乏味,但它在W3C Protocols有詳細記錄,但是要自己完成所有這一切有點繁瑣。所以,如果你不得不這樣做,那麼我建議購買一本電子書來幫助理清細節。一些例子是: HTTP
感謝您的回覆,我得到了使用HTTP的好處,但是如果我需要從服務器發送消息到客戶端呢?我如何使用無狀態協議來做到這一點?服務器不會保持打開的套接字,所以它如何將消息發送給客戶端? – Eyal
視情況而定,無狀態協議有其長處,因爲您可以根據需要設計您的需求,並獲得無狀態服務器的好處。但這並不意味着所有的應用程序都可以被推送到那個用例中。在http中維護狀態的典型方法是在客戶端使用cookie。現在有很多解決方法可以滿足您的用例,如「掛起GET/COMET」或更新的WebSockets。 – jayadev
另一個在互聯網上廣泛使用並且對防火牆友好的原因。 – Anderson