1. 什么是HTTP?
-
HTTP
是hypertext transfer protocol
(超文本傳輸協(xié)議)的簡寫唯竹,它是TCP/IP
協(xié)議的一個應(yīng)用層協(xié)議,用于定義WEB瀏覽器與WEB服務(wù)器之間交換數(shù)據(jù)的過程浸颓。
HTTP協(xié)議的版本:HTTP/1.0
芬骄、HTTP/1.1
HTTP/1.0
:客戶端與web服務(wù)器建立連接后鹦聪,只能獲得一個web資源账阻。
HTTP/1.1
:客戶端與web服務(wù)器建立連接后泽本,在一個連接上獲得多個web資源淘太。
2. 完整的HTTP請求?
一個請求行
若干請求頭
-
以及實體內(nèi)容
常見請求頭(客戶端告知服務(wù)器)
Header | 示例 | 解釋 |
---|---|---|
Accept | text/html撇贺、image/* | 客戶端支持的數(shù)據(jù)類型 |
Accept-Charset | ISO-8859-1 | 客戶端采用的編碼 |
Accept-Encoding | gzip、compress | 客戶端支持的數(shù)據(jù)壓縮格式 |
Accept-Language | en-us松嘶、zh-cn | 客戶端的語言環(huán)境 |
Host | www.baidu.com:80 | 客戶端想訪問的主機名 |
If-Modified-Since | Tue, 11 Jul 2000 18:23:51 GMT | 資源緩存的時間 |
Referer | http://www.baidu.com | 客戶端從哪個資源來訪問服務(wù)器的(防盜鏈) |
User-Agent | Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) | 客戶端的軟件環(huán)境 |
Cookie | - | - |
Connection | close/Keep-Alive | 訪問后是否關(guān)閉連接 |
3. 完整的HTTP響應(yīng)挎扰?
- 一個狀態(tài)行
- 若干消息頭
- 以及實體內(nèi)容
- 狀態(tài)碼
- 狀態(tài)碼用于表示服務(wù)器對請求的處理結(jié)果,它是一個三位的十進制數(shù)遵倦。響應(yīng)狀態(tài)碼分為5類:
狀態(tài)碼 | 含義 |
---|---|
100~199 | 表示成功接收請求,要求客戶端繼續(xù)提交下一次請求才能完成整個處理過程 |
200~299 | 表示成功接收請求并已完成整個處理過程梧躺,常用200 |
300~399 | 為完成請求,客戶需進一步細化請求掠哥。例如,請求的資源已經(jīng)移動一個新地址龙致,常用302、307目代、304 |
400~499 | 客戶端的請求有錯誤,常用404 |
500~599 | 服務(wù)器端出現(xiàn)錯誤榛了,常用 500 |
- 常見消息頭(服務(wù)器告知客戶端)
Header | 示例 | 解釋 |
---|---|---|
Location | http://www.baidu.com | 配合302狀態(tài)碼使用,告訴客戶找誰(重定向) |
Server | apache tomcat | 告知服務(wù)器的類型 |
Content-Encoding | gzip | 數(shù)據(jù)的壓縮格式 |
Content-Length | 80 | 告知回送數(shù)據(jù)的長度 |
Content-Language | zh-cn | 數(shù)據(jù)的語言編碼 |
Content-Type | text/html; charset=GB2312 | 數(shù)據(jù)類型與編碼 |
Last-Modified | Tue, 11 Jul 2000 18:23:51 GMT | 告知客戶端當(dāng)前資源緩存時間 |
Refresh | 1;url=http://www.baidu.com | 告知客戶端隔多長時間刷新一次 |
Content-Disposition | attachment; filename=aaa.zip | 告知客戶端以下載方式打開數(shù)據(jù) |
Transfer-Encoding | chunked | 告知瀏覽器的數(shù)據(jù)傳送格式 |
Set-Cookie | SS=Q0=5Lb_nQ; path=/search | 設(shè)置cookie |
ETag | W/"7777-1242234904000" | 緩存相關(guān)的頭 |
Expires | -1 | 告知客戶端回送的數(shù)據(jù)緩存時間构哺,-1或0是不緩存 |
Cache-Control | no-cache | 告知客戶端不緩存 |
Pragma | no-cache | 告知客戶端不緩存 |
4. 前端與后端交互過程(客戶端與服務(wù)器)
完整http請求與響應(yīng)頭信息战坤、狀態(tài)碼 參考
http://tool.oschina.net/
http://tools.jb51.net/table/http_header
http 參考