Http報文格式詳解

2021-07-16 12:57:38 字數 2828 閱讀 7173

http請求報文格式:

http請求報文主要由請求行、請求頭部、請求正文3部分組成

1,請求行

由3部分組成,分別為:請求方法、url(見備註1)以及協議版本,之間由空格分隔

請求方法包括get、head、put、post、trace、options、delete以及擴充套件方法,當然並不是所有的伺服器都實現了所有的方法,部分方法即便支援,處於安全性的考慮也是不可用的

協議版本的格式為:http/主版本號.次版本號,常用的有http/1.0和http/1.1

2,請求頭部

請求頭部為請求報文新增了一些附加資訊,由「名/值」對組成,每行一對,名和值之間使用冒號分隔

常見請求頭如下:

請求頭

說明

host

接受請求的伺服器位址,可以是ip:埠號,也可以是網域名稱

user-agent

傳送請求的應用程式名稱

connection

指定與連線相關的屬性,如connection:keep-alive

accept-charset

通知服務端可以傳送的編碼格式

accept-encoding

通知服務端可以傳送的資料壓縮格式

accept-language

通知服務端可以傳送的語言

請求頭部的最後會有乙個空行,表示請求頭部結束,接下來為請求正文,這一行非常重要,必不可少

3,請求正文

可選部分,比如get請求就沒有請求正文

get請求示例:

http響應報文格式:

http響應報文主要由狀態行、響應頭部、響應正文3部分組成

1,狀態行

由3部分組成,分別為:協議版本,狀態碼,狀態碼描述,之間由空格分隔

狀態**為3位數字,200~299的狀態碼表示成功,300~399的狀態碼指資源重定向,400~499的狀態碼指客戶端請求出錯,500~599的狀態碼指服務端出錯(http/1.1向協議中引入了資訊性狀態碼,範圍為100~199)

這裡列舉幾個常見的:

狀態碼

說明

200

響應成功

302

跳轉,跳轉位址通過響應頭中的location屬性指定(jsp

中forward

和redirect

之間的區別

400

客戶端請求有語法錯誤,不能被伺服器識別

403

伺服器接收到請求,但是拒絕提供服務(認證失敗)

404

請求資源不存在

500

伺服器內部錯誤

2,響應頭部

與請求頭部類似,為響應報文新增了一些附加資訊

常見響應頭部如下:

響應頭

說明

server

伺服器應用程式軟體的名稱和版本

content-type

響應正文的型別(是還是二進位制字串)

content-length

響應正文長度

content-charset

響應正文使用的編碼

content-encoding

響應正文使用的資料壓縮格式

content-language

響應正文使用的語言

響應示例:

ps:1,uri、url和urn之間的區別

uri全名為uniform resource indentifier(統一資源標識),用來唯一的標識乙個資源,是乙個通用的概念,uri由兩個主要的子集url和urn組成

url全名為uniform resource locator(統一資源定位),通過描述資源的位置來標識資源

urn全名為uniform resource name(統一資源命名),通過資源的名字來標識資源,與其所處的位置無關,這樣即使資源的位置發生變動,其urn也不會變化

http規範將更通用的概念uri作為其資源識別符號,但是實際上,http應用程式處理的只是uri的url子集

HTTP報文格式詳解

使用http協議進行通訊的雙方進行互動的資訊被稱為http報文,客戶端向服務端傳送的叫做請求報文,服務端響應給客戶端的叫做響應報文。http報文主要以由兩部分組成 報文首部和報文主體。二者通過乙個空行 cr lf 劃分開。請求報文由請求行 請求首部字段 請求報文實體組成。請求行 包括請求方法 請求u...

http報文格式

請求 header param1 header value1 crlf 請求首部 可以使用通用首部,請求首部,實體首部,擴充套件首部 header param2 header value2 crlf header paramn header valuen crlf crlf request cont...

http報文格式

http使用統一資源識別符號 uri 來傳輸資料和建立連線。url 統一資源定位符 是一種特殊種類的uri,包含了用於查詢的資源的足夠的資訊,我們一般常用的就是url,而乙個完整的url包含下面幾部分 1.協議部分 該url的協議部分為http 表示網頁用的是http協議,後面的 為分隔符 2.網域...