HTTP基礎知識

2021-10-11 02:38:12 字數 2152 閱讀 6052

http/1.0和http/1.1支援的方法對比

持久連線

管線化引入cookie

get方法用來請求訪問已被uri識別的資源。指定的資源經伺服器端解析後返回響應內容。

也就是說,如果請求的資源是文字,那就保持原樣返回;如果是像cgi(common gateway inte***ce,通用閘道器介面)那樣的程式,則返回經過執行後的輸出結果。

post方法用來傳輸實體的主體。雖然用get方法也可以傳輸實體的主體,但一般不用get方法進行傳輸,而是用post方法。雖說post的功能與get很相似,但post的主要目的並不是獲取響應的主體內容。

head方法和get方法一樣,只是不返回報文主體部分。用於確認uri的有效性及資源更新的日期時間等

put方法用來傳輸檔案。就像ftp協議的檔案上傳一樣,要求在請求報文的主體中包含檔案內容,然後儲存到請求uri指定的位置。但是,鑑於http/1.1的put方法自身不帶驗證機制,任何人都可以上傳檔案,存在安全性問題,因此一般的web**不使用該方法。若配合web應用程式的驗證機制,或架構設計採用rest(representational state transfer,表徵狀態轉移)標準的同類web**,就可能會開放使用put方法。

delete方法用來刪除檔案,是與put相反的方法。delete方法按請求uri刪除指定的資源。但是,http/1.1的delete方法本身和put方法一樣不帶驗證機制,所以一般的web**也不使用delete方法。當配合web應用程式的驗證機制,或遵守rest標準時還是有可能會開放使用的。

options方法用來查詢針對請求uri指定的資源支援的方法。

trace方法是讓web伺服器端將之前的請求通訊環迴給客戶端的方法。(不常用)

connect方法要求在與**伺服器通訊時建立隧道,實現用隧道協議進行tcp通訊。主要使用ssl(secure sockets layer,安全套接層)和tls(transportlayer security,傳輸層安全)協議把通訊內容加密後經網路隧道傳輸。connect方法的格式如下所示:

connect **伺服器名:埠號 http版本

方法

說明支援的http協議版本

get獲取資源

1.0、1.1

post

傳輸實體主體

1.0、1.1

head

獲取報文頭部

1.0、1.1

put傳輸檔案

1.0、1.1

delete

刪除檔案

1.0、1.1

options

詢問支援的方法

1.1trace

追蹤路徑

1.1connect

要求用隧道協議連線**

1.1link

建立和資源之間的聯絡

1.0unlink

斷開連線關係

1.0http/1.1和一部分的http/1.0想出了持久連線(http persistent connections,也稱為http keep-alive或http connectionreuse)的方法。

持久連線的特點是,只要任意一端沒有明確提出斷開連線,則保持tcp連線狀態。

持久連線的好處在於減少了tcp連線的重複建立和斷開所造成的額外開銷,減輕了伺服器端的負載。另外,減少開銷的那部分時間,使http請求和響應能夠更早地結束,這樣web頁面的顯示速度也就相應提高了。

持久連線使得多數請求以管線化(pipelining)方式傳送成為可能。從前傳送請求後需等待並收到響應,才能傳送下乙個請求。管線化技術出現後,不用等待響應亦可直接傳送下乙個請求。這樣就能夠做到同時並行傳送多個請求,而不需要乙個接乙個地等待響應了。

http是無狀態協議,它不對之前發生過的請求和響應的狀態進行管理。也就是說,無法根據之前的狀態進行本次的請求處理。

保留無狀態協議這個特徵的同時又要解決類似的矛盾問題,於是引入了cookie技術。

cookie技術通過在請求和響應報文中寫入cookie資訊來控制客戶端的狀態。

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

HTTP 基礎知識

具體去看原文 你應該知道的http基礎知識 1.http請求報文格式 http的請求報文分為三個部分請求行 請求頭和請求體。1.1 請求行 請求行 request line 分為三個部分 請求方法 請求位址和協議及版本,以crlf r n 結束。http 1.1定義的請求方法有8中 get post...

HTTP 基礎知識

標籤位於文件的頭部,不包含任何內容。標籤的屬性定義了與文件相關聯的名稱 值對。標籤永遠位於 head 元素內部。http equiv 屬性為名稱 值對提供了名稱。並指示伺服器在傳送實際的文件之前先在要傳送給瀏覽器的 mime 文件頭部包含名稱 值對。當伺服器向瀏覽器傳送文件時,會先傳送許多名稱 值對...

HTTP基礎知識

get 用於請求訪問已經被uri 統一資源識別符號 識別的資源,可以通過url傳參給伺服器 post 用於傳輸資訊給伺服器,主要功能與get方法類似,但一般推薦使用post方式。put 傳輸檔案,報文主體中包含檔案內容,儲存到對應uri位置。head 獲得報文首部,與get方法類似,只是不返回報文主...