HTTP請求和響應過程

2021-09-06 02:29:12 字數 2787 閱讀 7860

請求和響應過程

協議

internate

的基本協議是

tcp/ip

(傳輸控制協議和網際協議)。而目前使用的

都是建立在

tcp/ip

上的應用層協議。不同的協議對應不同的應用。而

協議是web

應用所使用的主要協議。

協議基於請求響應模式,客戶端向伺服器傳送乙個請求,請求頭包含請求的方法,

uri,協議版本以及包含請求修飾符,客戶端資訊和內容的類似

mime

的訊息結果。伺服器則以乙個狀態行為作為響應,相應的內容包括訊息協議的版本,成功或錯誤編碼加上包含伺服器資訊,實體元資訊以及可能的實體內容。

協議是無狀態協議,依賴瞬間或者近乎瞬間的請求處理。請求資訊被立即傳送,理想的情況是沒有延遲地進行處理;不過,延遲還是客觀存在的。

協議有一種內建機制,在訊息的傳遞時間上有一定的靈活性:超時機制。乙個超時就是客戶端等待請求訊息返回資訊的最長時間。

協議的請求和響應訊息如果沒有傳送並傳遞成功的話,不儲存任何已傳遞的資訊。比如,單擊「提交

」按牛,如果表單沒有發出去,則瀏覽器將會顯示錯誤資訊頁,並且返回空白表單。雖然沒有提交成功,但是

不儲存任何表單資訊。

由於http

協議的上述特點,通常,客戶端每次需要更新資訊都必須重新向伺服器發起請求,客戶端接受到伺服器端返回的資訊後再重新整理螢幕內容。

2.基於

協議的客戶端

/伺服器請求響應

機制的資訊交換過程包含下面幾個步驟:

1)建立連線:客戶端與伺服器建立

tcp連線

2)傳送請求:開啟乙個連線後,客戶端把請求資訊傳送到伺服器的相應埠上,完成請求動作提交。

3)傳送響應:伺服器在處理完客戶端請求之後,要向客戶端傳送響應訊息。

4)關閉連線:客戶端和伺服器端都可以關閉套接字來結束

tcp/ip

對話。

的工作機制就是請求訊息和響應訊息。最簡單的情況是乙個使用者輸入乙個站點位址,傳送乙個請求。之後,瀏覽器返回所請求的頁面,這個頁面可能是最簡單的

html

頁面,也可能是動態編譯後的頁面。如果這個頁面有錯或者不存在,則

web伺服器則將傳送乙個錯誤的資訊頁面。

web伺服器傳送錯誤資訊頁是因為

沒有內建的處理機制,是無狀態的,傳輸協議不記憶從乙個請求訊息到另乙個請求訊息的任何資訊(備註:意思是說,當傳送乙個請求訊息發生錯誤,由於

是無狀態的,所以不能將這個發生錯誤的請求訊息傳遞給另乙個請求訊息進行處理,也是請求訊息不能轉彎,必須一次傳到並得到處理)這個特點可以保證

web的一致性。但是,使用者常常需要記憶一些設定內容或者瀏覽過程,這就需要在

web頁面或者

url中攜帶各種引數及值。

請求有多種樣式。其中常用的有

get,

post

,head

請求。

3.

狀態管理

正如前面所提到的,

對於簡單的靜態

html

檔案來說,這種特性是很適用,但是對於那些需要多次提交請求才能完成的

web操作比如購物車來說,就成了問題了。伺服器端

的web

應用程式必須允許使用者通過多個步驟才能完成全部的物品採購。在這種情況下,應用程式必須跟蹤由同乙個瀏覽器傳送的多哥請求所提供的資訊,即記住使用者的交易狀態。

通常,採用兩種方法來解決這個問題。

乙個是每次應答都返回完整的狀態,讓瀏覽器把它作為下次請求的一部分再傳送過來。

二是把狀態儲存在伺服器的某個地方,只傳送回乙個識別符號,瀏覽器在下次提交中把這個識別符號傳送過來;這樣,就可以定位存貯在伺服器上的狀態資訊了。

在這兩種方法中,資訊可以通過下列三種方法中的一種傳送給瀏覽器:

1)作為

cookie

;但是不是所有瀏覽器都支援,而且使用者也可以禁用

cookie

2)附加在主體的

url中

3)作為隱藏域嵌入

html

表單中;

當表單提交時,瀏覽器將作為常規

引數的方式將這些資訊返回伺服器,當狀態資訊被注入時,它將作為請求

url的一部分傳誦到伺服器,但是這在瀏覽器和伺服器之間來回傳遞資訊的效率較低,所以一般還是選擇把資訊儲存在伺服器中,即上面兩種方法中的第二種。

在瀏覽器和伺服器之間來回傳遞乙個識別符號,這就是所謂的會話(

session

)跟蹤。來自瀏覽器的所有包含同乙個識別符號(這裡是

sessionid

)的請求同屬於乙個會話。

會話的有效期直到它被顯式地終止為止,或者當使用者在一段時間內沒有動作,由伺服器自動設定為過期。目前沒有辦法通知伺服器使用者已經關閉瀏覽器,因為在瀏覽器和伺服器之間沒有乙個持久的連線,並且瀏覽器關閉時也不向伺服器傳送資訊。同時,關閉瀏覽器通常意味著會話

id丟失、

cookie

過期、或者注入了資訊的

url

HTTP 請求和響應過程

一次完整的http請求過程從tcp三次握手建立連線成功後開始,客戶端按照指定的格式開始向服務端傳送http請求,服務端接收請求後,解析http請求,處理完業務邏輯,最後返回乙個http的響應給客戶端,http的響應內容同樣有標準的格式。無論是什麼客戶端或者是什麼服務端,大家只要按照http的協議標準...

HTTP請求和響應過程

請求和響應過程 協議 internate 的基本協議是 tcp ip 傳輸控制協議和網際協議 而目前使用的 都是建立在 tcp ip 上的應用層協議。不同的協議對應不同的應用。而 協議是web 應用所使用的主要協議。協議基於請求響應模式,客戶端向伺服器傳送乙個請求,請求頭包含請求的方法,uri,協議...

HTTP請求和HTTP響應

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