IOS-Socket和http連線的區別
1、Socket連線和Http連線的區別
簡單來說,瀏覽的網頁都是以http協議傳輸到你的瀏覽器,而http是基於socket之上的。socket是一套完成tcp udp協議的介面。
HTTP協議:簡單物件訪問協議,對應於應用層,HTTP協議是基於TCP連線的。
TCP協議:對應於傳輸層
IP協議: 對應於網路層
TCP/IP協議是傳輸層協議,主要解決資料如何在網路中傳輸;而HTTP是應用層協議,主要解決如何包裝資料。
Socket是對TCP/IP協議的封裝,Socket本身並不是協議,而是一個呼叫介面(API),通過Socket,我們才能使用TCP/IP協議。
HTTP協議:http連線就是所謂的短連線,及客戶端向伺服器端傳送一次請求,伺服器端響應後連線即會斷掉。
Socket連線:socket連線就是所謂的長連線,理論上客戶端和伺服器端一旦建立起連線將不會主動斷開;但是由於各種環境因素可能會是連線斷開,比如說:伺服器端和客戶端主機down了,網路故障,或者兩者之間長時間沒有資料傳輸,網路防火牆可能會斷開該連線以釋放網路資源,所以當一個socket連線中沒有資料的傳輸,那麼為了維持連線需要傳送心跳訊息,具體心跳訊息格式是開發者自己定義的。
2、我們已經知道網路中的程序是通過socket來通訊的,那麼什麼是socket?
socket起源於Unix.socket即是一種特殊的檔案,一些socket函式就是對其進行的操作(讀/寫IO、開啟、關閉)。我們在傳輸資料時,可以只使用(傳輸層)TCP/IP協議,但是那樣的話,如果沒有應用層,便無法識別資料內容,如果要是傳輸的資料有意義,則必須使用到應用層協議,應用層協議有很多,比如HTTP\FTP\TELENT等,也可以自己定義應用層協議。WEB使用HTTPP協議作為應用層協議,以封裝HTTP文字資訊,然後使用TCP/IP做傳輸層協議將它發到網路上。
1)socket是一個針對TCP和UDP程式設計的介面,你可以藉助它建立TCP連線等等。而TCP和UDP協議屬於傳輸層。而HTTP是個應用層的協議,它實際上也建立在TCP協議上。(而HTTP是轎車,提供了封裝或者顯示資料的具體形式;Socket是發動機,提供了網路通訊的能力。)
2)socket是對TCP/IP協議的封裝,socket本身並不是協議,而是一個呼叫介面(API),通過Socket,我們才能使用tcp、ip協議。Socket的出現只是使得程式設計師更方便地使用TCP/IP協議棧而已,是對TCP/IP協議的抽象,從而形成了我們知道的一些最基本的函式介面。
3、利用Socket建立網路連線的步驟
建立socket連線至少需要一對套接字,其中一個執行客戶端,稱為ClientSocket,另一個執行與伺服器端,稱為ServerSocket.
套接字之間的連線過程分為三個步驟:服務監聽,客戶端請求,連線確認。
1) 伺服器監聽:伺服器套接字並不定位具體的客戶端套接字,而是處於等待連線的狀態,實時監控網路狀態,等待客戶端的連線請求。
2) 客戶端請求:指客戶端的套接字提出連線請求,要連線的目標的伺服器的套接字。為此,客戶端的套接字必須首先描述它要連線的的伺服器的套接字,指出伺服器套接字的地址 和埠號,然後就向伺服器端套接字提出連線請求。
3) 連線確認:當伺服器端套接字監聽到或者說接收到客戶端套接字的連線請求時,就響應客戶端套接字的請求,建立一個新的執行緒,把伺服器端套接字的描述發給客戶端,一旦客戶端確認了此描述,雙方就正式建立連線。而伺服器端套接字繼續處於監聽狀態,繼續接收其他客戶端套接字的連線請求。
4、HTTP協議詳解
HTTP是一個屬於應用層的面向物件的協議,由於其簡捷,快速的方式,適用於分散式超媒體資訊系統。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的規範化工作正在進行中。
http(超文字傳輸協議)是一個基於請求與響應模式的、無狀態的、應用層的協議,常基於TCP的連線方式,HTTP1.1版本中給出一種持續連線的機制,絕大多數Web開發,都是構建在HTTP協議之上的Web應用。
HTTP協議的主要特點可概括如下:
A 支援客戶、伺服器模式
B 簡單快速:客戶向伺服器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GET/HEAD/POST。每種方法規定了客戶與伺服器聯絡的型別不同。由於HTTP協議簡單,使得HTTP伺服器的程式規模小,因而通訊速度很快。
C 靈活:HTTP允許傳輸任意型別的資料物件。正在傳輸額型別由Content-Type加以標記。
D 無連線:無連線的含義是限制每次連線只處理一個請求。伺服器處理完客戶的請求,並收到客戶的應答後,即斷開連線。採用這種方式可以節省傳輸時間。
E 無狀態:HTTP協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的資訊,則必須重傳,這樣可能導致每次連線傳送的資料量增大。另一方面,在伺服器不需要先前資訊時他的應答就較快。
相關推薦
IOS-Socket和http連線的區別
1、Socket連線和Http連線的區別 簡單來說,瀏覽的網頁都是以http協議傳輸到你的瀏覽器,而http是基於socket之上的。socket是一套完成tcp udp協議的介面。 HTTP協議:簡
iOS socket連線和http連線的區別
一些socket函式就是對其進行的操作(讀/寫IO、開啟、關閉),這些函式我們在後面進行介紹。我們在傳輸資料時,可以只使用(傳輸層)TCP/IP協議,但是那樣的話,如果沒有應用層,便無法識別資料內容,如果想要使傳輸的資料有意義,則必須使用到應用層協議,應用層協議有很多,比如HTTP、FTP、TELNE
Socket連線和HTTP連線的區別
TCP/IP是傳輸層協議,主要解決資料如何在網路中傳輸;而HTTP是應用層協議,主要解決如何包裝資料。 Socket是對TCP/IP協議的封裝,Socket本身並不是協議,而是一個呼叫介面(API),通過Socket,我們才能使用TCP/IP協議。 HTTP連線:HTTP連線就是所謂的短連線,即客戶端向伺服器
TCP(HTTP)長連線和短連線區別和怎樣維護長連線
一、HTTP協議和TCP協議 HTTP的長連線和短連線本質上是TCP長連線和短連線。HTTP屬於應用層協議,在傳輸層使用TCP協議,在網路層使用IP協議。IP協議主要解決網路路由和定址問題,TCP協議
TCP/IP HTTP Socket 和UDP的區別聯絡
分層原理 網路由下往上分為: 對應 物理層– 資料鏈路層– 網路層– IP協議 傳輸層– TCP協議 UDP協議 會話層– 表示層和應用層–
Android網路程式設計之socket和http程式設計的區別
HTTP為短連線 Http協議是建立在TCP協議之上的一種應用。它與TCP連線不同之處在於,客戶端每次請求都需要伺服器返回響應,在請求結束後,會主動釋放連線,從建立連線到關閉連線的過程稱為“一次連線”。由於HTTP每次請求都會釋放連線,因為
webservice、socket和http 區別(一)
webservice是基於http協議的soap協議的封裝和補充,如果你考慮公共穩定的介面,你可以努力的考慮一下。至於socket和http、webservices是否放在一起比較和考慮主要還是看你關心的角度,而這個角度可以是技術層面的 ,也可以是使用者需求層面1 資料傳輸
WebSocket 和socket、HTTP的區別和聯絡
一、WebSocket 是什麼? WebSocket是HTML5規範提出的一種協議;目前除了完犢子的IE瀏覽器,其他瀏覽器都基本支援。他是一種協議,萬變不離其宗,也是基於TCP協議的;和HTTP協議是並存的兩種協議。 WebSocket是HTML5中的協議。HTML5 Web
socket和http間的區別
HTTP協議:簡單物件訪問協議,對應於應用層 ,HTTP協議是基於TCP連線的 tcp協議: 對應於傳輸層 ip協議: 對應於網路層 TCP/IP是傳輸層協議,主要解決資料如何在網路中傳輸;而HTTP是應用層協議,主要解決如何包裝資料。 Socket是對TCP/IP協議的封裝,Socket
網路程式設計(十)——WebSocket 和socket、HTTP的區別和聯絡
一、WebSocket 是什麼? WebSocket是HTML5規範提出的一種協議;目前除了完犢子的IE瀏覽器,其他瀏覽器都基本支援。他是一種協議,萬變不離其宗,也是基於TCP協議的;和HTTP協議是並存的兩種協議。 WebSocket是HTML5中的協議。HTML5 Web
socket與http的區別
單獨 計算機 是否 tcp協議 操作 end 不定 請求 釋放 1、TCP連接 手機能夠使用聯網功能是因為手機底層實現了TCP/IP協議,可以使手機終端通過無線網絡建立TCP連接。TCP協議可以對上層網絡提供接口,使上層網絡數據的傳輸建立在“無差別”的網絡之上。 建立起
iOS setValue和setObject的區別
tro -i index data- pack ans string類型 地址 ack 在使用NSMutableDictionary的時候經常會使用setValue forKey與setObject forKey,他們經常是可以交互使用的,代碼中經常每一種的使用都有。1.
HTTPS和HTTP的區別(轉)
cap 解決 加密方法 nbsp 快速 之間 cape 而不是 銀行 什麽是 HTTPS? HTTPS (基於安全套接字層的超文本傳輸協議 或者是 HTTP over SSL) 是一個 Netscape 開發的 Web 協議。 你也可以說:HTTPS = HTTP + SS
HTTPS和HTTP的區別:
http1、https協議需要到ca申請證書,一般免費證書較少,因而需要一定費用。 2、http是超文本傳輸協議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協議。 3、http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,後者是443。 4、http的連接很簡單,是無狀態
HTTPS和HTTP的區別
內容 出現 nbsp 子郵件 不能 AR 才會 EDA 傳輸 什麽是 HTTPS? HTTPS (基於安全套接字層的超文本傳輸協議 或者是 HTTP over SSL) 是一個 Netscape 開發的 Web 協議。 你也可以說:HTTPS = HTTP + SSL HT
SQL 內連線和外連線區別
資料庫的資料: 資料分級: 100 定義的是鎖,110 定義的是門鎖,111定義的是門鎖的種類例如光交門鎖。 那麼 門鎖的種類就是110~190 9 種,具體細分,鎖的種類就是總共:9*9=81種。夠用了。 這種型別的表,適合做自連線。 左外連結:連線2次。左側的資
netty同時支援socket和http
專案需要使用netty做中轉伺服器,同時支援兩種不同協議的客戶端,經過幾天查詢資料終於找到合適的方案了,同時感謝Netty權威指南及論壇問答,開始貼程式碼 客戶端1==》socket 1 public class Bluetooth implements Runnable { 2 //藍
長連線和短連線區別和優缺點
TCP與UDP udp:面向無連線的通訊協議,資料包括目的埠資訊和源埠資訊 優點:面向無連線,操作簡單,要求系統資源較少,速度快,由於不需要連線,可進行廣播發送 缺點:傳送資料之前不需要與對方建立連線,接收到資料時也不需要傳送確認訊號,傳送端不知道接收端是否正確接接收,不會重
android攻城獅開發iOS .m和.h的區別
最近一直在忙,沒有繼續更Android攻城獅iOS開發,今天繼續更新。 Android 開發中我們用Java開發檔案的字尾都是.java 結束的,用kotlin開發字尾為.kt,但是ios中我們發現有它有.h和.m之分,下面我們來看一下他們的區別吧: .h檔案 .m檔案
Web Services 和HTTP的區別
一.web service定義 WebService是一個SOA(面向服務的程式設計)的架構,它是不依賴於語言,不依賴於平臺,可以實現不同的語言間的相互呼叫,通過Internet進行基於Http協議的網路應用間的互動。 WebService實現不同語言間的呼叫