http 仔 細 地 給 每 種 要 通 過 web 傳 輸 的 物件 都 打 上 了 名 為 mime 類 型(mime type) 的 數 據 格 式 標 籤
web 伺服器會為所有 http 物件資料附加乙個 mime 型別
mime 型別是一種文字標記,表示一種主要的物件型別和乙個特定的子型別,中間由一條斜槓來分隔
由於網際網路自身無法確保可靠的分組傳輸(網際網路絡由器超負荷的話,可以隨意丟
棄分組),所以 tcp 實現了自己的確認機制來確保資料的成功傳輸。
每個 tcp 段都有乙個序列號和資料完整性校驗和。每個段的接收者收到完好的段
時,都會向傳送者回送小的確認分組。如果傳送者沒有在指定的視窗時間內收到確
認資訊,傳送者就認為分組已被破壞或損毀,並重發資料。
由於確認報文很小,所以 tcp 允許在發往相同方向的輸出資料分組中對其進行「捎
帶」。tcp 將返回的確認資訊與輸出的資料分組結合在一起,可以更有效地利用網
絡。為了增加確認報文找到同向傳輸資料分組的可能性,很多 tcp 棧都實現了一種
「延遲確認」演算法。延遲確認演算法會在乙個特定的視窗時間(通常是 100 ~ 200 毫
秒)內將輸出確認存放在緩衝區中,以尋找能夠捎帶它的輸出資料分組。如果在那
個時間段內沒有輸出資料分組,就將確認資訊放在單獨的分組中傳送。
但是,http 具有雙峰特徵的請求 - 應答行為降低了捎帶資訊的可能。當希望有相
反方向回傳分組的時候,偏偏沒有那麼多。通常,延遲確認演算法會引入相當大的時
延。根據所使用作業系統的不同,可以調整或禁止延遲確認演算法。
在對 tcp 棧的任何引數進行修改之前,一定要對自己在做什麼有清醒的認識。tcp
中引入這些演算法的目的是防止設計欠佳的應用程式對網際網路造成破壞。對 tcp 配置
進行的任意修改,都要絕對確保應用程式不會引發這些演算法所要避免的問題。
4.2.5 tcp慢啟動
tcp 資料傳輸的效能還取決於 tcp 連線的使用期(age)。tcp 連線會隨著時間進行
自我「調諧」,起初會限制連線的最大速度,如果資料成功傳輸,會隨著時間的推移
提高傳輸的速度。這種調諧被稱為 tcp 慢啟動(slow start),用於防止網際網路的突
然過載和擁塞。
tcp 慢啟動限制了乙個 tcp 端點在任意時刻可以傳輸的分組數。簡單來說,每成功
接收乙個分組,傳送端就有了傳送另外兩個分組的許可權。如果某個 http 事務有大
量資料要傳送,是不能一次將所有分組都傳送出去的。必須傳送乙個分組,等待確
認;然後可以傳送兩個分組,每個分組都必須被確認,這樣就可以傳送四個分組了,
以此類推。這種方式被稱為「開啟擁塞視窗」。
由於存在這種擁塞控制特性,所以新連線的傳輸速度會比已經交換過一定量資料的、
「已調諧」連線慢一些。由於已調諧連線要更快一些,所以 http 中有一些可以重用
現存連線的工具。本章稍後會介紹這些 http「持久連線」。
HTTP權威指南
web 伺服器會為所有 http 物件資料附加乙個 mime 型別,content type image jpeg,content length 12984 伺服器資源名被稱為統一資源識別符號 uniform resource identifier,uri uri 就像網際網路上的郵政位址一樣,在世...
HTTP權威指南 HTTP報文
在開始學習本章之前,先來提一些問題,什麼是報文?如何建立報文?怎麼去理解報文?以及報文的用處有哪些?什麼是報文?可以這麼去理解,如果說http是網際網路的信使,那麼http報文就是它用來搬東西的包裹了。一 報文流 http報文是在http應用程式之間傳送的資料塊。這些資料塊以一些文字形式的元資訊開頭...
HTTP權威指南筆記
狀態碼 所有http響應都帶status codes,狀態碼是3位數字,常見狀態碼如200 ok,404 找不到資源 http messages是plain text,純文字,只有request messages與response messages兩種,格式 http messages通過tcp協議...