HTTP請求響應機制

2021-07-14 22:09:43 字數 1903 閱讀 8619

1.http協議 

internate的基本協議是tcp/ip(傳輸控制協議和網際協議)。而目前使用的ftp,http都是建立在tcp/ip上的應用層協議。不同的協議對應不同的應用。而http協議是web應用所使用的主要協議。 

http協議基於請求響應模式,客戶端向伺服器傳送乙個請求,請求頭包含請求的方法,uri,協議版本以及包含請求修飾符,客戶端資訊和內容的類似mime的訊息結果。伺服器則以乙個狀態行為作為響應,相應的內容包括訊息協議的版本,成功或錯誤編碼加上包含伺服器資訊,實體元資訊以及可能的實體內容。 

http協議是無狀態協議,依賴瞬間或者近乎瞬間的請求處理。請求資訊被立即傳送,理想的情況是沒有延遲地進行處理;不過,延遲還是客觀存在的。http協議有一種內建機制,在訊息的傳遞時間上有一定的靈活性:超時機制。乙個超時就是客戶端等待請求訊息返回資訊的最長時間。 

http協議的請求和響應訊息如果沒有傳送並傳遞成功的話,不儲存任何已傳遞的資訊。比如,單擊「提交」按牛,如果表單沒有發出去,則瀏覽器將會顯示錯誤資訊頁,並且返回空白表單。雖然沒有提交成功,但是http不儲存任何表單資訊。 

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

基於http協議的客戶端/伺服器請求響應 機制的資訊交換過程包含下面幾個步驟: 

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

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

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

4.關閉連線:客戶端和伺服器端都可以關閉套接字來結束tcp/ip對話。 

http的工作機制就是請求訊息和響應訊息。嘴尖但的情況是乙個擁護輸入乙個站點位址,傳送乙個請求。之後,瀏覽器返回所請求的頁面,這個頁面可能是最簡單的html頁面,也可能是動態編譯後的頁面。如果這個頁面有錯或者不存在,則web伺服器則將傳送乙個錯誤的資訊頁面。 

web伺服器傳送錯誤資訊頁是因為http沒有內建的處理機制,是無狀態的,傳輸協議不記憶從乙個請求訊息到另乙個請求訊息的任何資訊(備註:意思是說,當傳送乙個請求訊息發生錯誤,由於http是無狀態的,所以不能將這個發生錯誤的請求訊息傳遞給另乙個請求訊息進行處理,也是請求訊息不能轉彎,必須一次傳到並得到處理)  這個特點可以保證web的一致性。但是,使用者常常需要記憶一些設定內容或者瀏覽過程,這就需要在web頁面或者url中攜帶各種引數及值。http請求有多種樣式。其中常用的有get,post,head請求。 

//這3個請求暫時不提了 

5.狀態管理 

對於簡單的靜態html檔案來說,這種特性是很適用,但是對於那些需要多次提交請求才能完成的web操作比如購物車來說,就成了問題了。伺服器端的web應用程式必須允許使用者通過多個步驟才能完成全部的物品採購。在這種情況下,應用程式必須跟蹤由同乙個瀏覽器傳送的多哥請求所提供的資訊,即記住使用者的交易狀態。 

通常,採用兩種方法來解決這個問題。乙個是每次應答都返回完整的狀態,讓瀏覽器把它作為下次請求的一部分再傳送過來。二是把狀態儲存在伺服器的某個地方,只傳送回乙個識別符號,瀏覽器在下次提交中把這個識別符號傳送過來;這樣,就可以定位存貯在伺服器上的狀態資訊了。 

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

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

2.附加在主體的url中 

2.作為隱藏域嵌入html表單中; 

當表但提交時,瀏覽器將作為常規http引數的方式將這些資訊返回伺服器,當狀態資訊被注入時,它將作為請求url的一部分傳誦到伺服器,但是這在瀏覽器和伺服器之間來回傳遞資訊的效率較低,所以一般還是選擇把資訊儲存在伺服器中,即上面兩種方法中的第二種。在瀏覽器和伺服器之間來回傳遞乙個識別符號,這就是所謂的會話(session)跟蹤。來自瀏覽器的所有包含同乙個識別符號(這裡是sessionid)的請求同屬於乙個會話。 

http請求,響應

http請求頭 accept 用於告訴伺服器,客戶機所支援的資料型別 accept charset 用於告訴伺服器,客戶機所採用的碼表 accept encoding 用於告訴伺服器,客戶機所支援的資料壓縮格式 accept language 用於告訴伺服器,客戶機的語法環境 host 用於告訴伺服...

HTTP請求以及HTTP響應

http請求 客戶端連上伺服器後,向伺服器請求某個web資源,稱之為客戶端向伺服器傳送了乙個http請求。乙個完整的http請求包括 乙個請求行 若干訊息頭 以及實體內容 請求行用於描述客戶端的請求方式 請求的資源名稱,以及使用的http協議版本號 訊息頭用於描述客戶端請求哪台主機,以及客戶端的一些...

HTTP請求和HTTP響應

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