http有兩部分組成:請求與響應,下面分別整理。
在http請求中,第一行必須是乙個請求行(request line),用來說明請求型別、要訪問的
資源以及使用的http版本。緊接著是乙個首部(header)小節,用來說明伺服器要使用的附加資訊。在首部之後是乙個空行,再此之後可以新增任意的其他資料[稱之為主體(body)]。
http 定義了與伺服器互動的不同方法,最基本的方法是 get 和 post(
ajax
開發 ,關心的只有get
請求和post
請求)。
get與post方法有以下區別:
(1)在客戶端,
get方式在通過
url提交資料,資料
在url中可以看到;post方式,資料放置在html header內提交。
(2)get方式提交的資料最多只能有1024位元組,而post則沒有此限制。
(3)安全性問題。正如在(
1)中提到,使用
get
的時候,引數會顯示在位址列上,而
post
不會。所以,如果這些資料是中文資料而且是非敏感資料,那麼使用
get;如果使用者輸入的資料不是中文字元而且包含敏感資料,那麼還是使用
post
為好。
(4)安全的和冪等的。所謂安全的意味著該操作用於獲取資訊而非修改資訊。冪等的意味著對同一
url
的多個請求應該返回同樣的結果。完整的定義並不像看起來那樣嚴格。換句話說,
get
請求一般不應產生***。從根本上講,其目標是當使用者開啟乙個鏈結時,她可以確信從自身的角度來看沒有改變資源。比如,新聞站點的頭版不斷更新。雖然第二次請求會返回不同的一批新聞,該操作仍然被認為是安全的和冪等的,因為它總是返回當前的新聞。反之亦然。
post
請求就不那麼輕鬆了。
post
表示可能改變伺服器上的資源的請求。仍然以新聞站點為例,讀者對文章的註解應該通過
post
請求實現,因為在註解提交之後站點已經不同了(比方說文章下面出現一條註解)。
(1)get是從伺服器上獲取資料,post是向伺服器傳送資料。
(2)對於表單的提交方式,在伺服器端只能用
request.querystring
來獲取get
方式提交來的資料,用
post
方式提交的資料只能用
request.form
來獲取。 (
3)一般來說,盡量避免使用
get方式提交表單,因為有可能會導致安全問題。比如說在登陸表單中用
get方式,使用者輸入的使用者名稱和密碼將在位址列中暴露無遺。但是在分頁程式中,用
get方式就比用
post好。
在響應中唯一真正的區別在於第一行中用狀態
資訊代替了請求資訊。狀態行(status line)通過提供乙個狀態碼來說明所請求的資源情況。
http響應例項:
◆200 (ok): 找到了該資源,並且一切正常。
◆304 (not modified): 該資源在上次請求之後沒有任何修改。這通常用於瀏覽器的快取機制。
◆401 (unauthorized):
客戶端無權訪問該資源。這通常會使得瀏覽器要求使用者輸入使用者名稱和密碼,以登入到伺服器。
◆403 (forbidden): 客戶端未能獲得授權。這通常是在401之後輸入了不正確的使用者名稱或密碼。
◆404 (not found): 在指定的位置不存在所申請的資源。
HTTP中Get與Post的區別
http定義了與伺服器互動的不同方法,最基本的方法有4種,分別是get,post,put,delete。url全稱是資源描述符,我們可以這樣認 為 乙個url位址,它用於描述乙個網路上的資源,而http中的get,post,put,delete就對應著對這個資源的查,改,增,刪4個操作。到這裡,大家...
http中get與post的區別
簡單的介紹一下 get與 post l get 是以實體的方式得到由請求 uri所指定資源的資訊,如果請求 uri只是乙個資料產生過程,那麼最終要在響應實體中返回的是處理過程的結果所指向的資源,而不是處理過程的描述。l post 用來向目的伺服器發出請求要求它接受被附在請求後的實體,並把它當作請求佇...
HTTP中Get與Post的區別
http定義了與伺服器互動的不同方法,最基本的方法有4種,分別是get,post,put,delete。url全稱是資源描述符,我們可以這樣認為 乙個url位址,它用於描述乙個網路上的資源,而http中的get,post,put,delete就對應著對這個資源的查,改,增,刪4個操作。到這裡,大家應...