HTTP簡(jiǎn)介
HTTP請(qǐng)求格式
HTTP規(guī)定,HTTP請(qǐng)求由如下3部分構(gòu)成
- 請(qǐng)求方法、URI和HTTP的版本
- 請(qǐng)求頭(Request Header)
- 請(qǐng)求正文(Request Content)
請(qǐng)求方式、URI和HTTP的版本
HTTP請(qǐng)求的第一行包括請(qǐng)求方式、URI和協(xié)議版本,以空格分隔:
POST /hello.jsp HTTP/1.1
POST 請(qǐng)求方式
/hello.jsp URI
HTTP/1.1 HTTP版本
請(qǐng)求頭
Host: ntlias-stu.boxuegu.com //遠(yuǎn)程主機(jī)
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:71.0) Gecko/20100101 Firefox/71.0 //瀏覽器類型
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN //瀏覽器所用的語(yǔ)言
Content-Type image/jpeg;charset=UTF-8 //正文類型
Content-Length:40 //正文長(zhǎng)度
Accept-Encoding: gzip, deflate
Connection: keep-alive
Cookie: SESSION=ac4880af-ef3e-4272-ad63-7eead44dd7ae
Upgrade-Insecure-Requests: 1
If-Modified-Since: Wed, 06 Nov 2019 11:55:26 GMT
If-None-Match: W/"1621-1573041326000"
Cache-Control: max-age=0
# 常見(jiàn)的請(qǐng)求頭
Host 請(qǐng)求的服務(wù)器的主機(jī)地址和端口
User-Agent 瀏覽器的信息
Accept 瀏覽器可以接收的數(shù)據(jù)類型
Accept-Language 瀏覽器可以處理的語(yǔ)言
Accept-Encoding 瀏覽器可以接收的數(shù)據(jù)壓力類型
Referer 請(qǐng)求從哪個(gè)頁(yè)面發(fā)起 可以實(shí)現(xiàn)防盜鏈
Connection 保持連接
Content-Type 提交的內(nèi)容類型
Content-Length 請(qǐng)求的數(shù)據(jù)內(nèi)容的字節(jié)大小
請(qǐng)求正文
HTTP規(guī)定,請(qǐng)求頭和請(qǐng)求正文之間必須以空行分隔。這個(gè)空行非常重要,表示請(qǐng)求頭已經(jīng)結(jié)束。接下來(lái)是請(qǐng)求正文
HTTP響應(yīng)的格式
- HTTP的版本、狀態(tài)代碼和描述
HTTP/1.1 200 ok
代表使用HTTP1.1協(xié)議,狀態(tài)代碼為200
- 響應(yīng)頭
HTTP/1.1 200 OK
Server: nginx/1.8.1 服務(wù)器類型
Date: Wed, 06 Nov 2019 12:12:03 GMT
Content-Type: image/jpeg;charset=UTF-8 //正文類型
Content-length:42 //正文長(zhǎng)度
Transfer-Encoding: chunked
Connection: keep-alive
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Pragma: no-cache
# 常見(jiàn)響應(yīng)頭
Content-Type 響應(yīng)體內(nèi)容的類型 取值
text/plain 純文本內(nèi)容
text/html hmtl內(nèi)容
application/x-download 文件類型 常配合 Content-Disposition 使用
Content-Length 響應(yīng)體內(nèi)容的字節(jié)大小
Location 重定向的資源地址 配合302使用
refresh 定時(shí)刷新頁(yè)面 取值 秒;url=網(wǎng)絡(luò)地址
Content-Disposition 告訴瀏覽器響應(yīng)體內(nèi)容的處理方式 取值
inline 內(nèi)聯(lián)(默認(rèn)) 把內(nèi)容直接在瀏覽器中展示
attachment 附件 告訴瀏覽器提示用戶下載文件
- 響應(yīng)正文
響應(yīng)正文就是服務(wù)器返回的具體數(shù)據(jù),常見(jiàn)的是HTML文檔
HTTP請(qǐng)求頭與請(qǐng)求正文之間必須用空行分隔
- 正文部分的MIMI類型
HTTP請(qǐng)求以及響應(yīng)的正文部分可以是任意格式的,HTTP采用MIME協(xié)議來(lái)規(guī)范正文的數(shù)據(jù)格式
遵守MIME協(xié)議的數(shù)據(jù)類型統(tǒng)稱為MIME類型,在HTTP請(qǐng)求頭和HTTP響應(yīng)頭中都有一個(gè)Content-type項(xiàng),用來(lái)指定請(qǐng)求正文部分或響應(yīng)正文部分的MIME類型。