HTTP無狀態協議詳解

2022-07-30 05:39:11 字數 1624 閱讀 6097

概述

http協議是無狀態的。無狀態是指協議對於事務處理沒有記憶能力,這意味著如果後續處理需要前面的資訊,則它必須重傳,這樣可能導致每次連線傳送的資料量增大。無狀態的根本原因是:瀏覽器與伺服器是使用socket套接字進行通訊的,伺服器將請求結果返回給瀏覽器之後,會關閉當前的socket連線,而且伺服器也會在處理頁面完畢之後銷毀頁面物件。

兩種用於保持http連線狀態的技術:乙個是cookie,而另乙個則是session。這兩種技術的大致思路是:當客戶端發起第一次請求時,伺服器會建立與客戶端的會話(session),並將會話的唯一識別符號(session id)傳送給客戶端,伺服器可以將一些資訊儲存在會話級別,當客戶端發起第二次請求時,客戶端會將session id作為request一部分(header或url中)傳送給伺服器,伺服器通過session id來獲取會話級別的資訊。通過這樣的方式,客戶端和伺服器可以減少網路互動的資料量。當客戶端將伺服器傳送過來的session id儲存到使用者本地終端或者瀏覽器的記憶體中時,這裡就用到了cookie技術。

伺服器將會話級別的資料儲存在記憶體中,當併發數比較大時,這將大大消耗伺服器的記憶體。如果在集群環境下,各個節點需要同步session,大量的session內容同步同樣會消耗伺服器的效能,所以我們只需要將一些關鍵資訊放入到會話級別。

cookie詳解

cookie是由伺服器端生成,傳送給user-agent(一般是瀏覽器),瀏覽器會將cookie的key/value儲存到某個目錄下的文字檔案內,下次請求同一**時就傳送該cookie給伺服器(前提是瀏覽器設定為啟用cookie)。這些檔案通常是以user@domain格式命名的,user是你的本地使用者名,domain是所訪問的**的網域名稱。cookie名稱和值可以由伺服器端開發自己定義,對於jsp而言也可以直接寫入jsessionid,這樣伺服器可以知道該使用者是否合法使用者以及是否需要重新登入等。

cookies有什麼作用呢?現在上許多**都用新使用者註冊這一項,有時註冊了一下,等到下次再訪問該站點時,會自動識別到你,並且向你問好,是不是覺得很親切?當然這種作用只是表面現象,更重要的是,**可以利用cookies跟蹤統計使用者訪問該**的習慣,比如什麼時間訪問,訪問了哪些頁面,在每個網頁的停留時間等。利用這些資訊,一方面是可以為使用者提供個性化的服務,另一方面,也可以作為了解所有使用者行為的工具,對於**經營策略的改進有一定參考價值。

cookie在生成時就會被指定乙個expire值,這就是cookie的生存週期,在這個週期內cookie有效,超出週期cookie就會被清除。有些頁面將cookie的生存週期設定為「0」或負值,這樣在關閉頁面時,就馬上清除cookie,不會記錄使用者資訊,更加安全。

ie可以通過選單來禁用cookie:工具 > internet選項 > 隱私頁,然後調節滑塊或者點選「高階」。

session詳解

我們可以把客戶端瀏覽器與伺服器之間一系列互動的動作稱為乙個 session。從這個語義出發,我們會提到session持續的時間,會提到在session過程中進行了什麼操作等等;其次,session指的是伺服器端為客戶端所開闢的儲存空間,在其中儲存的資訊就是用於保持狀態。從這個語義出發,我們則會提到往session中存放什麼內容,如何根據鍵值從 session中獲取匹配的內容等。

HTTP協議 無狀態

blog 個人 目錄cookie和session http是一種不儲存狀態,即無狀態 stateless 協議。http協議自身不對請求和響應之間的通訊狀態進行儲存。也就是說在http這個級別,協議對於傳送過的請求或響應都不做持久化處理。可以理解為,瀏覽器傳送請求給伺服器時,伺服器響應請求 但同乙個...

HTTP無狀態協議和Connection長 短連線

目錄 http無狀態協議 connection 短連線 長連線 1 定義 無狀態是指協議對於事務處理沒有記憶能力,伺服器不知道客戶端是什麼狀態。從另一方面講,開啟乙個伺服器上的網頁和你之前開啟這個伺服器上的網頁之間沒有任何聯絡。2 優點 伺服器不用為每個客戶端連線分配記憶體來記憶大量狀態,也不用在客...

http協議 無連線 無狀態

無連線的含義是限制每次連線只處理乙個請求。伺服器處理完客戶的請求,並收到客戶的應答後,即斷開連線。採用這種方式可以節省傳輸時間。早期這麼做的原因是 http 協議產生於網際網路,因此伺服器需要處理同時面向全世界數十萬 上百萬客戶端的網頁訪問,但每個客戶端 即瀏覽器 與伺服器之間交換資料的間歇性較大 ...