一. 什么是HTTP協(xié)議
- HTTP協(xié)議是Hypertext Transfer Protocol(超文本傳輸協(xié)議)的縮寫(xiě)
- 主要用于World Wide Web(萬(wàn)維網(wǎng))與瀏覽器之間傳輸超文本數(shù)據(jù)
- 可以傳輸各種格式的數(shù)據(jù),例如圖片,文本,附件等等
- 基于TCP/IP通信協(xié)議來(lái)傳輸數(shù)據(jù)
二. 工作方式

http_request_response.png
主要方式客戶端-服務(wù)器模式
- 首先客戶端發(fā)起一個(gè)http請(qǐng)求(request)報(bào)文
- 服務(wù)器回復(fù)一個(gè)響應(yīng)(response)報(bào)文
三. URI和URL
- URI(Uniform Resource Identifier)統(tǒng)一資源標(biāo)識(shí)符
- URL(Uniform Resource Locator)統(tǒng)一資源定位符
- URL是一種特殊的URI
- URL中包含了資源的請(qǐng)求方式和獲取方法,而URI可以不包含
- URL的組成部分:protocol://hostname[:port]/path
- protocol:協(xié)議,例如http,ftp等等
- hostname:主機(jī)名,例如IP端口或者域名
- port:端口,可以為空
- path:路徑,使用"/"分隔開(kāi)
- 例如: http://www.baidu.com/
四. 請(qǐng)求方式
HTTP常用的請(qǐng)求方式有五種
- GET, 主要用于獲取資源
- POST, 主要用于添加資源
- PUT, 主要用于更新資源
- DELETE, 主要用于刪除資源
- OPTIONS, 和GET方式類(lèi)似, 主要用于獲取資源支持的HTTP請(qǐng)求方法
- GET和POST的區(qū)別:
- 協(xié)議層面只有語(yǔ)義上的不同
- 瀏覽器
- GET方式把參數(shù)拼接在URL后面,并且有長(zhǎng)度限制
- POST方式把參數(shù)放在body中,理論上沒(méi)有長(zhǎng)度限制
五. 報(bào)文結(jié)構(gòu)
HTTP報(bào)文主要有request和response兩種
1.request報(bào)文結(jié)構(gòu)

http request
- 請(qǐng)求行(request line): 包括請(qǐng)求方法,資源的URL,以及HTTP協(xié)議版本
- 請(qǐng)求頭部(header): 包括請(qǐng)求服務(wù)器所需要的附加信息
- 空行(CRLF):請(qǐng)求頭部后面必須是空行,即使請(qǐng)求數(shù)據(jù)為空,也要有空行
- 請(qǐng)求數(shù)據(jù)(body):也稱為請(qǐng)求實(shí)體,可以添加任意類(lèi)型的數(shù)據(jù)
2.response報(bào)文結(jié)構(gòu)

http response
- 狀態(tài)行(status line): 包括HTTP協(xié)議版本,狀態(tài)碼和狀態(tài)消息組成
- 消息報(bào)頭(header): 包括返回客戶端的一些附件信息
- 空行(CRLF): 必須有空行
- 響應(yīng)正文(body): 服務(wù)器返回給客戶端的數(shù)據(jù),可以是任意類(lèi)型的數(shù)據(jù)
六.HTTP請(qǐng)求響應(yīng)DEMO
1. GET方式
Request請(qǐng)求
GET /test?name=ygxing HTTP/1.1
Connection: keep-alive
Host: www.client.com
User-Agent: Apache-HttpClient/4.5.3 (Java/1.8.0_151)
Response請(qǐng)求
HTTP/1.1 200
Server: nginx/1.12.2
Date: Wed, 14 Mar 2018 01:33:03 GMT
Content-Type: application/json;charset=UTF-8
Content-Length: 44
Proxy-Connection: Keep-alive
{"status":1,"message":"success","data":null}
2.POST方式
Request請(qǐng)求
POST /test/ HTTP/1.1
Connection: keep-alive
Content-Type: application/json
Accept: application/json
Content-Length: 25
Host: www.client.com
User-Agent: Apache-HttpClient/4.5.3 (Java/1.8.0_151)
{"reports":["124","678"]}
Response請(qǐng)求
HTTP/1.1 200
Server: nginx/1.12.2
Date: Wed, 14 Mar 2018 00:52:07 GMT
Content-Type: application/json;charset=UTF-8
Content-Length: 44
Proxy-Connection: Keep-alive
{"status":1,"message":"success","data":null}
3.OPTIONS方式
Request請(qǐng)求
GET /test?name=ygxing HTTP/1.1
Connection: keep-alive
Host: www.client.com
User-Agent: Apache-HttpClient/4.5.3 (Java/1.8.0_151)
Response請(qǐng)求
HTTP/1.1 200
Server: nginx/1.12.2
Date: Wed, 14 Mar 2018 00:55:21 GMT
Content-Length: 0
Allow: GET,HEAD,POST,PUT,PATCH,DELETE,OPTIONS
Proxy-Connection: Keep-alive
七.常用的HTTP消息頭
消息頭分為通用頭(請(qǐng)求和響應(yīng)共有的頭部),請(qǐng)求頭和響應(yīng)頭
1. 通用頭
| 協(xié)議頭 | 作用 | 示例 |
|---|---|---|
| Cache-Control | 指定請(qǐng)求和響應(yīng)需要遵循的緩存機(jī)制 | Cache-Control:public,max-age=3600000 |
| Connection | 是否需要持久化連接 | Connnection:keep-alive或者Connection:Upgrade |
| Date | 消息發(fā)送的GMT時(shí)間 | Date: Tue, 04 Jun 2019 10:33:56 GMT |
| Pragma | HTTP1.0協(xié)議中,該首部依賴于具體實(shí)現(xiàn),向后兼容只支持緩存 | Pragma:no-cache |
| Proxy-Authorization | 向代理服務(wù)器進(jìn)行身份認(rèn)證 | Proxy-Authorization:Bearer 123456 |
| Transfer-Encoding | 內(nèi)容編碼方式,可以和Content-Encoding配合使用,也可以分塊傳輸 | Transfer-Encoding:chunked |
| Upgrade | 要求客戶端或者服務(wù)器升級(jí)到另一個(gè)高版本協(xié)議 | Upgrade:websocket |
| Via | 主要由代理服務(wù)器操作,表示請(qǐng)求或者響應(yīng)經(jīng)過(guò)了哪些代理服務(wù)器 | Via: 1.0 fred, 1.1 p.example.net |
| Warning | 警告,其中會(huì)包含錯(cuò)誤碼,實(shí)體內(nèi)容可能存在錯(cuò)誤 | Warning: 112 - "cache down" "Wed, 21 Oct 2015 07:28:00 GMT" |
2. 請(qǐng)求頭
| 協(xié)議頭 | 作用 | 示例 |
|---|---|---|
| Accept | 客戶端可以接受的響應(yīng)內(nèi)容類(lèi)型 | Accept:text/html |
| Accept-Charset | 客戶端可接受的字符編碼方式 | Accept-Charset:utf-8 |
| Accept-Control-Request-Headers | 預(yù)檢請(qǐng)求,告訴服務(wù)器真正請(qǐng)求使用的請(qǐng)求頭 | Access-Control-Request-Headers: X-Custom-Header, Content-Type |
| Accept-Control-Request-Method | 預(yù)檢請(qǐng)求,告訴服務(wù)器真正請(qǐng)求使用的方法 | Access-Control-Request-Method: POST |
| Accept-Encoding | 客戶端可接受的內(nèi)容編碼方式,可以和Content-Encoding配合使用 | Accept-Encoding:deflate,gzip;q=1.0 |
| Accept-Language | 客戶端可接受的響應(yīng)內(nèi)容語(yǔ)言列表 | Accept-Language:zh-cn |
| Authorization | 客戶端攜帶的認(rèn)證信息 | Bearer:xxxxxx |
| Cookie | 客戶端攜帶的Cookie數(shù)據(jù),使用了session的話會(huì)攜帶一個(gè)SessionID | Cookie:jsessionid=xxxx |
| Content-Security-Policy | 資源安全策略,可以控制資源的訪問(wèn)安全 | Content-Security-Policy: default-src https: |
| Content-Type | 請(qǐng)求體的MIME類(lèi)型 | Content-Type:application/json |
| Expect | 客戶端要求服務(wù)器做出的特定的行為 | Except:100-continue |
| Host | 請(qǐng)求的服務(wù)器的IP和端口 | Host:127.0.0.1:8080 |
| If-Match | 與ETag配合使用,當(dāng)客戶端提供的實(shí)體與服務(wù)器響應(yīng)Etag相匹配時(shí),才進(jìn)行相應(yīng)的操作,主要用于PUT請(qǐng)求 | If-Match:123456 |
| If-Modified-Since | 配合ETag使用,如果資源在指定時(shí)間之前未經(jīng)修改,返回一個(gè)沒(méi)有body的304響應(yīng),如果資源在指定時(shí)間之前被修改,才會(huì)回復(fù)一個(gè)狀態(tài)碼為200并且攜帶資源的響應(yīng) | If-Modified-Since:Wed, 05 Jun 2019 03:03:25 GMT |
| If-None-Match | 配合ETag使用,如果資源ETag不匹配,服務(wù)器才返回請(qǐng)求的資源,響應(yīng)碼為200,如果資源ETag匹配,服務(wù)器響應(yīng)碼為304 | If-None-Match:123456 |
| If-Range | 規(guī)定了Range字段生效的條件,滿足條件時(shí),服務(wù)器響應(yīng)碼為206,返回部分資源,不滿足條件時(shí),服務(wù)器響應(yīng)碼為200,返回完整資源 | If-Range:Wed, 21 Oct 2015 07:28:00 GMT |
| If-Unmodified-Since | 配合ETag使用,如果資源從指定時(shí)間起未被修改,那么服務(wù)器返回完整資源 | If-Unmodified-Since: Wed, 21 Oct 2015 07:28:00 GMT |
| Max-Forwards | 限制請(qǐng)求消息可以被網(wǎng)關(guān)轉(zhuǎn)發(fā)的次數(shù) | Max-Forwards: 10 |
| Origin | 請(qǐng)求的來(lái)源,只包含服務(wù)器的Host,不包含路徑 | Origin: http://www.client.com |
| Range | 配合If-Range使用,滿足If-Range條件時(shí),返回部分資源 | Range:bytes=500-900 |
| Referer | 瀏覽器所訪問(wèn)的前一個(gè)頁(yè)面 | Referer:http://www.client.com/index.html |
| TE | 指定用戶代理希望使用的傳輸編碼類(lèi)型 | TE: trailers, deflate;q=0.5 |
| User-Agent | 瀏覽器的身份標(biāo)識(shí)字符串 | User-Agent:Mozilla/... |
| X-Requested-With | 判斷客戶端的請(qǐng)求是ajax還是其他請(qǐng)求 | X-Requested-With:"XMLHttpRequest" |
3. 響應(yīng)頭
| 協(xié)議頭 | 作用 | 示例 |
|---|---|---|
| Access-Control-Allow-Credentials | 主要用戶解決跨域問(wèn)題,允許瀏覽器發(fā)送驗(yàn)證信息,例如Cookie,Authorization | Access-Control-Allow-Credentials:true |
| Access-Control-Allow-Headers | 用于預(yù)檢請(qǐng)求,返回的是正式請(qǐng)求有哪些頭部 | Access-Control-Allow-Headers: X-Custom-Header |
| Access-Control-Alllow-Methods | 用于預(yù)檢請(qǐng)求,返回服務(wù)器支持的方法列表 | Access-Control-Allow-Methods: POST, GET, OPTIONS |
| Access-Control-Allow-Origin | 允許哪些Origin跨域共享資源 | Access-Control-Allow-Origin:* |
| Access-Control-Expose-Headers | 列出服務(wù)器支持的非簡(jiǎn)單響應(yīng)頭 | Access-Control-Expose-Headers: Content-Length, X-Custom-Header |
| Accept-Patch | 指定服務(wù)器所支持的文檔補(bǔ)丁格式 | Accept-Patch:text/properties;charset=utf-8 |
| Accept-Range | 表示自身支持的請(qǐng)求范圍 | Accept-Ranges: bytes |
| Age | 響應(yīng)對(duì)象在代理服務(wù)器緩存的時(shí)間(單位:秒) | Age: 600 |
| Allow | 資源支持的請(qǐng)求方式 | Allow:GET,POST,HEAD |
| Content-Disposition | 瀏覽器對(duì)于響應(yīng)資源的動(dòng)作,下載或者打開(kāi) | Content-Disposition: attachment; filename="filename.jpg" |
| Content-Encoding | 響應(yīng)數(shù)據(jù)的編碼方式,客戶端通過(guò)相應(yīng)的方式解碼,才能獲取在Content-Type中標(biāo)識(shí)的媒體類(lèi)型 | Content-Encoding: gzip |
| Content-Language | 響應(yīng)內(nèi)容所使用的語(yǔ)言 | Content-Language:zh-cn,en-US |
| Content-Length | 響應(yīng)數(shù)據(jù)的大小(單位字節(jié)) | Content-Length:200 |
| Content-Location | 響應(yīng)資源的候選位置 | Content-Location:/test/ |
| Content-Range | 響應(yīng)資源在整個(gè)文件中的位置 | Content-Range: bytes 200-1000/67589 |
| Content-Type | 響應(yīng)資源的類(lèi)型 | Content-Type: text/html; charset=utf-8 |
| ETag | 響應(yīng)資源版本的標(biāo)識(shí),主要用于緩存 | ETag: "123456" |
| Expires | 指定資源緩存超時(shí)日期 | Expires: Wed, 21 Oct 2015 07:28:00 GMT |
| Strict-Transport-Security | 瀏覽器跳轉(zhuǎn)到https | Strict-Transport-Security: max-age=31536000; includeSubDomains |
| Last-Modified | 上次修改時(shí)間 | Last-Modified: Wed, 21 Oct 2015 07:28:00 GMT |
| Location | 瀏覽器自動(dòng)重定向到Location對(duì)應(yīng)的URL中 | Location:http://server.com/index.html |
| P3P | 隱私策略,可以解決cookie跨域問(wèn)題 | |
| Public-Key-Pins | 服務(wù)端安全協(xié)議證書(shū)的公鑰,降低偽造證書(shū)攻擊的風(fēng)險(xiǎn) | Public-Key-Pins:pin-sha256="cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs=" |
| Retry-After | 用戶代理(瀏覽器)需要等待多久繼續(xù)重試 | Retry-After: Wed, 21 Oct 2015 07:28:00 GMT |
| Server | 服務(wù)器名稱 | Server:nginx/12.0 |
| Set-Cookie | 設(shè)置HTTP Cookie | Set-Cookie: sessionid=38afes7a8; HttpOnly; Path=/ |
| Status | 服務(wù)器端狀態(tài)碼 | Status:200 OK |
| Trailer | 分塊消息添加的額外信息,例如數(shù)字簽名,消息狀態(tài) | Trailer: Expires |
八.常用的HTTP錯(cuò)誤碼
- 狀態(tài)碼有三位數(shù)字組成
- 1xx表示請(qǐng)求已經(jīng)收到,需要后續(xù)處理
- 2xx表示服務(wù)器成功處理了請(qǐng)求
- 3xx表示客戶端需要進(jìn)一步操作才能完成請(qǐng)求
- 4xx表示客戶端請(qǐng)求錯(cuò)誤
- 5xx表示服務(wù)器錯(cuò)誤
1xx:請(qǐng)求已經(jīng)收到,需要后續(xù)處理
| 狀態(tài)碼 | 消息 | 描述 |
|---|---|---|
| 100 | Continue | 客戶端應(yīng)該繼續(xù)發(fā)送請(qǐng)求, 服務(wù)器必須在請(qǐng)求完成后向客戶端發(fā)送一個(gè)最終響應(yīng) |
| 101 | Switching Protocols | 服務(wù)器已經(jīng)理解了客戶端的請(qǐng)求, 并將通過(guò)Upgrade消息頭通知客戶端采用不同的協(xié)議來(lái)完成這個(gè)請(qǐng)求, 發(fā)送完這個(gè)響應(yīng)之后, 服務(wù)器會(huì)切換到Upgrade消息頭中定義的協(xié)議 |
| 102 | Processing | 服務(wù)器將繼續(xù)進(jìn)行處理 |
2xx:服務(wù)器成功處理了請(qǐng)求
| 狀態(tài)碼 | 消息 | 描述 |
|---|---|---|
| 200 | OK | 請(qǐng)求已經(jīng)成功 |
| 201 | Created | 請(qǐng)求已經(jīng)被實(shí)現(xiàn) |
| 202 | Accepted | 請(qǐng)求已經(jīng)被接收,但還沒(méi)有開(kāi)始處理 |
| 203 | Non-Authoritative Information | 服務(wù)器已經(jīng)成功處理了請(qǐng)求, 但是返回的實(shí)體頭部元信息不是在原始服務(wù)器上有效的確定集合 |
| 204 | No Content | 服務(wù)器成功處理了請(qǐng)求, 但不需要返回任何實(shí)體內(nèi)容 |
| 205 | Reset Content | 服務(wù)器成功處理了請(qǐng)求, 但不需要返回任何實(shí)體內(nèi)容, 但與204不同之處在于該返回碼要求請(qǐng)求者重置文檔視圖 |
| 206 | Partial Content | 服務(wù)器已經(jīng)成功處理了部分GET請(qǐng)求 |
| 207 | Multi-Status | 表示之后的消息將是一個(gè)XML消息, 并且可能按照之前子請(qǐng)求數(shù)量的不同, 包含一系列獨(dú)立的響應(yīng)代碼 |
3xx:客戶端需要進(jìn)一步操作才能完成請(qǐng)求
| 狀態(tài)碼 | 消息 | 描述 |
|---|---|---|
| 300 | Multiple Choices | 被請(qǐng)求的資源有一系列可供選擇的回饋信息, 客戶端可以自行選擇一個(gè)首選的地址進(jìn)行重定向 |
| 301 | Moved Permanently | 被請(qǐng)求的資源已經(jīng)被永久移動(dòng)到新位置 |
| 302 | Move Temporarily | 請(qǐng)求的資源歷史才能夠不同的URI響應(yīng)請(qǐng)求 |
| 303 | See Other | 對(duì)應(yīng)的請(qǐng)求的響應(yīng)可以在另一個(gè)URI上被找到 |
| 304 | Not Modified | 如果客戶端發(fā)送了一個(gè)帶條件的GET請(qǐng)求, 自上次訪問(wèn)以來(lái)文檔的內(nèi)容沒(méi)有被修改, 那么服務(wù)器返回這個(gè)狀態(tài)碼 |
| 305 | Use Proxy | 被請(qǐng)求的資源必須通過(guò)制定的代理才能訪問(wèn) |
| 306 | Switch Proxy | 在最新的規(guī)范中, 306狀態(tài)碼已經(jīng)不再被使用 |
| 307 | Temporary Redirect | 請(qǐng)求的資源臨時(shí)從不同的URI響應(yīng)請(qǐng)求 |
4xx:客戶端請(qǐng)求錯(cuò)誤
| 狀態(tài)碼 | 消息 | 描述 |
|---|---|---|
| 400 | Bad Request | 語(yǔ)義有誤, 服務(wù)器無(wú)法理解, 除非進(jìn)行修改, 否則客戶端不應(yīng)該重復(fù)提交該請(qǐng)求 |
| 401 | Unauthorized | 當(dāng)前請(qǐng)求需要用戶驗(yàn)證 |
| 402 | Payment Required | 預(yù)留狀態(tài)碼 |
| 403 | Forbidden | 服務(wù)器已經(jīng)理解請(qǐng)求, 但是拒絕處理 |
| 404 | Not Found | 請(qǐng)求失敗 請(qǐng)求的資源在服務(wù)器上找不到 |
| 405 | Method Not Allowed | 請(qǐng)求行中的請(qǐng)求方法不能被用于請(qǐng)求相應(yīng)的資源 |
| 406 | Not Acceptable | 請(qǐng)求的資源內(nèi)容無(wú)法滿足請(qǐng)求頭中的條件, 因而無(wú)法生成響應(yīng)實(shí)體 |
| 407 | Proxy Authentication Required | 與401響應(yīng)類(lèi)似, 只是客戶端必須在代理服務(wù)器上進(jìn)行身份驗(yàn)證 |
| 408 | Request Timeout | 請(qǐng)求超時(shí) |
| 409 | Conflict | 和被請(qǐng)求的資源的當(dāng)前狀態(tài)存在沖突, 請(qǐng)求無(wú)法完成 |
| 410 | Gone | 被請(qǐng)求的資源在服務(wù)器上已經(jīng)不再可用, 而且沒(méi)有任何已知的轉(zhuǎn)發(fā)地址 |
| 411 | Length Required | 服務(wù)器拒絕在沒(méi)有定義Content-Length頭的情況下接受請(qǐng)求 |
| 412 | Precondition Failed | 服務(wù)器在驗(yàn)證請(qǐng)求的頭字段給出了先決條件,請(qǐng)求沒(méi)有滿足其中的一個(gè)或者多個(gè) |
| 413 | Request Entity Too Large | 請(qǐng)求的實(shí)體數(shù)據(jù)大小超過(guò)了服務(wù)器能夠處理的范圍 |
| 414 | Request-URI Too Long | 請(qǐng)求的URI長(zhǎng)度超過(guò)了服務(wù)器能夠解釋的長(zhǎng)度 |
| 415 | Unsupported Media Type | 請(qǐng)求提交的實(shí)體不是服務(wù)器支持的格式 |
| 416 | Requested Range Not Satisfiable | 請(qǐng)求中包含了Range請(qǐng)求頭, 并且Range中指定的任何數(shù)據(jù)范圍都與當(dāng)前資源的可用范圍不重合, 同時(shí)請(qǐng)求頭中沒(méi)有定義If-Range請(qǐng)求頭 |
| 417 | Expectation Failed | 請(qǐng)求頭中Expect中指定的預(yù)期內(nèi)容沒(méi)有被服務(wù)器滿足 |
| 421 | Too Many Connections | 從當(dāng)前客戶端所在的IP地址到服務(wù)器的連接數(shù)已經(jīng)超過(guò)了服務(wù)器許可的最大范圍 |
| 422 | Unprocessable Entity | 請(qǐng)求格式正確, 但是語(yǔ)義錯(cuò)誤 |
| 423 | Locked | 當(dāng)前資源被鎖定 |
| 424 | Failed Dependency | 由于之前的某個(gè)請(qǐng)求發(fā)生錯(cuò)誤, 導(dǎo)致當(dāng)前請(qǐng)求失敗 |
| 425 | Unordered Collection | 還沒(méi)有投入使用 |
| 426 | Upgrade Required | 客戶端應(yīng)該切換到TLS/1.0 |
| 449 | Retry With | 由微軟擴(kuò)展, 代表請(qǐng)求應(yīng)該在完成適當(dāng)?shù)牟僮骱笾卦?/td> |
| 451 | 該請(qǐng)求因法律原因不可用 |
5xx:服務(wù)器錯(cuò)誤
| 狀態(tài)碼 | 消息 | 描述 |
|---|---|---|
| 500 | Internal Server Error | 服務(wù)器遇到了一個(gè)未曾預(yù)料的狀況, 導(dǎo)致它無(wú)法完成對(duì)請(qǐng)求的處理 |
| 501 | Not Implemented | 服務(wù)器不支持請(qǐng)求所需要的某個(gè)功能 |
| 502 | Bad Gateway | 作為網(wǎng)關(guān)或者代理的服務(wù)器執(zhí)行請(qǐng)求時(shí), 從上游服務(wù)器收到無(wú)效的響應(yīng) |
| 503 | Service Unavailable | 服務(wù)器臨時(shí)維護(hù)或者過(guò)載, 服務(wù)器當(dāng)前無(wú)法處理請(qǐng)求 |
| 504 | Gateway Timeout | 網(wǎng)關(guān)或代理服務(wù)器嘗試執(zhí)行請(qǐng)求時(shí), 未能及時(shí)從上游服務(wù)器(URI標(biāo)識(shí)出來(lái)的服務(wù)器, 例如HTTP, FTP, LDAP)或者輔助服務(wù)器(例如DNS)收到響應(yīng) |
| 505 | HTTP Version Not Supported | 服務(wù)器不支持或者拒絕支持請(qǐng)求中使用的HTTP版本 |
| 506 | Variant Also Negotiates | 代表服務(wù)器存在內(nèi)部配置錯(cuò)誤 |
| 507 | Insufficient Storage | 服務(wù)器無(wú)法存儲(chǔ)完成請(qǐng)求所需要的內(nèi)容 |
| 509 | BandWidth Limit Exceeded | 服務(wù)器達(dá)到帶寬限制 |
| 510 | Not Extended | 獲取資源所需要的策略沒(méi)有得到滿足 |
| 600 | Unparseable Response Headers | 源站沒(méi)有返回響應(yīng)頭部,只返回實(shí)體內(nèi)容 |