TCP IP協議Http協議Socket的區別

2021-09-11 04:53:22 字數 2853 閱讀 3339

tpc/ip協議是傳輸層協議,主要解決資料如何在網路中傳輸,而http是應用層協議,主要解決如何包裝資料。關於tcp/ip和http協議的關係,網路有一段比較容易理解的介紹:「我們在傳輸資料時,可以只使用(傳輸層)tcp/ip協議,但是那樣的話,如果沒有應用層,便無法識別資料內容,如果想要使傳輸的資料有意義,則必須使用到應用層協議,應用層協議有很多,比如http、ftp、telnet等,也可以自己定義應用層協議。web使用http協議作應用層協議,以封裝http 文字資訊,然後使用tcp/ip做傳輸層協議將它發到網路上。」

術語tcp/ip代表傳輸控制協議/網際協議,指的是一系列協議。「ip」代表網際協議,tcp和udp使用該協議從乙個網路傳送資料報到另乙個網路。把ip想像成一種高速公路,它允許其它協議在上面行駛並找到到其它電腦的出口。tcp和udp是高速公路上的「卡車」,它們攜帶的貨物就是像http,檔案傳輸協議ftp這樣的協議等。 

你應該能理解,tcp和udp是ftp,http和smtp之類使用的傳輸層協議。雖然tcp和udp都是用來傳輸其他協議的,它們卻有乙個顯著的不同:tcp提供***的資料傳輸,而udp不提供。這意味著tcp有乙個特殊的機制來確保資料安全的不出錯的從乙個端點傳到另乙個端點,而udp不提供任何這樣的保證。

http(超文字傳輸協議)是web聯網的基礎,也是手機聯網常用的協議之一,http協議是建立在tcp協議之上的一種應用。是利用tcp在兩台電腦(通常是web伺服器和客戶端)之間傳輸資訊的協議。客戶端使用web瀏覽器發起http請求給web伺服器,web伺服器傳送被請求的資訊給客戶端。http連線最顯著的特點是客戶端傳送的每次請求都需要伺服器回送響應,在請求結束後,會主動釋放連線。從建立連線到關閉連線的過程稱為「一次連線」。

下面的圖表試圖顯示不同的tcp/ip和其他的協議在最初osi模型中的位置:

7應用層例如http、smtp、snmp、ftp、telnet、sip、ssh、nfs、rtsp、xmpp、whois、enrp

6表示層

5會話層

4傳輸層

3網路層例如ip、icmp、igmp、ipx、bgp、ospf、rip、igrp、eigrp、arp、rarp、 x.25

2資料鏈路層例如乙太網、令牌環、hdlc、幀中繼、isdn、atm、ieee 802.11、fddi、ppp

1物理層例如線路、無線電、光纖、信鴿

2.傳送請求

開啟乙個連線後,客戶機把請求訊息送到伺服器的停留埠上,完成提出請求動作。

http/1.0 請求訊息的格式為:

請求訊息=請求行(通用資訊|請求頭|實體頭)crlf[實體內容]

請求 行=方法 請求url http版本號 crlf

方 法=get|head|post|擴充套件方法

u r l=協議名稱+宿主名+目錄與檔名

請求行中的方法描述指定資源中應該執行的動作,常用的方法有get、head和post。不同的請求物件對應get的結果是不同的,對應關係如下:

物件 get的結果

檔案 檔案的內容

程式 該程式的執行結果

資料庫查詢 查詢結果

head??要求伺服器查詢某物件的元資訊,而不是物件本身。

post??從客戶機向伺服器傳送資料,在要求伺服器和cgi做進一步處理時會用到post方法。post主要用於傳送html文字中form的內容,讓cgi程式處理。

乙個請求的例子為:

get networking.zju.edu.cn/zju/index.htmhttp/1.0 頭資訊又稱為元資訊,即資訊的資訊,利用元資訊可以實現有條件的請求或應答。

請求頭??告訴伺服器怎樣解釋本次請求,主要包括使用者可以接受的資料型別、壓縮方法和語言等。

實體頭??實體資訊型別、長度、壓縮方法、最後一次修改時間、資料有效期等。

實體??請求或應答物件本身。

3.傳送響應

伺服器在處理完客戶的請求之後,要向客戶機傳送響應訊息。

http/1.0的響應訊息格式如下:

響應訊息=狀態行(通用資訊頭|響應頭|實體頭) crlf 〔實體內容〕

狀態行=http版本號 狀態碼 原因敘述

狀態碼表示響應型別

1×× 保留

2×× 表示請求成功地接收

3×× 為完成請求客戶需進一步細化請求

4×× 客戶錯誤

5×× 伺服器錯誤

響應頭的資訊包括:服務程式名,通知客戶請求的url需要認證,請求的資源何時能使用。

4.關閉連線

客戶和伺服器雙方都可以通過關閉套接字來結束tcp/ip對話

而我們平時說的最多的socket是什麼呢,實際上socket是對tcp/ip協議的封裝,socket本身並不是協議,而是乙個呼叫介面(api),通過socket,我們才能使用tcp/ip協議。實際上,socket跟tcp/ip協議沒有必然的聯絡。socket程式設計介面在設計的時候,就希望也能適應其他的網路協議。所以說,socket的出現只是使得程式設計師更方便地使用tcp/ip協議棧而已,是對tcp/ip協議的抽象,從而形成了我們知道的一些最基本的函式介面,比如create、listen、connect、accept、send、read和write等等。網路有一段關於socket和tcp/ip協議關係的說法比較容易理解:

「tcp/ip只是乙個協議棧,就像作業系統的執行機制一樣,必須要具體實現,同時還要提供對外的操作介面。這個就像作業系統會提供標準的程式設計介面,比如win32程式設計介面一樣,tcp/ip也要提供可供程式設計師做網路開發所用的介面,這就是socket程式設計介面。」

原文**:

TCP IP協議之HTTP協議

1 全球資訊網 www 提供的是分布式c s服務,每個客戶端瀏覽器由3部分組成 控制程式 ftp,http,telnet等 解析程式 html,jsp,php等 和客戶協議。2 統一資源定位符 url uri 由一下部分組成 協議 主機 埠 路徑 協議部分除了http之外還可以用ftp,news和t...

TCP IP協議之 HTTP協議

http協議 hypertext transfer protocol,超文字傳輸協議 是網際網路上應用最為廣泛的一種網路傳輸協議,所有的www檔案都必須遵守這個標準。http是乙個基於tcp ip通訊協議來傳遞資料 html 檔案,檔案,查詢結果等 工作於客戶端 服務端架構 c s 上。瀏覽器作為h...

HTTP協議 簡單認識TCP IP協議

大學沒讀計算機專業,所以很多的專業知識都不知道。既然已經從事了it這個行業,就勢必要去了解下網路底層,雖然實際工作中這些東西用不到。高樓大廈,起於平川。不積跬步,無以至千里,不積小流,無以成江海。我現在的知識結構,就如同空中樓閣。稍微遇到高層次的問題,可能就理解不了了。一棵大樹如果不在剛開始的時候深...