HTTP協議相關知識

2021-06-18 10:01:43 字數 2622 閱讀 7917

所有http響應的第一行都是狀態行,依次是當前http版本號,3位數字組成的狀態**,以及描述狀態的短語,彼此由空格分隔。

狀態**的第乙個數字代表當前響應的型別:

1xx訊息——請求已被伺服器接收,繼續處理

2xx成功——請求已成功被伺服器接收、理解、並接受

3xx重定向——需要後續操作才能完成這一請求

4xx請求錯誤——請求含有詞法錯誤或者無法被執行

5xx伺服器錯誤——伺服器在處理某個正確請求時發生錯誤

詳情參考:http狀態碼

http訊息由客戶端到伺服器的請求和伺服器到客戶端的響應組成。請求訊息和響應訊息都是由開始行(對於請求訊息,開始行就是請求行,對於響應訊息,開始行就是狀態行),訊息報頭(可選),空行(只有crlf的行),訊息正文(可選)組成。

http訊息報頭包括普通報頭、請求報頭、響應報頭、實體報頭。 每乙個報頭域都是由名字+「:」+空格+值 組成,訊息報頭域的名字是大小寫無關的。

普通報頭

在普通報頭中,有少數報頭域用於所有的請求和響應訊息,但並不用於被傳輸的實體,只用於傳輸的訊息。

請求報頭

請求報頭允許客戶端向伺服器端傳遞請求的附加資訊以及客戶端自身的資訊。

引數:描述

accept

accept請求報頭域用於指定客戶端接受哪些型別的資訊。eg:accept:image/gif,表明客戶端希望接受gif圖象格式的資源;accept:text/html,表明客戶端希望接受html文字。

accept-charset

accept-charset請求報頭域用於指定客戶端接受的字符集。eg:accept-charset:iso-8859-1,gb2312.如果在請求訊息中沒有設定這個域,預設是任何字符集都可以接受。

accept-encoding

accept-encoding請求報頭域類似於accept,但是它是用於指定可接受的內容編碼。eg:accept-encoding:gzip.deflate.如果請求訊息中沒有設定這個域伺服器假定客戶端對各種內容編碼都可以接受。

accept-language

accept-language請求報頭域類似於accept,但是它是用於指定一種自然語言。eg:accept-language:zh-cn.如果請求訊息中沒有設定這個報頭域,伺服器假定客戶端對各種語言都可以接受。

authorization

請求報頭域主要用於證明客戶端有權檢視某個資源。當瀏覽器訪問乙個頁面時,如果收到伺服器的響應**為401(未授權),可以傳送乙個包含authorization請求報頭域的請求,要求伺服器對其進行驗證。 host(傳送請求時,該報頭域是必需的),host請求報頭域主要用於指定被請求資源的internet主機和埠號,它通常從http url中提取出來的

user-agent

user-agent請求報頭域允許客戶端將它的作業系統、瀏覽器和其它屬性告訴伺服器。不過,這個報頭域不是必需的,如果我們自己編寫乙個瀏覽器,不使用user-agent請求報頭域,那麼伺服器端就無法得知我們的資訊了。

響應報頭

響應報頭允許伺服器傳遞不能放在狀態行中的附加響應資訊,以及關於伺服器的資訊和對request-uri所標識的資源進行下一步訪問的資訊。

引數:描述

location

location響應報頭域用於重定向接受者到乙個新的位置。location響應報頭域常用在更換網域名稱的時候。

server

server響應報頭域包含了伺服器用來處理請求的軟體資訊。與user-agent請求報頭域是相對應的。eg:server:apache-coyote/1.1

www-authenticate

www-authenticate響應報頭域必須被包含在401(未授權的)響應訊息中,客戶端收到401響應訊息時候,並傳送authorization報頭域請求伺服器對其進行驗證時,服務端響應報頭就包含該報頭域。 eg:www-authenticate:basic realm="basic auth test!" //可以看出伺服器對請求資源採用的是基本驗證機制。

實體報頭

請求和響應訊息都可以傳送乙個實體。乙個實體由實體報頭域和實體正文組成,但並不是說實體報頭域和實體正文要在一起傳送,可以只傳送實體報頭域。實體報頭定義了關於實體正文(eg:有無實體正文)和請求所標識的資源的元資訊。

引數:描述

content-encoding

實體報頭域被用作**型別的修飾符,它的值指示了已經被應用到實體正文的附加內容的編碼,因而要獲得content-type報頭域中所引用的**型別,必須採用相應的解碼機制。content-encoding這樣用於記錄文件的壓縮方法,eg:content-encoding:gzip

content-language

content-length

實體報頭域用於指明實體正文的長度,以位元組方式儲存的十進位制數字來表示。

content-length

實體報頭域用於指明實體正文的長度,以位元組方式儲存的十進位制數字來表示。

content-type

實體報頭域用語指明傳送給接收者的實體正文的**型別。eg: content-type:text/html;charset=iso-8859-1

last-modified

實體報頭域用於指示資源的最後修改日期和時間。

expires

實體報頭域給出響應過期的日期和時間。

Http 協議相關知識

1 什麼是http協議?http協議是超文字傳輸協議的縮寫,英文是hyper text transfer protocol。是從全球資訊網伺服器傳輸超文字到本地瀏覽器的傳送協議。2 什麼是http協議無狀態協議?怎麼解決http協議無狀態協議?無狀態協議對於事務處理沒有記憶能力。缺少狀態意味著如果後...

HTTP協議相關知識點

1.http協議 hypertext transfer protocol,超文字傳輸協議 是網際網路上應用最為廣泛的一種網路傳輸協議,所有的www檔案都必須遵守這個標準。2.從1990年開始就在www上廣泛應用,是現今在www上應用最多的協議,目前版本為1.1。3.http基於tcp ip通訊協議來...

HTTP 協議相關

1 http請求 分類 請求行 請求頭 請求體 請求行 描述請求的資源 格式 請求方法 資源路徑 協議 例如 get day04 1.html http 1.1 請求方法 get 請求內容追加在url之後 url的長度有限制1k post 請求內容放置在請求體中 請求頭 accept 瀏覽器通知伺服...