http標頭檔案可以包含很多有用的資訊,但作為初學者大多數是不清楚這些內容的含義和作用,故我在學習過程中記錄下主要的標頭檔案內容的含義和作用,以備後續考查。本文會不定期持續更新。。。。。。
下圖為火狐瀏覽器的火狐主頁的請求頭。乙個請求頭中包含了很多的資訊,但對於初學者而言,一臉懵逼,內心迷茫。那麼開始記錄了。。。。
寫在最前面
;q= (qvalues weighting)
值代表優先順序,用相對質量價值 表示,又稱為權重。
在後面的個種頭中經常出現
進入正題:
表示使用者**希望接受的資源型別,即mime型別。
accept: /
這裡舉幾個例子:
.***
的格式是audio/mpeg
.htm
和.html
是text/html
.jpg
和.jpeg
是image/jpeg
將客戶端能夠理解的內容編碼方式——通常是某種壓縮演算法——進行通知(給服務端)。通過內容協商的方式,服務端會選擇乙個客戶端提議的方式,使用並在響應頭content-encoding
中通知客戶端該選擇
gzip:表示採用lz77壓縮演算法,以及32位crc校驗的編碼方式
compress:採用lzw壓縮演算法
deflate:採用zlib結構和deflate壓縮演算法
br:表示採用brotil演算法的編碼方式
identity:用於指代自身(例如:未經過壓縮和修改)。除非特別指明,這個標記始終可以被接受。
告知服務端客戶端可以理解的自然語言,用來說明使用者希望使用的語言和語言組,實現使用者語言定製化。
有一些**會通過讀取語言內容來限制指定語言使用者訪問,例如,筆者在之前遇到過乙個釣魚**,在筆者瀏覽器設定的語言為en時,釣魚**禁止了我的訪問,將語言設定回漢字就會發現**又可以訪問了。這是一種簡單的過濾指定使用者的根據。
通用訊息頭欄位,通過指定指令控制來實現快取機制
cache-control: max-age=
cache-control: max-stale[=]
cache-control: min-fresh=
cache-control: no-cache
cache-control: no-store
cache-control: no-transform
cache-control: only-if-cached
用於決定當前的事務完成後,是否會關閉網路連線。如果該值是「keep-alive」,網路連線就是持久的,不會關閉,使得對同乙個伺服器的請求可以繼續在該連線上完成。
如果是close,表明客戶端或伺服器想要關閉該網路連線
其中含有先前由伺服器通過 set-cookie 首部投放並儲存到客戶端的 http cookies。這個首部可能會被完全移除,例如在瀏覽器的隱私設定裡面設定為禁用cookie,伺服器將不會在你的計算機裡 存放cookie。
指明了伺服器的網域名稱(對於虛擬主機來說),以及(可選的)伺服器監聽的tcp埠號。
語法:host::
用來向伺服器端傳送訊號,表明自己支援公升級機制,客戶端優先選擇加密及帶有身份驗證的響應。
這個大家應該會比較熟悉,這個就是使用者**,也經常被寫作ua。它用來告知服務端發起請求的使用者**軟體的應用型別、作業系統、軟體開發商以及版本號。
通過修改ua資訊可以欺騙服務端你的系統和瀏覽器產品,通過ua來判斷作業系統和瀏覽器核心以提供更好的瀏覽體驗是乙個簡單應用。
請求頭包含了當前請求頁面的**頁面的位址,即表示當前頁面是通過此**頁面裡的鏈結進入的。服務端一般使用 referer 請求頭識別訪問**,可能會以此進行統計分析、日誌記錄以及快取優化等。
故可以通過新增或修改referer頭來實現欺騙服務端,偽造我們的**頁面。以此越過一些網頁的這種跳轉訪問要求。
語法:x-forwarded-for: 127.0.0.1,70.41.3.18, 150.172.238.178
格式為ip位址,**,最近**
下圖為火狐瀏覽器的火狐主頁的響應頭。與請求頭相同內容不在解釋了。
它和accept-encoding是一對,告知客戶端內容使用何種編碼方式
詳細可見請求頭的accept-encoding
訊息頭里包含訊息物件在快取**中存貯的時長,以秒為單位。
允許站點管理者控制使用者**能夠為指定的頁面載入哪些資源。除了少數例外情況,設定的政策主要涉及指定伺服器的源和指令碼結束點。這將幫助防止跨站指令碼攻擊xss,對**的資源進行限制。
告知客戶端響應資源的型別屬於哪一種,也是mime格式,具體可以參考請求頭的accept
顯示資料報文建立的日期和時間
包含了處理請求的源頭伺服器所用到的軟體相關資訊
通過檢視server內容我們可以知道服務端的相關資訊
例如:使用nginx或apache,作業系統型別是unix、linux、windows等
訊息首部指明了將 entity安全傳遞給使用者所採用的編碼形式。
是乙個通用首部,是由**伺服器新增的,適用於正向和反向**,在請求和響應首部中均可出現。這個訊息首部可以用來追蹤訊息**情況,防止迴圈請求,以及識別在請求或響應傳遞鏈中訊息傳送者對於協議的支援能力。
通過via我們可以知道使用的協議、協議版本、公共**url及埠號、內部**名稱或別名。
[1]
HTTP協議(持續更新)
http請求由三部分組成,分別是 請求行 訊息報頭 請求正文 http 超文字傳輸協議 是乙個基於請求與響應模式的 無狀態的 應用層的協議,常基於tcp的連線方式,http1.1版本中給出一種持續連線的機制,絕大多數的web開發,都是構建在http協議之上的web應用。特點 1 http是無連線 無...
C C 常用標頭檔案及其函式彙總(持續更新)
編號 函式原型 函式使用說明備註1 size t fwrite const void buffer,size t size,size t count,file stream 向指定的檔案中寫入若干資料塊,如成功執行則返回實際寫入的資料塊數目。寫入到檔案的 這個與檔案的開啟模式有關,如果是w 則是從f...
http標頭檔案User Agent詳解
什麼是user agent user agent中文名為使用者 簡稱 ua,它是乙個特殊字串頭,使得伺服器能夠識別客戶使用的作業系統及版本 cpu 型別 瀏覽器及版本 瀏覽器渲染引擎 瀏覽器語言 瀏覽器外掛程式等。一些 常常通過判斷 ua 來給不同的作業系統 不同的瀏覽器傳送不同的頁面,因此可能造成...