HTTP封包由3部分組成,分別是:1、對封包進行描述的起始行【start line】;2、包含屬性的首部【header】區塊;3、可選的、包含資料的主體【body】部分。
HTTP封包由3部分組成:
對封包進行描述的起始行(start line),
包含屬性的首部(header)區塊,
以及可選的、包含資料的主體(body)部分。
#相關學習推薦:PHP 程式設計從入門到精通
這是請求訊息的格式:
//是为服务器端提供一些额外的信息 <method> <request-URL> <version> <headers> <entity-body>
這是回應封包的格式(注意,只有起始行的語法有所不同):
//为客户端提供一些额外的信息 <version> <status> <reason-phrase> <headers> <entity-body>
以下是對各部分的簡單描述。
1、方法(method)
客戶端希望伺服器對資源執行的動作。是一個單獨的詞,例如GET、HEAD或POST。本章稍後將詳細介紹方法。
2、請求URL(request-URL)
命名了所請求資源,或是URL路徑元件的完整URL。如果直接與伺服器對話,只要URL的路徑元件是資源的絕對路徑,通常就不會有什麼問題-伺服器可以假定自己是URL的主機/埠。第2章詳細介紹了URL的語法。
3、版本(version)
狀態碼(status-code)
這三位數字描述了請求過程中所發生的情況。每個狀態碼的第一位數字都用來描述狀態的一般類別(「成功」、「出錯」等)。本章稍後提供了HTTP規範定義的狀態碼及其意義的完整清單。
4、原因短語
數字狀態碼的可讀版本,包含行終止序列之前的所有文字。本章稍後提供了HTTP規範定義的所有狀態碼的原因片語範例。原因短語只對人類有意義,因此,比如說,儘管響應行HTTP/1.0 200 NOT OK
和HTTP/1.0 200 OK
中原因短語的含義不同,但同樣都會被當作成功指示處理。
5、首部
可以有零個或多個首部,每個首部都包含一個名字,後面跟著一個冒號(:),然後是一個可選的空格,接著是一個值,最後是一個CRLF。首部是由一個空白行(CRLF)結束的,表示了首部列表的結束和實體主體部分的開始。有些HTTP版本,例如HTTP/1.1,要求有效的請求或回應訊息中必須包含特定的首部。本章稍後會探討各種HTTP首部。
6、實體的主體部分(entity-body)
實體的主體部分包含一個由任意資料組成的資料區塊。並不是所有的封包都包含實體的主體部分,有時,封包只是以一個CRLF結束
//告訴伺服器能夠傳送哪些媒體類型
//告訴伺服器你能傳送哪些編碼方式
以上是HTTP封包由幾個部分組成?的詳細內容。更多資訊請關注PHP中文網其他相關文章!