HTTP協議的特點

2022-04-10 14:49:46 字數 2446 閱讀 3097

http 是乙個屬於應用層的物件導向的協議,http 協議一共有五大特點:1、支援客戶/伺服器模式;2、簡單快速;3、靈活;4、無連線;5、無狀態。

無連線無連線的含義是限制每次連線只處理乙個請求。伺服器處理完客戶的請求,並收到客戶的應答後,即斷開連線。採用這種方式可以節省傳輸時間。

早期這麼做的原因是 http 協議產生於網際網路,因此伺服器需要處理同時面向全世界數十萬、上百萬客戶端的網頁訪問,但每個客戶端(即瀏覽器)與伺服器之間交換資料的間歇性較大(即傳輸具有突發性、瞬時性),並且網頁瀏覽的聯想性、發散性導致兩次傳送的資料關聯性很低,大部分通道實際上會很空閒、無端占用資源。因此 http 的設計者有意利用這種特點將協議設計為請求時建連線、請求完釋放連線,以盡快將資源釋放出來服務其他客戶端。

隨著時間的推移,網頁變得越來越複雜,裡面可能嵌入了很多,這時候每次訪問都需要建立一次 tcp 連線就顯得很低效。後來,keep-alive 被提出用來解決這效率低的問題。

keep-alive 功能使客戶端到伺服器端的連線持續有效,當出現對伺服器的後繼請求時,keep-alive 功能避免了建立或者重新建立連線。市場上的大部分 web 伺服器,包括 iplanet、iis 和 apache,都支援 http keep-alive。對於提供靜態內容的**來說,這個功能通常很有用。但是,對於負擔較重的**來說,這裡存在另外乙個問題:雖然為客戶保留開啟的連線有一定的好處,但它同樣影響了效能,因為在處理暫停期間,本來可以釋放的資源仍舊被占用。當web伺服器和應用伺服器在同一臺機器上執行時,keep-alive 功能對資源利用的影響尤其突出。

這樣一來,客戶端和伺服器之間的 http 連線就會被保持,不會斷開(超過 keep-alive 規定的時間,意外斷電等情況除外),當客戶端傳送另外乙個請求時,就使用這條已經建立的連線。

無狀態無狀態是指協議對於事務處理沒有記憶能力,伺服器不知道客戶端是什麼狀態。即我們給伺服器傳送 http 請求之後,伺服器根據請求,會給我們傳送資料過來,但是,傳送完,不會記錄任何資訊。

http 是乙個無狀態協議,這意味著每個請求都是獨立的,keep-alive 沒能改變這個結果。

缺少狀態意味著如果後續處理需要前面的資訊,則它必須重傳,這樣可能導致每次連線傳送的資料量增大。另一方面,在伺服器不需要先前資訊時它的應答就較快。

http 協議這種特性有優點也有缺點,優點在於解放了伺服器,每一次請求「點到為止」不會造成不必要連線占用,缺點在於每次請求會傳輸大量重複的內容資訊。

客戶端與伺服器進行動態互動的 web 應用程式出現之後,http 無狀態的特性嚴重阻礙了這些應用程式的實現,畢竟互動是需要承前啟後的,簡單的購物車程式也要知道使用者到底在之前選擇了什麼商品。於是,兩種用於保持 http 連線狀態的技術就應運而生了,乙個是 cookie,而另乙個則是 session。

cookie可以保持登入資訊到使用者下次與伺服器的會話,換句話說,下次訪問同一**時,使用者會發現不必輸入使用者名稱和密碼就已經登入了(當然,不排除使用者手工刪除cookie)。而還有一些cookie在使用者退出會話的時候就被刪除了,這樣可以有效保護個人隱私。

cookies 最典型的應用是判定註冊使用者是否已經登入**,使用者可能會得到提示,是否在下一次進入此**時保留使用者資訊以便簡化登入手續,這些都是 cookies 的功用。另乙個重要應用場合是「購物車」之類處理。使用者可能會在一段時間內在同一家**的不同頁面中選擇不同的商品,這些資訊都會寫入 cookies,以便在最後付款時提取資訊。

與 cookie 相對的乙個解決方案是 session,它是通過伺服器來保持狀態的。

當客戶端訪問伺服器時,伺服器根據需求設定 session,將會話資訊儲存在伺服器上,同時將標示 session 的 sessionid 傳遞給客戶端瀏覽器,瀏覽器將這個 sessionid 儲存在記憶體中,我們稱之為無過期時間的 cookie。瀏覽器關閉後,這個 cookie 就會被清掉,它不會存在於使用者的 cookie 臨時檔案。

以後瀏覽器每次請求都會額外加上這個引數值,伺服器會根據這個 sessionid,就能取得客戶端的資料資訊。

如果客戶端瀏覽器意外關閉,伺服器儲存的 session 資料不是立即釋放,此時資料還會存在,只要我們知道那個 sessionid,就可以繼續通過請求獲得此 session 的資訊,因為此時後台的 session 還存在,當然我們可以設定乙個 session 超時時間,一旦超過規定時間沒有客戶端請求時,伺服器就會清除對應 sessionid 的 session 資訊。

http協議的主要特點可概括如下:

1.支援客戶/伺服器模式。

3.靈活:http允許傳輸任意型別的資料物件。正在傳輸的型別由content-type(content-type是http包中用來表示內容型別的標識)加以標記。

4.無連線:無連線的含義是限制每次連線只處理乙個請求。伺服器處理完客戶的請求,並收到客戶的應答後,即斷開連線。採用這種方式可以節省傳輸時間。

5.無狀態:http協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的資訊,則它必須重傳,這樣可能導致每次連線傳送的資料量增大。另一方面,在伺服器不需要先前資訊時它的應答就較快。

HTTP協議特點

協議特點 協議是基於tcp ip協議之上的應用層協議.基於請求 響應 的模式 http協議規定,請求從客戶端發出,最後伺服器端響應該請求並 返回。換句話說,肯定是先從客戶端開始建立通訊的,伺服器端在沒有 接收到請求之前不會傳送響應 無狀態儲存 http是一種不儲存狀態,即無狀態 stateless ...

HTTP協議的特點

上篇文章簡單介紹了與http關係密切的協議 ip tcp dns 是為了大家對http有乙個整體的認識。做為http協議系列文章,http才是主角。這一節,我們來談談http協議的特點,以及一些不足。網路世界中的兩台計算機,就像現實世界中的兩個陌生人一樣,要想搭上關係,首先得先說上話。在網路世界中,...

HTTP協議的概念作用和特點

相應 伺服器將請求的處理結果傳送給瀏覽器的過程叫響應。什麼是http?概念 超文字傳輸協議。http有什麼作用?作用 規範了瀏覽器和伺服器的資料互動格式。http有什麼特點?特點 簡單快捷,靈活,無連線,無狀態。客戶端,伺服器架構client server 特點 在伺服器當中就主要是乙個資料庫,把所...