HTTP是一種超文本傳輸協(xié)議窝革,屬于應(yīng)用層協(xié)議,HTTP采用請(qǐng)求/響應(yīng)模型吕座,瀏覽器或其他客戶端發(fā)出請(qǐng)求虐译,服務(wù)器給與響應(yīng)。
HTTP headers是HTTP 發(fā)送網(wǎng)絡(luò)請(qǐng)求和接收響應(yīng)的核心部分吴趴,Http請(qǐng)求和響應(yīng)中都會(huì)包含header漆诽;HTTP headers由3部分組成,開始行+首部行+實(shí)體主體锣枝。
1厢拭、開始行:
發(fā)送請(qǐng)求時(shí)稱為請(qǐng)求行:
GET /query? ?HTTP/1.1? ?依次表示請(qǐng)求方法、請(qǐng)求資源的URL撇叁、HTTP版本信息
響應(yīng)報(bào)文時(shí)稱為響應(yīng)行:
HTTP/1.1 200 OK依次表示?HTTP版本供鸠、狀態(tài)碼、解釋狀態(tài)碼短語
2陨闹、首部行:用來說明瀏覽器服務(wù)器或報(bào)文主體的一些信息
發(fā)送端一般包括主機(jī)域名楞捂、連接信息、用戶代理等信息
常見的有:
????Host:主機(jī)名稱
????Connection:是否需要持久連接趋厉;示例:close寨闹,keep-alive
????Accept-Encoding:可接收的內(nèi)容壓縮編碼類型? 示例:compress,gzip
????Cache-Control:指定請(qǐng)求和響應(yīng)的緩存機(jī)制;示例:no-cache
????User-Agent:發(fā)出請(qǐng)求的用戶信息
????Accept:指定客戶端能夠接收的內(nèi)容類型觅廓;示例text/plain,text/html
????Referer:上一個(gè)網(wǎng)頁的地址鼻忠。
????Cookie:瀏覽器發(fā)送請(qǐng)求的緩存,后面發(fā)送請(qǐng)求時(shí)一并發(fā)給服務(wù)器,key=value格式
????Accept-Language: 瀏覽器可接受的語言帖蔓;示例:en zh
????Content-type:返回內(nèi)容的類型矮瘟;示例:application/x-www-form-urlencoded
服務(wù)端返回的一般包括服務(wù)器信息、時(shí)間塑娇、內(nèi)容類型澈侠、內(nèi)容長度等信息
????Date:服務(wù)器返回的時(shí)間
????Content-type:返回內(nèi)容的類型;示例:application/json
????Content-Length:響應(yīng)體的長度
????Accept-Ranges:請(qǐng)求網(wǎng)頁實(shí)體的一個(gè)或多個(gè)子范圍字段埋酬;示例:bytes
? ? Server:web服務(wù)器軟件名稱
3哨啃、實(shí)體主體:一般不用