1. 程式人生 > >Tcp協議和http協議的區別

Tcp協議和http協議的區別

tcp對應於傳輸層、http對應於應用層 http協議建立在tcp協議之上 過程:當獲取網路資料時,http通過TCP建立以個到伺服器的通道,請求完成後,http立即斷開連線,次過程非常短。所以說http是一種短連線、無狀態連線。 socket稱為套接字,方便程式設計師使用TCP/IP協議,它提供了網路通訊的能力 其中有如下關係: 客戶端程序--客戶端socket--tcp連線--http 伺服器程序--伺服器socket--TCP連線--http socket是他們之間的“門”,http的相應和接收到要經過這個“門” TCP/IP是個協議組,有四層:網路介面層、網路層、傳輸層、應用層 網路層:iP協議、ICMP協議、ARP協議、RARP協議、BOOTP協議 傳輸層:TCP協議、UDP協議 應用層:FTP HTTP TELNET SMTP DNS等協議 URL:統一資源識別符號 格式:schema://host[:port#]/path/…/[?query-string][#anchor]

scheme               指定低層使用的協議(例如:http, https, ftp)

host                   HTTP伺服器的IP地址或者域名

port#                 HTTP伺服器的預設埠是80,這種情況下埠號可以省略。如果使用了別的埠,必須指明,例如 http://www.cnblogs.com:8080/

path                   訪問資源的路徑

query-string       傳送給http伺服器的資料

anchor-             錨

URL 的一個例子

http://www.mywebsite.com/sj/test/test.aspx?name=sviergn&x=true#stuff


HTTP協議之Get和Post
http定義了許多與伺服器互動的方法、最基本的有四種: GET、POST、PUT、DELETE POST與GET的區別

1. GET提交的資料會放在URL之後,以?分割URL和傳輸資料,引數之間以&相連,如EditPosts.aspx?name=test1&id=123456.  POST方法是把提交的資料放在HTTP包的Body中.

2. GET提交的資料大小有限制(因為瀏覽器對URL的長度有限制),而POST方法提交的資料沒有限制.

3. GET方式需要使用Request.QueryString來取得變數的值,而POST方式通過Request.Form來獲取變數的值,也就是說Get是通過位址列來傳值,而Post是通過提交表單來傳值。

4. GET方式提交資料,會帶來安全問題,比如一個登入頁面,通過GET方式提交資料時,使用者名稱和密碼將出現在URL上,如果頁面可以被快取或者其他人可以訪問這臺機器,就可以從歷史記錄獲得該使用者的賬號和密碼.