計算機網路(八) web應用和HTTP協議

2021-10-23 03:20:43 字數 3294 閱讀 7057

(data data data data …)

初始狀態行:有3個字段,即協議版本、狀態碼和相關資訊

請求環境(即首部行形容的環境):請求時間+執行版本+請求物件最後的更新時間+內容長度+內容型別。

首部行connection:close告訴客戶機在報文傳送後關閉了tcp連線

首部行date指示伺服器產生並傳送該響應報文的日期和時間。這個時間不是指物件建立或者最後修改的時間,而是伺服器從他的檔案系統中檢索到該物件、插入到響應報文並傳送該響應報文的時間

首部行server表明該報文是由乙個apache web伺服器產生的,類似於請求報文中的user-agent

首部行last-modified指示了物件建立或者最後修改的時間,對既可能在客戶機也可能在網路快取伺服器上的物件快取來說非常重要

首部行content-length表明了被傳送物件的位元組數

首部行content-type指示了實體主體中的物件是html文字(物件型別應正式的用首部行而不是檔案拓展名來指示)

一些常見的狀態碼和相關的短語:

①、200 ok:請求成功,資訊包含在返回的響應報文中

②、301 moved permanently:請求的物件已經被永久轉移了,新的url定義在響應報文的location:首部行中指定。客戶機軟體自動用新的url獲取該物件

③、400 bad request:乙個通用差錯**,表示請求不能被伺服器理解

④、404 not found:被請求的文件不在伺服器上

⑤、505 http version not supported:伺服器不支援請求報文使用的http協議版本

4、使用者(並非客戶機)與伺服器的互動:cookie

如果想要記錄狀態怎麼辦?cookie可以記錄使用者狀態且使用者可控。

cookie允許站點跟蹤使用者。有四個組成部分:

①、在http響應報文中有乙個cookie首部行

②、在http請求報文中有乙個cookie首部行

③、在使用者端系統中保留有乙個cookie檔案,由使用者的瀏覽器管理

④、在web站點有乙個後端資料庫

cookie具有不可跨網域名稱性。

儲存的有unicode字元或二進位制資料(字串)

根網域名稱不可訪問子域的cookie,反之則可以。

cookie工作過程:假設通過internet explorer上網

①、當他第一次訪問amazon.com的時候,當請求報文到達amazon web伺服器的時候,web站點將產生乙個唯一識別碼,並以此為索引在他的後端資料庫中產生乙個表項

②、amazon web伺服器用乙個包含首部行set-cookie的http響應報文對客戶機的瀏覽器internet explorer進行相應,其中set-cookie含有識別碼。

③、當瀏覽器收到了http響應報文時,他會看到set-cookie首部行,然後瀏覽器在他管理的特定cookie檔案中增加一行,其中包含該伺服器的主機名和收到的識別碼(set-cookie首部行)。此時,cookie檔案已經有了用於ebay的表象,因為曾經訪問過(第一次請求報文)。當繼續瀏覽的時候,每請求乙個web頁面,其瀏覽器就會從他的cookie檔案中獲取這個**的識別碼,並放到http請求報文中含有識別碼的cookie首部行中。此後,發往伺服器的每個請求報文都含有首部行:cookie:識別碼。

④、在cookie方式下,伺服器可以追蹤訪問者在該站點的活動。他會把訪問者以識別碼的形式進行標記和記錄。

⑤、如果乙個星期後該使用者再次訪問同乙個站點,它的瀏覽器會在請求報文中繼續使用在端系統中保留的cookie檔案中的識別碼,這樣伺服器可以在後端資料庫中進行搜尋,找到儲存的有關該使用者的資料。如果使用者在伺服器進行了註冊,即提供了他的全名、郵箱位址、郵政位址和訊號用卡賬號,則會在資料庫中記錄了這些資訊,並將這些資訊與識別碼關聯(以及過去訪問的所有頁面)。

由此可以知道,cookie可以用於標識客戶。使用者首次訪問站點時,可能需要提供乙個使用者標識(可能是名字)。在後繼訪問中瀏覽器向伺服器傳遞乙個cookie首部,提供伺服器識別該使用者。因此,cookie可以在無狀態的http上建立乙個使用者會話層。

http請求、響應訊息的首部行都要包含cookie的首部行。

要有使用者主機管理的cookiefile。

後端要有與使用者身份相關的資料庫。

即使曾經訪問過,在換一台電腦後訪問仍會被當成新使用者,因為cookiefile放在原來的電腦上

5、web快取:

web快取器也叫**伺服器,能夠代表初始web伺服器來滿足http請求的網路實體。有自己的磁碟儲存空間,可以保留最近請求過的物件的拷貝。

通過**伺服器可以不訪問原始的伺服器,而是從**伺服器上訪問。如果**伺服器上沒有這個頁面,那麼它會代替客戶機去訪問原始伺服器。當**伺服器得到這個頁面後,首先將這個頁面快取。

過程如下:

①、瀏覽器建立乙個到web快取器的tcp連線,並向web快取器中的物件傳送乙個http請求

②、web快取器檢查本地是否儲存了該物件的拷貝,如果有,web快取器就用http響應報文向客戶機瀏覽器返回該物件

③、如果沒有,就與物件的初始伺服器開啟乙個tcp連線,web快取器則在tcp連線上傳送獲取該物件的http請求,在收到請求後,初始伺服器向web快取器傳送具有該物件的http響應

④、web快取器接收到該物件,在他本地儲存空間儲存了乙份拷貝,並用http響應報文向客戶機的瀏覽器傳送該報文(通過已經建立在客戶機瀏覽器和web快取器之間的tcp連線)

web快取器既是伺服器又是客戶機。

缺點:網頁更新不及時

優點:時延短,可以大大減少對客戶機請求的響應時間;節約接入頻寬,可以減少乙個機構內部網與網際網路接入連路上的通訊量。

一般而言,web快取器由isp購買並安裝,並將乙個區域網內的所有使用者瀏覽器配置為指向他。

6、條件get方法:

需要一種機制,以解決快取器中的物件拷貝可能是陳舊的問題,即可能已經被修改了。因此,條件get出現了。

如果乙個請求報文中使用get方法,同時請求報文包含乙個if-modified-since首部行,則該請求報文就是乙個條件get請求報文。

過程如下:

①、乙個**伺服器代表乙個請求瀏覽器,向web伺服器傳送乙個請求報文。

②、web伺服器向快取器傳送具有被請求的物件的響應報文

③、快取器將物件傳送到請求瀏覽器,並儲存,同時儲存了最後修改時間

④、另一使用者通過該快取器訪問同乙個物件。

⑤、web快取器向web伺服器傳送乙個條件get報文,詢問在指定日期之後某物件是否發生修改。

⑥、web伺服器返回乙個響應報文,如果沒有修改直接返回『304 not modified』並在主體中不包含該物件;如果修改了則返回修改後了的物件?。

是解決更新不及時的一種方式,如果last modified不一致就返回新的,一致則ok,但這個時間不太可靠。

計算機網路之Web應用

1 web與http world wide web url uniform resource locator 統一資源定位器 scheme host port path 2 http協議概述 全球資訊網應用遵循超文字協議 hypertext transfer protocol c s結構 客戶 br...

計算機網路 16 計算機網路應用示例

目錄 二 語音 的流量控制 服務質量qos 1 資料分組標記優先順序 2 路由器流量管制 3 路由器排程機制分配頻寬 4 呼叫接納 三 無線網路 無線區域網的組成 1 有固定基礎設施的無線區域網 2 移動自組網路 二 語音 的流量控制 狹義的ip 就是指在ip網路上打 所謂的 ip網路 就是 使用i...

計算機網路(Web和HTTP)

web就是全球資訊網,因為web的出現,給我們帶來了極大的便利,足不出戶而知天下。當使用者需要時,就能得到所想要的內容,網路之大各式各樣的資源都有。web的應用層協議就是有名的http 超文字傳輸協議 通常被稱為web的核心。http的實現需要有乙個服務端和乙個客戶端,通過交換http報文進行會話。...