HTTP在通訊中扮演的角色

2021-08-08 09:18:11 字數 2155 閱讀 7850

了解完網路中資訊傳輸的基本流程之後,我們來看一下http協議在這個流程中扮演的角色,http協議又是如何連線客戶端與伺服器的。

客戶端:請求訪問資源的一端。

服務端:提供資源響應的一端。

http協議用於客戶端與服務端之間的通訊。並且對於一次通訊而言,http協議能夠明確區分哪端是客戶端,哪端是服務端。

下面是客戶端傳送給http服務端的請求報文中的內容

get 表示請求訪問伺服器的型別,稱為方法(method)。/index.htm 指明了請求的資源物件。也叫做請求的uri(request-uri)。最後的http/1.1,表示http的版本號。這段請求內容的意思是:請求訪問某台http伺服器上的/index.htm頁面資源。

請求報文是由請求方法,請求uri,協議版本,可選的請求首部欄位和內容實體構成。

然後再一起來看一下響應報文的主要內容:

開頭的http/1.1表示伺服器對應的http版本。緊挨著的200 ok表示請求的處理結果的狀態碼(status code)和原因短語(reson-phrase)。下面一行顯示了建立響應的日期時間,是首部段(header field)內的乙個屬性。之後的內容稱為資源實體的主體。

不儲存狀態的http協議

http是一種不儲存狀態,即無狀態(stateless)協議。http協議自身不對請求和響應之間的通訊狀態進行儲存。也就是說在http這個級別,協議對於傳送過的請求或響應都不做持久化處理(快速處理大量事務,確保協議的可伸縮性)。http/1.1雖然是無狀態協議,但為了實現期望的保持狀態功能,於是引入了cookie技術。

http協議中請求伺服器的方法

持久連線

http協議的初始版本中,每進行一次http通訊就要斷開tcp連線。這樣每次請求都會造成無謂的tcp連線建立和斷開,增加通訊量的開銷。

- 持久連線(http persistent connections 也稱為http keep-alive 或 http connection reuse)的方法。持久連線的特點是只要任意一端沒有明確提出斷開連線,則保持tcp連線狀態。持久連線的好處在於減少了tcp連線的重複建立和斷開所造成的額外開銷,減輕了伺服器端的負載。

- 管線化(pipelining) 持久連線使得多數請求以管線化方式傳送成為可能。管線化技術出現後,不用等待響應亦可直接傳送下乙個請求。

使用cookie的狀態管理

http是無狀態協議,它不對之前的請求和響應的狀態進行管理。通俗一點說就是,無法根據之前的狀態進行本次的請求處理。在保留無狀態這個特徵的同時又要解決類似的矛盾問題,於是引入了cookie技術。cookie技術通過在請求和響應報文中寫入cookie資訊來控制客戶端的狀態。

cookie會根據從伺服器端傳送的響應報文內的乙個叫做set-cookie的首部字段資訊,通知客戶端儲存cookie。當下次客戶端再往該伺服器傳送請求時,客戶端會自動在請求報文中加入cookie值後傳送出去。伺服器端發現客戶端傳送過來的cookie後,會去檢查究竟是從哪乙個客戶端發來的連線請求,然後對比伺服器上的記錄,最後得到之前的狀態資訊。

- 響應報文的內容:

Data Mining在CRM中扮演的角色

1.客服中心的策略涵義 1 是企業對顧客的單一聯絡視窗 如果沒有客服中心,顧客不同性質的問題必須直接尋求企業中不同部門人員的協助,或牽扯許多單位往來奔波。且當企業任由顧客打 到內部單位來聯絡時,常會干擾到內部人員的作業,並且可能造 員忙於日常的工作,而給予顧客不友善的態度或不一致的答案,這種情形是失...

DSP在通訊中的應用

在當前的dsp市場上,通訊裝置是其最大的使用者,以下是其中的幾個例子 1 數字式蜂房系統 數字式蜂房系統使用通用dsp來實現語音合成 speech synthesis 糾錯編碼 error correction coding 基帶數據機 baseband modem 以及系統控制等功能。a.語音合成...

在敏捷專案中,測試扮演的角色是什麼?

在敏捷 實踐中,測試 毫無疑問地是乙個經常談論的話題。然而,它也是經常被過分談論的術語,所以,當我們想討論 測試的種類 時,應該先了解一些細節。在敏捷開發中,測試以很多不同的方法扮演著同樣的角色,而且不同的測試種類扮演著不同的角色。為了說明這些角色,你需要敏捷開發中一些基本思想作為基礎。為什麼要測試...