應(yīng)用

技術(shù)

物聯(lián)網(wǎng)世界 >> 物聯(lián)網(wǎng)新聞 >> 物聯(lián)網(wǎng)熱點(diǎn)新聞
企業(yè)注冊(cè)個(gè)人注冊(cè)登錄

網(wǎng)絡(luò)數(shù)據(jù)傳輸socket和http優(yōu)缺點(diǎn)

2018-02-06 17:03 PoisonApple

導(dǎo)讀:超文本傳輸協(xié)議(HTTP,HyperText Transfer Protocol)是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議。所有的WWW文件都必須遵守這個(gè)標(biāo)準(zhǔn)。

  http

  超文本傳輸協(xié)議(HTTP,HyperText Transfer Protocol)是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議。所有的WWW文件都必須遵守這個(gè)標(biāo)準(zhǔn)。設(shè)計(jì)HTTP最初的目的是為了提供一種發(fā)布和接收HTML頁(yè)面的方法。1960年美國(guó)人Ted Nelson構(gòu)思了一種通過(guò)計(jì)算機(jī)處理文本信息的方法,并稱之為超文本(hypertext),這成為了HTTP超文本傳輸協(xié)議標(biāo)準(zhǔn)架構(gòu)的發(fā)展根基。Ted Nelson組織協(xié)調(diào)萬(wàn)維網(wǎng)協(xié)會(huì)(World Wide Web Consortium)和互聯(lián)網(wǎng)工程工作小組(Internet Engineering Task Force )共同合作研究,最終發(fā)布了一系列的RFC,其中著名的RFC 2616定義了HTTP 1.1。

  socket

  網(wǎng)絡(luò)上的兩個(gè)程序通過(guò)一個(gè)雙向的通信連接實(shí)現(xiàn)數(shù)據(jù)的交換,這個(gè)連接的一端稱為一個(gè)socket。建立網(wǎng)絡(luò)通信連接至少要一對(duì)端口號(hào)(socket)。socket本質(zhì)是編程接口(API),對(duì)TCP/IP的封裝,TCP/IP也要提供可供程序員做網(wǎng)絡(luò)開發(fā)所用的接口,這就是Socket編程接口;HTTP是轎車,提供了封裝或者顯示數(shù)據(jù)的具體形式;Socket是發(fā)動(dòng)機(jī),提供了網(wǎng)絡(luò)通信的能力。

  Socket的英文原義是“孔”或“插座”。作為BSD UNIX的進(jìn)程通信機(jī)制,取后一種意思。通常也稱作“套接字”,用于描述IP地址和端口,是一個(gè)通信鏈的句柄,可以用來(lái)實(shí)現(xiàn)不同虛擬機(jī)或不同計(jì)算機(jī)之間的通信。在Internet上的主機(jī)一般運(yùn)行了多個(gè)服務(wù)軟件,同時(shí)提供幾種服務(wù)。每種服務(wù)都打開一個(gè)Socket,并綁定到一個(gè)端口上,不同的端口對(duì)應(yīng)于不同的服務(wù)。Socket正如其英文原義那樣,像一個(gè)多孔插座。一臺(tái)主機(jī)猶如布滿各種插座的房間,每個(gè)插座有一個(gè)編號(hào),有的插座提供220伏交流電, 有的提供110伏交流電,有的則提供有線電視節(jié)目。 客戶軟件將插頭插到不同編號(hào)的插座,就可以得到不同的服務(wù)。

pIYBAFp5YjOAPk0VAAPYEyjEY-8609_副本.png

  socket和http優(yōu)缺點(diǎn)

  1 數(shù)據(jù)傳輸方式

  1.1 Socket傳輸?shù)亩x和其特點(diǎn)

  所謂socket通常也稱作“套接字”,實(shí)現(xiàn)服務(wù)器和客戶端之間的物理連接,并進(jìn)行數(shù)據(jù)傳輸,主要有UDP和TCP兩個(gè)協(xié)議。Socket處于網(wǎng)絡(luò)協(xié)議的傳輸層。

  UDP協(xié)議:廣播式數(shù)據(jù)傳輸,不進(jìn)行數(shù)據(jù)驗(yàn)證

  TCP協(xié)議:傳輸控制協(xié)議,一種面向連接的協(xié)議,給用戶進(jìn)程提供可靠的全雙工的字節(jié)流,

  Socket 傳輸?shù)奶攸c(diǎn):

  優(yōu)點(diǎn)

  1) 傳輸數(shù)據(jù)為字節(jié)級(jí),傳輸數(shù)據(jù)可自定義,數(shù)據(jù)量小(對(duì)于手機(jī)應(yīng)用講:費(fèi)用低)

  2) 傳輸數(shù)據(jù)時(shí)間短,性能高

  3) 適合于客戶端和服務(wù)器端之間信息實(shí)時(shí)交互

  4) 可以加密,數(shù)據(jù)安全性強(qiáng)

  缺點(diǎn):

  1) 需對(duì)傳輸?shù)臄?shù)據(jù)進(jìn)行解析,轉(zhuǎn)化成應(yīng)用級(jí)的數(shù)據(jù)

  2) 對(duì)開發(fā)人員的開發(fā)水平要求高

  3) 相對(duì)于Http協(xié)議傳輸,增加了開發(fā)量

  1.2 基于Http協(xié)議傳輸?shù)亩x和其特點(diǎn)

  目前基于http協(xié)議傳輸?shù)闹饕衕ttp協(xié)議 和基于http協(xié)議的Soap協(xié)議(web service),常見的方式是 http 的post 和get 請(qǐng)求,web 服務(wù)。

  基于http協(xié)議的傳輸特點(diǎn)

pIYBAFp5YkGAMLSEAALFH2wmqwA865_副本.png

  優(yōu)點(diǎn):

  1) 基于應(yīng)用級(jí)的接口使用方便

  2) 程序員開發(fā)水平要求不高,容錯(cuò)性強(qiáng)

  缺點(diǎn):

  1) 傳輸速度慢,數(shù)據(jù)包大(Http協(xié)議中包含輔助應(yīng)用信息)

  2) 如實(shí)時(shí)交互,服務(wù)器性能壓力大。

  3) 數(shù)據(jù)傳輸安全性差

  2 各數(shù)據(jù)傳輸方式的適用范圍

  2.1 Socket傳輸適用范圍

  基于Socket傳輸?shù)奶攸c(diǎn):Socket 傳輸方式適合于對(duì)傳輸速度,安全性,實(shí)時(shí)交互,費(fèi)用等要求高的應(yīng)用中,如網(wǎng)絡(luò)游戲,手機(jī)應(yīng)用,銀行內(nèi)部交互等

  2.2 基于Http協(xié)議傳輸?shù)倪m用范圍

  基于http協(xié)議傳輸?shù)奶攸c(diǎn):基于http協(xié)議傳輸方式適合于對(duì)傳輸速度,安全性

  要求不是很高,且需要快速開發(fā)的應(yīng)用。如公司OA系統(tǒng),互聯(lián)網(wǎng)服務(wù)等。