大家好蚓哩,我是IT修真院學(xué)員谁帕,一枚正直善良的Java程序員。
今天給大家分享一下吼虎,修真院官網(wǎng) Java任務(wù)中可能會(huì)使用到的知識(shí)點(diǎn):
Http的Header
1.背景介紹
HTTP報(bào)文中的Header可以分為請(qǐng)求中的Header和響應(yīng)中的Header
2.知識(shí)剖析
常見Header詳解:
Header中”q”值的含義:優(yōu)先級(jí)犬钢。
沒有q值的優(yōu)先級(jí)默認(rèn)為1。
q值一樣的思灰,范圍小的優(yōu)先級(jí)高玷犹。
格式:分號(hào)。
Accept:
客戶端可以接受的Body格式
application/json ——JSON格式
text/plain——純文本格式
text/html——HTML文本
*/*——所有格式
逗號(hào)隔開洒疚,有順序歹颓。
分號(hào)前是主類型坯屿,分號(hào)后是子類型。
如果沒有Accept請(qǐng)求頭巍扛,相當(dāng)于*/*
Accept-Encoding :
Content-Encoding:
Accept-Encoding指定瀏覽器可以支持的web服務(wù)器返回內(nèi)容壓縮編碼類型领跛。
服務(wù)器會(huì)通過Accept-Encoding得到客戶端支持的壓縮方式,如果服務(wù)器和瀏覽器同時(shí)支持某種壓縮方式撤奸,服務(wù)器就會(huì)添加一種Content-Encoding吠昭,來進(jìn)行壓縮。
如果服務(wù)器不支持客戶端Accept-Encoding中的任何一個(gè)壓縮方式寂呛,則會(huì)返回406錯(cuò)誤怎诫。
如果請(qǐng)求頭中沒有Accept-Encoding這個(gè)頭,則會(huì)默認(rèn)客戶端支持任何方式贷痪。
Accept-Language:
瀏覽器可接受的自然語言的類型幻妓。
如果沒有Accept-Language這個(gè)請(qǐng)求頭,服務(wù)器默認(rèn)客戶端支持所有自然語言劫拢。
例如:zh-CN,zh;q=0.8,en;q=0.6,zh-TW;q=0.4
User-Agent:
主要用于統(tǒng)計(jì)和追蹤信息肉津,用處不大〔詹祝可以包含很多信息妹沙。
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36
Content-Type:
表示請(qǐng)求或響應(yīng)體的格式。
Connection:
設(shè)置HTTP連接的持久化熟吏,通常都是Keep-Alive距糖。
Connection: close 表示在響應(yīng)結(jié)束后,結(jié)束連接牵寺。
WWW-Authenticate:
WWW-Authenticate響應(yīng)頭必須包含在401授權(quán)錯(cuò)誤中悍引,表示通過什么方式進(jìn)行身份驗(yàn)證。
例如:WWW-Authenticate: BASIC realm="application"
3.常見問題
如果沒有ACCEPT請(qǐng)求頭帽氓?
相當(dāng)于*/*
任何格式都接收
如果請(qǐng)求頭中沒有ACCEPT-ENCODING趣斤?
默認(rèn)客戶端支持任何方式
如果沒有ACCEPT-LANGUAGE這個(gè)請(qǐng)求頭?
服務(wù)器默認(rèn)客戶端支持所有自然語言黎休。
POSTMAN測(cè)試正常浓领,前端頁面測(cè)試不正常?势腮?
4.解決方法
POSTMAN
JMETER
CHROME
5.編碼實(shí)戰(zhàn)
在JAVA中取得請(qǐng)求頭联贩?
取得HttpServletRequest對(duì)象
public String getHeader(String name);
public Enumeration getHeaders(String name);
public Enumeration getHeaderNames();
在JAVA中添加響應(yīng)頭?
取得HttpServletResponse對(duì)象
public void setHeader(String name, String value);——會(huì)覆蓋
public void addHeader(String name, String value);——添加多個(gè)值
6.擴(kuò)展思考
如何用JAVA更改請(qǐng)求頭捎拯?
7.參考文獻(xiàn)
百度
8.更多討論
ptteng.github.io/PPT/PPT-java/java-task2-header.html