1. 程式人生 > >http,tcp,ip,協議詳解

http,tcp,ip,協議詳解

一,HTTP請求行中的方法用於HTTP的動作方式,常用的方法有GET、HEAD和POST。

不同的請求物件對應GET的結果是不同的,對應關係如下:

物件                           GET的結果
檔案                           檔案的內容
程式                           該程式的執行結果
資料庫查詢                查詢結果 HEAD方法要求伺服器查詢某物件的元資訊,而不是物件本身。
 POST方法從客戶端向伺服器傳送資料,POST傳送的資料伺服器接收後對此進行處理,GET只能傳送128K的資料而POST是無限制的。
二,HTTP,TCP/IP協議的區別
http協議   對應於應用層  
tcp協議    對應於傳輸層   
ip協議     對應於網路層 

個人理解:tcp,ip更多對於資料傳輸和網路ip地址,http超文字協議,對應於應用層,就是我們看到的頁面效果

http:主要請求有三部組成:請求行,訊息報頭,請求正文
get請求方法:在瀏覽器的位址列中輸入網址的方式訪問網頁時,瀏覽器採用GET方法向伺服器獲取資源
post請求方法:要求被請求伺服器接受附在請求後面的資料,常用於提交表單。
get是從伺服器上獲取資料,post是向伺服器傳送資料。1. get是從伺服器上獲取資料,post是向伺服器傳送資料。
2. get是把引數資料佇列加到提交表單的ACTION屬性所指的URL中,值和表單內各個欄位一一對應,在URL中可以看到。post是通過HTTP post機制,將表單內各個欄位與其內容放置在HTML HEADER內一起傳送到ACTION屬性所指的URL地址。使用者看不到這個過程。
3. 對於get方式,伺服器端用Request.QueryString獲取變數的值,對於post方式,伺服器端用Request.Form獲取提交的資料。
4. get傳送的資料量較小,不能大於2KB。post傳送的資料量較大,一般被預設為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。
5. get安全性非常低,post安全性較高。但是執行效率卻比Post方法好。 建議:
1、get方式的安全性較Post方式要差些,包含機密資訊的話,建議用Post資料提交方式;
2、在做資料查詢時,建議用Get方式;而在做資料新增、修改或刪除時,建議用Post方式;

三者本質上沒有可比性,何況HTTP協議是基於TCP連線的。

TCP/IP是傳輸層協議,主要解決資料如何在網路中傳輸;而HTTP是應用層協議,主要解決如何包裝資料。

我們在傳輸資料時,可以只使用傳輸層(TCP/IP),但是那樣的話,由於沒有應用層,便無法識別資料內容,如果想要使傳輸的資料有意義,則必須使用應用層協議,應用層協議很多,有HTTP、FTP、TELNET等等,也可以自己定義應用層協議。WEB使用HTTP作傳輸層協議,以封裝HTTP文字資訊,然後使用TCP/IP做傳輸層協議將它傳送到網路上。 Socket是對TCP/IP協議的封裝,Socket本身並不是協議,而是一個呼叫介面(API),通過Socket,我們才能使用TCP/IP協議。三,FTP協議的傳輸方式       1,ASCII傳輸方式
      如果在遠端機器上執行的不是UNIX,當檔案傳輸時FTP通常會自動調整檔案的內容以便於把檔案解釋成另外那臺計算機儲存文字檔案的格式。
     但是常常有這樣的情況,使用者正在傳的檔案包含的不是文字檔案,他們可能是程式、資料庫、字處理檔案或者壓縮檔案等,在複製之前,應該用binary命令高數FTP逐字複製,不要對這些檔案進行處理,這也就是它的另一種傳輸方式,二進位制傳輸。       2,二進位制傳輸
 在二進位制傳輸中,資料中儲存檔案的位序,這樣原始的資料和複製的資料書逐位一一對應,而對資料內容本身不進行判斷。在大多數計算機上,ASCII方式一般假設每一位字元的第一有效位無意義,因為ASCII字元組合不使用它。如果傳輸二進位制檔案,所有的位都是重要的!假如你知道這兩臺機器是同樣的,則二進位制方式對文字檔案和資料檔案都是有效的。