http:hypertext transfer protocal 超文字傳輸協議
http由兩個程式實現:乙個客戶端程式和乙個伺服器程式,執行在不同的端系統中,通過交換http報文進行會話。http定義了報文結構和報文交換的方式。
一些術語
web瀏覽器:實現了http的客戶端
web伺服器:實現了http的服務端,儲存web物件,物件由url定址
http使用tcp作為支撐運輸協議。不需要擔心資料丟失的問題。
http伺服器不儲存關於客戶的任何資訊 ,是乙個無狀態協議
非持續連線:每個請求/響應式經乙個單獨的tcp連線傳送
持續連線:所有的請求及其相應經相同的tcp連線傳送
http預設使用持續連線,可以配置為非持續連線
採用非持續連線的http
每個tcp連線在伺服器傳送乙個物件後關閉,連線不為其他物件而持續。
使用者可以自己配置瀏覽器以控制並行度。
採用持續連線的http
非持續連線的缺點:
持續連線時,伺服器在傳送響應後保持該tcp連線開啟。如果一條連線經過一定時間間隔仍未被使用,http伺服器關閉該連線。
http請求報文
使用ascii文字完成。
第一行為請求行,後繼的行為首部行。
請求行:三個字段
首部行:提供的資訊是web**快取記憶體所要求的
在首部行後有entity body,在使用get方法的時候,entity body為空,只有使用post方法的時候才使用該實體。
幾種方法的說明:
post:向指定的資源提交要被處理的資料,查詢字串(名稱/值對)是在 post 請求的 http 訊息主體中傳送的
head:類似於get,伺服器收到使用head方法的請求時,會用乙個http報文響應,但是並不返回請求物件
put:允許使用者上傳物件到指定的web伺服器上指定的路徑
delete:允許使用者或者應用程式刪除web伺服器上的物件
http響應報文
http 響應報文由三個部分組成,初始狀態行,6個首部行,然後是實體體(報文的主要部分)
初始狀態行:包括三個部分,協議版本字段,狀態碼和相應狀態資訊
首部行:
常見的狀態碼和相關的短語
cookie允許站點對使用者進行跟蹤。cookie技術有四個元件:
在http響應報文中的乙個cookie首部行
在http請求報文中的乙個cookie首部行
在使用者端系統中保留有乙個cookie檔案,並由使用者的瀏覽器進行管理:收到伺服器的響應報文後,客戶端瀏覽器在管理的cookie檔案中新增一行,該行包括伺服器的主機名和首部中的識別碼
位於web站點的乙個後端資料庫:第一次請求這個web服務的時候,產生乙個唯一識別碼
每一次http請求報文中都包含客戶對應於這個伺服器的唯一識別碼(相應的cookie的首部行),可以根據這個資訊來跟蹤使用者在站點的活動。
cookie可以用於標識乙個使用者。使用者首次訪問乙個站點時,可能需要提供乙個使用者標識。在後續會話中,瀏覽器向伺服器傳遞乙個cookie首部,從而向該伺服器標識了使用者。因此cookie可以在無狀態的http上建立乙個使用者會話層。
web 快取器(web cache)也叫**伺服器(proxy server),是能夠代表初始 web 伺服器來滿足 http 請求的網路實體。
web快取器有自己的磁碟儲存空間,並在儲存空間中儲存最近請求過的物件的副本。可以配置使用者的瀏覽器,使得使用者的所有http請求首先指向web快取器。
web快取器是伺服器同時又是客戶。當它接收瀏覽器的請求並返回響應時,他是乙個伺服器,當它向初始伺服器發出請求並接收響應時,它是乙個客戶。
部署web快取器的原因:可以大大減少對客戶請求的響應時間,特別是當客戶與初始伺服器之間的瓶頸頻寬遠低於客戶與web快取器之間的瓶頸頻寬時。
cdn(content distribution network)內容分發網路,cdn在internet上安裝了許多地理上分散的快取器,因而使大量流量實現了本地化。
存放在快取器中的物件副本可能是陳舊的。
條件get方法允許快取器證實它的物件是最新的,滿足以下條件:
對於條件get方法,仍然傳送響應報文:
Web 應用層分類和識別
現在,也許很少有人知道corba吧,那些了解orb的人是很容易理解web service乃至於現在的web應用。乙個web應用一般可以分為5橫1縱,即5個水平層和1切面 1 執行環境 作業系統,web 容器,cgi等 2 應用框架 thinkphp,rails,django等 3 應用本身 論壇,社...
2 應用層 Web和HTTP
http在預設方式下使用持續連線 非持續連線 每個請求 響應對是經乙個單獨的tcp連線傳送,tcp連線在傳送完乙個物件後關閉。非持續連線的缺點 持續連線 在相同的客戶和伺服器之間,後續的請求和響應報文能夠通過相同的連線進行傳送。請求行方法字段 get post head put delete get...
應用層學習筆記一 應用層協議原理
研究網路應用程式的核心是寫出能夠執行在不同的端系統和通過網路彼此通訊的程式。客戶 伺服器體系 客戶與伺服器程序 程序與計算機網路之間的介面 程序定址 標識接收程序需要兩種資訊,主機的位址以及定義在目的主機中的接收程序的識別符號。主機由ip位址標識。目的地埠號用於標識目的主機的接收程序。從四個方面對應...