網(wǎng)絡(luò)編程時(shí)囊骤,我們?cè)诖a中可能會(huì)用到請(qǐng)求頭這個(gè)東西馏锡,對(duì)于網(wǎng)絡(luò)比較陌生的萌新可能會(huì)不知所措蛔外,日常訪問(wèn)網(wǎng)址都是在瀏覽器地址欄輸入網(wǎng)址就可以了啊蛆楞,怎么這會(huì)子要搞什么請(qǐng)求頭!其實(shí)說(shuō)多了都是瀏覽器的鍋夹厌,我們?cè)谌粘J褂脼g覽器訪問(wèn)網(wǎng)址的時(shí)候請(qǐng)求頭都已經(jīng)自動(dòng)被瀏覽器封裝了起來(lái)豹爹,所以我們看不到請(qǐng)求頭。
請(qǐng)求頭能告訴被請(qǐng)求的服務(wù)器需要傳送什么樣的格式的信息矛纹,通俗的講就是有一天你去買蘋果臂聋,你光告訴老板蘋果還不行,還得告訴他你要的蘋果的種類和數(shù)量或南。這個(gè)種類和數(shù)量就相當(dāng)于Http中的請(qǐng)求頭孩等。
那么現(xiàn)在我們就揭開請(qǐng)求頭的神秘面紗:
現(xiàn)在我們用火狐瀏覽器訪問(wèn)百度首頁(yè),然后隨便找個(gè)空白處右擊查看元素采够,就會(huì)跳出來(lái)一個(gè)開發(fā)者工具肄方,然后我們找到網(wǎng)絡(luò),接下里的操作我不會(huì)描述了蹬癌,看圖吧~
我們可以看到右下方有請(qǐng)求頭一欄权她,然后下面是一列云云,這些都是什么意思笆判健伴奥!比較懵!
不過(guò)我們?cè)诰幊讨幸砑拥恼?qǐng)求頭就是這些了~
在這里我們解釋一下這些云云的意思:
(1) Host:ss1.bdstatic.com // Host就是主機(jī)的意思翼闽,在這里表示我們請(qǐng)求的服務(wù)器網(wǎng)址
(2) User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0
// User-Agent是用戶代理的意思拾徙,它告訴服務(wù)器客戶端使用的操作系統(tǒng)及版本、CPU類型感局、瀏覽器及版本尼啡、瀏覽器渲染引擎等信息
(3) Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
// Accept表示瀏覽器支持的MIME類型,這里又出來(lái)了一個(gè)新名詞MIME询微,MIME的英文全稱是 Multipurpose Internet Mail Extensions(多
功能 Internet 郵件擴(kuò)充服務(wù))崖瞭,它是一種多用途網(wǎng)際郵件擴(kuò)充協(xié)議,這里就理解成瀏覽器支持的網(wǎng)頁(yè)代碼類型就可以啦撑毛。
// text/html,application/xhtml+xml,application/xml 等都是MIME類型书聚。斜杠前面是類型,后面是子類型,類型指定大范圍雌续,子類型是
類型中更為明確的類型斩个。
// text是用于標(biāo)準(zhǔn)化地表示的文本信息,文本消息可以是多種字符集和或者多種格式的驯杜。
// text/html表示html文檔
// Application:用于傳輸應(yīng)用程序數(shù)據(jù)或者二進(jìn)制數(shù)據(jù)受啥,這里我們?nèi)绻鸄pp編程的話就需要用這個(gè)
// application/xhtml+xml表示 xhtml 文檔, application/xml表示 xml 文檔。
則默認(rèn)為1鸽心,若被賦值為0滚局,則用于提醒服務(wù)器哪些是瀏覽器不接受的內(nèi)容類型。
(4) Accept-Language:zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
// Accept-Language表示瀏覽器所支持的語(yǔ)言類型
// zh-CN表示簡(jiǎn)體中文顽频,zh表示中文藤肢,en-US表示美式英文,en表示英文
// 當(dāng)然這里的q也是權(quán)重系數(shù)啦
(5) Accept-Encoding:gzip, deflate, br
// Accept-Encoding表示瀏覽器有能力解碼的編碼類型
// gzip是 GNU zip 的縮寫糯景,它是一個(gè) GNU 自由軟件的文件壓縮程序谤草,也經(jīng)常用來(lái)表示 gzip 這種文件格式
// deflate是同時(shí)使用了 LZ77 算法與哈夫曼編碼(Huffman Coding)的一個(gè)無(wú)損數(shù)據(jù)壓縮算法
// br ~ 當(dāng)然也是一種編碼方式啦
(6) Connection:keep-alive
// Connection表示客戶端與服務(wù)連接類型
// Keep-Alive表示持久連接
好了,我們的請(qǐng)求頭就都解釋完了莺奸。編程中不同的網(wǎng)絡(luò)訪問(wèn)類有不同的添加請(qǐng)求頭的方式丑孩,這個(gè)可以參考對(duì)應(yīng)的Api文檔~
MQL于2017年8月28日完成本文。