HTTP協議 請求 響應結構分析

2021-09-22 16:27:43 字數 2107 閱讀 7573

引言正文

請求結構示例

響應結構

響應結構示例

有彩蛋哦!!!之前介紹了springmvc接收到乙個請求之後,是如何分發,處理的。今天用瀏覽器的開發工具,無意間點開了http的請求結構,發現這一部分的知識竟然是空白的,趕緊補充一下

請求結構分為,請求行,訊息報頭,請求正文

以方法符號開頭 空格分隔 後面跟著請求的uri 和 協議版本

示例:get /damapi/api/dam/companys http/1.1

accept 用於指定客戶端接受哪些型別的資訊

accept: image/gif 表明客戶端希望接收gif影象

accept: text/html 表明客戶端希望接收gif影象

accept-charset 用於指定客戶端接受的字符集

accept-charset:iso-8859-1,gb2312 如果沒有指定,預設是任何字符集都可以接受

accept-encoding 用於指定可接受的編碼

accept-encoding: gzip, deflate, br

如果沒有指定,預設是任何字符集都可以接受

accept-language 使用者指定一種自然語言

accept-language: zh-cn,zh;q=0.9

host(傳送請求時,該報頭是必需的)

用於指定請求資源的internet主機和埠號,通常從http url中提取出來

例如 host:dam.spic.com.cn

預設埠號是80,若指定了埠號變成dam.spic.com.cn:指定埠號

user-agent

referer

referer 告訴瀏覽器是從哪個鏈結來的

accept-encoding: gzip, deflate, br

accept-language: zh-cn,zh;q=0.9

以協議版本開頭 空格分隔 後面跟著狀態碼 和描述資訊

示例:http/1.1 200 ok

content-encoding 指定文件編碼

content-length 指定內容長度

只有當瀏覽器使用持久http連線時才需要這個資料。如果你想要利用持久連線的優勢,可以把輸出文件寫入bytearrayoutputstram,完成後檢視其大小,然後把該值放入content-length頭,最後通過bytearraystream.writeto(response.getoutputstream())傳送內容

content-type

表示後面的文件屬於什麼mime型別。servlet預設為text/plain,但通常需要顯示地指定為text/html。可以用setcontenttype設定

date

當前gmt時間,可以通過setdateheader設定

expires

指明應該在什麼時候認為文件已經過期,從而不再快取它

last-modified

文件最後改動時間。可以通過if-modified-since請求頭提供乙個日期,該請求將被視為乙個條件get,只有改動時間遲於指定時間的文件才會返回,否則返回乙個304(not modified)狀態。可以通過setdateheader設定

location

表示客戶應當到**提取文件。location通常不是直接設定的,而是通過httpservletresponse的sendredirect方法,該方法同時設定狀態**為302

refresh

表示瀏覽器應該在多少時間之後重新整理文件,以秒為單位。除了舒心當前文件之外,還可以通過setheader("", 「5,url=http:host:port/path」)讓瀏覽器讀取指定頁面。注意這種功能通常是通過設定html頁面head區的實現,這是因為,自動重新整理或重定向對於那些不能使用cgi或servlet的html編寫者十分重要。但是,對於servlet來說,直接設定refresh頭更加方便。注意refresh的意義是「n秒之後重新整理本頁面或訪問指定頁面」,而不是「每隔n秒重新整理本頁面或訪問指定頁面」。因此,連續重新整理要求每次都傳送乙個refresh頭,而傳送204狀態**則可以阻止瀏覽器繼續重新整理,不管是使用refresh頭還是。注意refresh頭不屬於http 1.1正式規範的一部分,而是乙個擴充套件,但netscape和ie都支援它。

HTTP協議 請求與響應

1 簡介 2 http請求與響應 2.1 http請求 方法 get請求獲取由 request uri 所表示的資源 post 在 request uri 所標識的資源後附加新的資料 head 請求獲取由 request uri 所標識的資源的響應訊息報頭 put請求伺服器儲存乙個資源,並用 req...

http協議請求響應詳解

http協議請求響應詳解 一 http協議簡介 http是hypertext transferprotocol 超文字傳輸協議 的簡寫,它是tcp ip協議的乙個應用層協議,用於定義web瀏覽器與web伺服器之間交換資料的過程及資料本身的格式。二 http1.0的基本執行方式 1 基於http協議的...

HTTP協議請求和響應報文分析

請求行 method 請求方法 get 請求指定的頁面資訊,並返回實體主體。head 類似於get請求,只不過返回的響應中沒有具體的內容,用於獲取報頭 post 向指定資源提交資料進行處理請求 例如提交表單或者上傳檔案 資料被包含在請求體中。post請求可能會導致新的資源的建立和 或已有資源的修改。...