1. 程式人生 > >關於http協議與tcp協議的一點總結

關於http協議與tcp協議的一點總結

  1. tcp協議
    1)伺服器維護一個tcp長連線,只需要維護ip+埠+客戶端ID,前兩個屬於連結的本質屬性,後一個屬於業務屬性,主要是希望可以減少資料的傳輸(如果沒有客戶端ID,每次輸出資料都必須帶上這個,所以最好直接維護在連結裡面)
    2)心跳包不屬於連結需要維護的東西,它只是確保連結存在且有效的手段,與連結本身沒有關係,錯誤異常處理都屬於這個範疇
    3)資料傳輸協議可以自由定義,但是最重要的是需要定義清楚資料頭和資料尾(校驗一般也是必須的,可以放在資料尾),且不能省略,其餘可以根據需要自由定義

  2. udp協議
    1)udp有沒有最大傳輸資料的限制?
    答:剛聽到這個問題,我一臉黑人問號,當然有啊,這還用問麼,資料包的大小必然是受限制的啊,這跟udp和tcp有什麼關係呢?後來冷靜下來細細回想,才明白這個問題的真正意圖。我們知道tcp可以傳送任意長度的資料,因為它是面向連線的且可靠的傳輸,所以把一個大的檔案分割成合適的資料包。但是udp不行,主要因為udp是非可靠的傳輸,一旦其中某個包被丟棄了,在接收端就會重組資料失敗,所以udp上想做大檔案的可靠傳輸是不靠譜的,最好將資料量保持在一個數據包中

  3. http協議
    1)從RESTFul的角度來說,get請求和post請求唯一的區別是一個用來請求資料,一個用來上傳資料,但是在瀏覽器的角度,區別就比較多:
    a)對伺服器來說,get請求是安全且冪等的(這裡的安全是指get請求不會影響伺服器資料,冪等是指無論請求多少次,結果都是一樣的)
    b)get請求是有長度限制的,一般是1024,IE是是2083(2046+35),這個限制主要是由url的長度限制的;body在理論上沒有size限制
    c)POST請求安全性更高(這裡的安全是指資料安全)

相關推薦

關於http協議tcp協議一點總結

tcp協議 1)伺服器維護一個tcp長連線,只需要維護ip+埠+客戶端ID,前兩個屬於連結的本質屬性,後一個屬於業務屬性,主要是希望可以減少資料的傳輸(如果沒有客戶端ID,每次輸出資料都必須帶上這個,所以最好直接維護在連結裡面) 2)心跳包不屬於連結需要維

Http協議TCP協議簡單理解( 轉 )

art 這也 這一 傳輸協議 方便 編寫 庫服務器 為我 之間 在C#編寫代碼,很多時候會遇到Http協議或者TCP協議,這裏做一個簡單的理解。TCP協議對應於傳輸層,而HTTP協議對應於應用層,從本質上來說,二者沒有可比性。Http協議是建立在TCP協議基礎之上的,當瀏覽

Http協議TCP協議

背景 在日常工作中,經常會遇到某某框架是基於Http協議或者TCP協議,今天,就針對於該協議,整理下 從本質上來說,Http協議與TCP協議是應用在不同網路層,Http協議處於應用層,TCP處於傳輸層,從上往下的網路層來劃分的話,Http是基於TCP Http協議是一種無狀態的短連線; 何為無狀態?是

Http協議TCP協議簡單理解後續

大約2年前寫了一篇關於HTTP協議與TCP協議的文章,原文連結。最近再次簡單讀了一遍《TCP/IP協議卷》,有了一些新的理解。這篇文章沒有一個很好的連貫性,都是我在讀書過程中總結的知識點,整體比較鬆散,但是個人感覺知識點都是非常重要,有很多地方讓我明白了迷惑很久的問題。

HTTP協議 TCP協議 的區別

說明 允許 delete 中繼 關閉 forbidden 有效 o-c 超文本傳輸協議 TCP協議是傳輸層協議,主要解決數據如何在網絡中傳輸,而HTTP是應用層協議,主要解決如何包裝數據。 TCP/IP和HTTP協議的關系,從本質上來說,二者沒有可比性,我們在傳輸數據時,

TCP/IP協議HTTP協議webSocket協議區別

http協議(識別資料內容)與webSocket協議 同:建立在TCP之上,同http一樣通過TCP來傳輸資料 不同: HTTP協議為單向協議,即瀏覽器只能向伺服器請求資源,伺服器才能將資料傳送給瀏覽器,而伺服器不能主動向瀏覽器傳遞資料。分為長連線和短連線,短連線是

基於HTTPTCP 協議的socket.io 相關介面

服務端io.on(‘connection’,function(socket));//監聽客戶端連線,回撥函式會傳遞本次連線的socketio.sockets.emit(‘String’,data);//給所有客戶端廣播訊息io.sockets.socket(socketid)

HTTP協議TCP/IP協議

其中 ont 分割 鏈路層 com 會話層 安全 ima 16px OSI 是7層 TCP/IP 協議是 4層。 OIS 包括的層 從底到上依次為 1.物理層 2.數據鏈路層 3.網絡層 4.傳輸層 5.會話層 6.表示層 7.應用層 TCP/IP

一個例子加深對servlettcp協議的理解

puts 一個 .com images 發送信息 mage 交流 tcp協議 host 理解一下servlet Java Servlet 是運行在 Web 服務器或應用服務器上的程序,它是作為來自 Web 瀏覽器或其他 HTTP 客戶端的請求和 HTTP 服務器上的數據庫或

HTTP請求響應協議

使用 6.0 agent 顯示 禁用 說明 含義 需要 保持 HTTP(hypertext transport protocol),即超文本傳輸協議。這個協議詳細規定了瀏覽器和萬維網服務器之間互相通信的規則 HTTP就是一個通信規則,通信規則規定了客戶端發送給服務器的內容

淺析TCP協議UDP協議

linux運維TCP(Transmission Control Protocol),全稱傳輸控制協議。工作在TCP/IP協議棧中的傳輸層,為主機層對主機層的連接提供了可靠的鏈接服務。此協議通過三個步驟使客戶機與服務器建立一個連接,並通過四個步驟關閉此連接,這個過程我們分別稱之為三次握手和四次揮手。UDP((U

http協議tcp協議,ip協議,dns服務之前的關系和區別

ip協議 服務器 基本 log 標記 理解 增加 更改 過程 長期以來都有一個問題,大家都在說http協議,tcp協議,ip協議,他們之間到底什麽區別,有什麽用,沒人告訴我,最近看了這本《圖解http》明白了一些,以下圖片摘自這本書 一、理解一個傳輸流再去擴展 用

tomcat http協議ajp協議

分配 情況 bsp 直接 OS 狀態 默認 redirect 文本 AJP13是定向包協議。因為性能原因,使用二進制格式來傳輸可讀性文本。WEB服務器通過 TCP連接和SERVLET容器連接。為了減少進程生成 socket的花費,WEB服務器和SERVLET容器之間嘗

03 http請求協議響應協議

pos conn nec TP cti AS .com form type 編輯本博客 yuan先生blogs 請求協議 請求格式 請求首行: 請求方式:get,post 請求路徑:/form/entry 協議版本:HTTP/1.1 請求頭: Host Connect

詳知:http協議soap協議之間的區別

http是標準超文字傳輸協議。使用對引數進行編碼並將引數作為鍵值對傳遞,還使用關聯的請求語義。每個協議都包含一系列HTTP請求標頭及其他一些資訊,定義客戶端向伺服器請求哪些內容,伺服器用一系列HTTP響應標頭和所請求的資料進行響應。HTTP-GET 使用 MIME 型別application

兩張圖說明http協議tcp協議,ip協議,dns服務之間的關係和區別

 一、理解一個傳輸流再去擴充套件     用http舉例來說,首先作為傳送端的客戶端在應用層(http協議)發出一個想看某個web頁面的http請求。 接著,為了傳輸方便,在傳輸層(tcp協議)把從應用層處收到的資料(http請求報文)進行分割,並在各個報文上打上標記

TCP協議UDP協議

用戶 png 理解 等於 序列 收發消息 tag 數據報 size 一.TCP協議: 1.初識TCP:TCP---傳輸控制協議,提供的是面向連接、可靠的字節流服務。當客戶和服務器彼此交換數據前,必須先在雙方之間建立一個TCP連接,之後才能傳輸數據。TCP提供超時重發,丟棄重

HTTP協議SSL協議基礎理論分析

一、HTTP協議基礎理論分析 1.HT (Hyper Text超文字):包含有超連結(Link)和各種多媒體元素標記(Markup)的文字。這些超文字檔案彼此連結,形成網狀(Web),因此又被稱為網頁(Web Page)。這些連結使用URL表示。最常見的超文字格

http協議soap協議之間的區別

http是標準超文字傳輸協議。使用對引數進行編碼並將引數作為鍵值對傳遞,還使用關聯的請求語義。每個協議都包含一系列HTTP請求標頭及其他一些資訊,定義客戶端向伺服器請求哪些內容,伺服器用一系列HTTP響應標頭和所請求的資料進行響應。HTTP-GET 使用 MIME 型別app

TCP協議UDP協議之間的九個區別-JAVA網路面試題

TCP和UDP是兩個傳輸層協議,廣泛應用於網路中不同主機之間傳輸資料。對任何程式設計師來說,熟悉TCP和UDP的工作方式都是至關重要的。這就是為什麼TCP和UDP是一個流行的Java程式設計面試問題。我曾經在各種不同的Java面試中見過這個問題,尤其是對伺服器端