HTTP請求和響應詳解

2022-07-19 06:21:12 字數 2405 閱讀 7374

http有兩部分組成:請求與響應,下面分別整理。

在http請求中,第一行必須是乙個請求行(request line),用來說明請求型別、要訪問的資源以及使用的http版本。緊接著是乙個首部(header)小節,用來說明伺服器要使用的附加資訊。在首部之後是乙個空行,再此之後可以新增任意的其他資料[稱之為主體(body)]。

定義了與伺服器互動的不同方法,最基本的方法是

和ajax

開發,關心的只有get

請求和post

請求)。

get與post方法有以下區別:

在客戶端,

get方式在通過

url提交資料,資料

在url中可以看到;post方式,資料放置在html header內提交。

get方式提交的資料最多只能有1024位元組,而post則沒有此限制。

安全性問題。正如在(

1)中提到,使用

的時候,引數會顯示在位址列上,而

不會。所以,如果這些資料是中文資料而且是非敏感資料,那麼使用

;如果使用者輸入的資料不是中文字元而且包含敏感資料,那麼還是使用

為好。安全的和冪等的。所謂安全的意味著該操作用於獲取資訊而非修改資訊。冪等的意味著對同一

的多個請求應該返回同樣的結果。完整的定義並不像看起來那樣嚴格。換句話說,

請求一般不應產生***。從根本上講,其目標是當使用者開啟乙個鏈結時,她可以確信從自身的角度來看沒有改變資源。比如,新聞站點的頭版不斷更新。雖然第二次請求會返回不同的一批新聞,該操作仍然被認為是安全的和冪等的,因為它總是返回當前的新聞。反之亦然。

請求就不那麼輕鬆了。

表示可能改變伺服器上的資源的請求。仍然以新聞站點為例,讀者對文章的註解應該通過

請求實現,因為在註解提交之後站點已經不同了(比方說文章下面出現一條註解)。

get與post方法例項:

get例項

post例項

(此處空一行)

name=professional%20ajax&publisher=wiley

(1)get是從伺服器上獲取資料,post是向伺服器傳送資料。

(2)對於表單的提交方式,

在伺服器端只能用

request.querystring

來獲取get

方式提交來的資料,用

post

方式提交的資料只能用

request.form

來獲取。(3

)一般來說,盡量避免使用

get方式提交表單,因為有可能會導致安全問題。比如說在登陸表單中用

get方式,使用者輸入的使用者名稱和密碼將在位址列中暴露無遺。但是在分頁程式中,用

get方式就比用

post好。

在響應中唯一真正的區別在於第一行中用狀態資訊代替了請求資訊。狀態行(status line)通過提供乙個狀態碼來說明所請求的資源情況。

響應例項:

>找到了該資源,並且一切正常。

該資源在上次請求之後沒有任何修改。這通常用於瀏覽器的快取機制。

客戶端無權訪問該資源。這通常會使得瀏覽器要求使用者輸入使用者名稱和密碼,以登入到伺服器。

客戶端未能獲得授權。這通常是在401之後輸入了不正確的使用者名稱或密碼。

在指定的位置不存在所申請的資源。

http請求和響應詳解

一 http請求行各字段詳解 accept 客戶端用於告訴伺服器自己支援的內容格式 accept charset 用於告訴伺服器自己支援的編碼 accept encoding 用於表示客戶端自己支援的資料壓縮格式 accept language 表示客戶機的語言環境 例如 google頁面根據不同的...

HTTP請求和HTTP響應

客戶端連上伺服器後,向伺服器請求某個web資源,稱之為客戶端向伺服器傳送了乙個http請求,乙個完整 的http請求包括 描述客戶端的請求方式,請求資源名稱,使用的http協議版本號 請求方式get post 預設是get可以更改表單提交方式為post 區別主要在資料傳遞上 get可以在url位址後...

HTTP請求和響應

1 http請求包含的內容 1 http請求的請求行 2 http請求的請求頭 2 http響應包含的內容 1 http響應的狀態行 200表示成功接受請求並完成整個處理過程 302表示去新位址找資源 307和304表示去快取中找資源 404表示客戶請求資源不存在 403表示客戶沒有許可權獲取資源 ...