TCP/UDP協議,HTTP中GET與POST請求區別等

TCP

TCP是基於鏈接的協議,也就是說,在正式收發數據前,必須和對方創建可靠的鏈接.一個TCP鏈接必需要通過三次"對話"(也稱握手)才能創建起來.其中的過程很是複雜,咱們這裏只作簡單,形象的介紹,你只要作到可以理解這個過程便可.簡單過程:主機A向B發出鏈接請求數據包:"我想給你發數據,能夠嗎?"這是第一次對話; 主機B向主機A發送贊成鏈接和要求同步(同步就是兩臺主機一個在發送,一個在接收,協調工做)的數據包:"能夠,你何時發?"這是第二次對話; 主機A再發出一個數據包確認主機B的要求同步:"我如今就發,你接着吧",這是第三次對話.三次"對話"的目的是使數據包的發送和接收同步,通過三次對話以後,主機A才向主機B正式發送數據.瀏覽器

UDP

UDP是與TCP相對應的協議.它是面向非鏈接的協議,它不與對方創建鏈接,而是直接就把數據包發送過去.UDP適用於一次只傳送少許數據,對可靠性要求不高的應用環境.好比,咱們常用"ping"命令來測試兩臺主機之間TCP/IP通訊是否正常,其實"ping"命令的原理就是向對方主機發送UDP數據包,而後對方主機確認收到數據包.若是數據包是否達到的消息,及時反饋回來,那麼網絡就是通的.例如,在默認狀態下,一次"ping"操做發送4個數據包.發送的數據包是4包,收到的也是4包(因對對方主機收到後會發回一個確認收到的數據包)這說明了UDP協議是面向非鏈接的協議,沒有創建鏈接的過程.正因如此,因此他的通訊效率高,也正因如此,它的可靠性不如TCP協議高. QQ等用的UDP發消息,有時會出現收不到消息狀況.安全

TCP/UDP的區別?

1)TCP面向鏈接,UDP面向非鏈接
2)TCP對系統資源的要求較多,UDP對系統資源的要求較少
3)TCP程序結構相對複雜,UDP程序結構較簡單
4)TCP是流模式,UDP是數據報模式
5)TCP保證數據正確性,UDP可能丟包
6)TCP保證數據順序,UDP不保證數據順序
7)UDP Server不須要調用listen和accept
UDP 收發數據用sendto/recvfrom函數
8)TCP:地址信息在connect/accept時肯定UDP:在sendto/recvfrom函數中每次均需指定地址信息.服務器

HTTP中GET請求和POST請求的區別?

1.給服務器傳輸數據的方法:
GET:經過網址字符串
POST:經過data網絡

2.傳輸數據的大小:
GET:網址字符串最多255字節
POST:使用NSData.容量達到4Gjsp

3.安全性:
GET:全部傳輸給服務器的數據,顯示在網址裏,相似於密碼的明文輸入,直接可見.
POST:數據被轉成NSData(二進制數據),相似於密碼的密文輸入,沒法直接讀取.函數

HTTP請求信息有3部分

HTTP請求格式
當瀏覽器向Web服務器發出請求時,它向服務器傳遞了一個數據塊,也就是請求信息,HTTP請求信息由3部分組成:
l 請求方法URI協議/版本
l 請求頭(Request Header)
l 請求正文
下面是一個HTTP請求的例子:測試

GET/sample.jspHTTP/1.1
Accept:image/gif.image/jpeg,*/*
Accept-Language:zh-cn
Connection:Keep-Alive
Host:localhost
User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)
Accept-Encoding:gzip,deflate
 
username=jinqiao&password=1234

(1) 請求方法URI協議/版本
請求的第一行是「方法URL議/版本」:GET/sample.jsp HTTP/1.1
以上代碼中「GET」表明請求方法,「/sample.jsp」表示URI,「HTTP/1.1表明協議和協議的版本。
根據HTTP標準,HTTP請求可使用多種請求方法。例如:HTTP1.1支持7種請求方法:GET、POST、HEAD、OPTIONS、PUT、DELETE和TARCE。在Internet應用中,最經常使用的方法是GET和POST。
URL完整地指定了要訪問的網絡資源,一般只要給出相對於服務器的根目錄的相對目錄便可,所以老是以「/」開頭,最後,協議版本聲明瞭通訊過程當中使用HTTP的版本。
(2) 請求頭(Request Header)
請求頭包含許多有關的客戶端環境和請求正文的有用信息。例如,請求頭能夠聲明瀏覽器所用的語言,請求正文的長度等。加密

Accept:image/gif.image/jpeg.*/*
Accept-Language:zh-cn
Connection:Keep-Alive
Host:localhost
User-Agent:Mozila/4.0(compatible:MSIE5.01:Windows NT5.0)
Accept-Encoding:gzip,deflate.

(3) 請求正文
請求頭和請求正文之間是一個空行,這個行很是重要,它表示請求頭已經結束,接下來的是請求正文。請求正文中能夠包含客戶提交的查詢字符串信息:code

username=jinqiao&password=1234

在以上的例子的HTTP請求中,請求的正文只有一行內容。固然,在實際應用中,HTTP請求正文能夠包含更多的內容。ip

HTTP響應消息中狀態碼中1xx,2xx,3xx,4xx,5xx分別表明着什麼意思?

狀態代碼有三位數字組成,第一個數字定義了響應的類別,且有五種可能取值:
1xx:指示信息--表示請求已接收,繼續處理
2xx:成功--表示請求已被成功接收、理解、接受
3xx:重定向--要完成請求必須進行更進一步的操做
4xx:客戶端錯誤--請求有語法錯誤或請求沒法實現
5xx:服務器端錯誤--服務器未能實現合法的請求

HTTPS

HTTPS(Secure Hypertext Transfer Protocol)安全超文本傳輸協議 它是一個安全通訊通道,它基於HTTP開發,用於在客戶計算機和服務器之間交換信息。它使用安全套接字層(SSL)進行信息交換,簡單來講它是HTTP的安全版。 它是由Netscape開發並內置於其瀏覽器中,用於對數據進行壓縮和解壓操做,並返回網絡上傳送回的結果。總得來講,http效率較高,https安全性較高

HTTPS和HTTP的區別:

https協議須要到ca申請證書,通常免費證書不多,須要交費。

http是超文本傳輸協議,信息是明文傳輸,https 則是具備安全性的ssl加密傳輸協議 http和https使用的是徹底不一樣的鏈接方式用的端口也不同:前者是80,後者是443。

http的鏈接很簡單,是無狀態的 HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議 要比http協議安全

相關文章
相關標籤/搜索