鍍金池/ 問答/Linux  網(wǎng)絡(luò)安全  HTML/ HTTP權(quán)威指南 connection首部字段有點不懂

HTTP權(quán)威指南 connection首部字段有點不懂

clipboard.png

圖中標(biāo)注的地方以后點不明白:

  1. 啥是本地首部? 哪些本地首部需要保護(hù)?
  2. 假想的選項啥意思?
  3. 刪除connection指定的首部字段, 是什么時候刪除, 是第一層代理中么? 還是最后一層代理發(fā)往服務(wù)器時刪除? 網(wǎng)上很多資料解釋好模糊
回答
編輯回答
青檸

關(guān)于第一個問題。舉個栗子,客戶端發(fā)送請求報文,代理服務(wù)器接受到這個請求報文之后,客戶端的請求報文中的Connection字段指定的頭部字段,代理服務(wù)器會把這些指定的字段從請求報文中剔除掉之后再轉(zhuǎn)發(fā)。上面的本地首部指的就是這里的請求報文的首部,需要保護(hù)的首部字段就是Connection指定的字段。
關(guān)于第二個問題。《HTTP權(quán)威指南》里面前面說到Connection字段取值說了三種,其中一種就是任意標(biāo)簽值,它是不在標(biāo)準(zhǔn)里面的。而bill-my-credit-card屬于任意標(biāo)簽值,他這個假想指的是發(fā)送報文方自己指定,而非標(biāo)準(zhǔn)的首部字段。英文文檔用的是hypothetical這個英文單詞,雖有假想之意,但我覺得翻譯成“假定”比較合適,加上客戶端假定的標(biāo)簽。
關(guān)于第三個問題。第一層代理之后就會被剔除掉。

2018年7月26日 07:16
編輯回答
卟乖
客戶端(local) -> 代理(proxy) -> 服務(wù)器(remote)
  1. 如果從上下文來理解的話,本地首部即指的是客戶端(向代理)發(fā)起http請求時所指定的header。你可以通過Connection指定需要保護(hù)(代理轉(zhuǎn)發(fā)時移除這些頭)的header。
  2. 從文中理解,假想即用一個不存在的Connection參數(shù)做示例。
  3. Connection是一個控制頭,僅用于當(dāng)前連接(即local-proxy過程),代理接收到請求后即使用Connection相關(guān)參數(shù)及移除Connection指定的頭并產(chǎn)生新的Connection頭,向目標(biāo)服務(wù)器發(fā)起請求。

具體的可以參考MSDN Connectionhttp rfc connection

2018年7月13日 23:58