概述
HTTP(HyperText Transfer Protocol)是互聯網上應用最為廣泛的一種網絡協議。這種協議用來規定通信數據的格式。
HTTP請求
瀏覽器往服務器發送數據稱之為請求
。HTTP協議中規定請求組成部分:請求行、請求頭、請求體。
請求行:請求信息的第一行
請求頭:請求信息的第二行到空行結束
請求體:空行一下的內容 只有POST請求才有請求體
通過Google瀏覽器查看一個GET請求的請求信息
請求行中說明了請求的方式,比如是GET還是POST請求。還有訪問的資源、協議/版本。
GET與POST請求
GET請求會把參數放在url后面而POST請求會把參數放在請求體中,並且GET參數有大小限制,POST請求沒有限制。GET請求沒有請求體,而POST有請求體用於存放參數。
HTTP協議版本
HTTP 1.0規定瀏覽器與服務器只保持短暫的連接,瀏覽器的每次請求都需要與服務器建立一個TCP連接,服務器完成請求處理后立即斷開TCP連接,服務器不跟蹤每個客戶也不記錄過去的請求。
HTTP 1.1的持續連接,也需要增加新的請求頭來幫助實現,例如,Connection請求頭的值為Keep-Alive時,客戶端通知服務器返回本次請求結果后保持連接;Connection請求頭的值為close時,客戶端通知服務器返回本次請求結果后關閉連接。HTTP 1.1還提供了與身份認證、狀態管理和Cache緩存等機制相關的請求頭和響應頭
常見的HTTP請求頭
Accept: text/html, image/* --支持數據類型 格式 大類型/小類型 ,mime類型
Accept-Charset: ISO-8859-1 --字符集
Accpet-Encoding: gzip --支持壓縮
Accept:-Language: zh-cn --語言環境
Host: localhost:8080 --訪問主機
If-Modified-Since: Tue, 11 Jul 2000 18:27:52 GMT --緩存文件最后修改的時間
Referer: http://localhost:8080/index.html -- 來自哪個頁面 防盜鏈
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36
Cookie:
Connection: close/Keep-Alive --連接狀態
Date: Tue, 11 Jul 2000 18:27:52 GMT --時間
HTTP響應
服務器往瀏覽器寫數據稱之為響應
。HTTP協議中規定響應組成部分:響應行、響應頭、響應體。
通過過Google瀏覽器查看一個GET請求的請求行
響應行
包含協議版本 狀態碼
常見的狀態碼
常見的HTTP響應頭
Location: http://www.coderhong.com --跳轉方向 與302一起使用
Server: apache tomcate -- 服務器型號
Content-Encoding: gzip -- 數據壓縮
Content-Length: 80 --數據長度
Content-Language: zh-cn --語言環境
Content-Type: text/html; charset=GB2312 --數據類型
Last-Moddified:Tue,11 Jul 2000 18:23:51 GMT --最后修改的時間
Refresh:1; url=http://www.coderhong.com --定時刷新
Content-Disposition: attachment; filename=aaa.zip -- 下載
Set-Cookie: SS=Q0=5Lb_nQ; path=/search
Expires: -1 -- 緩存
Cache-Control: no-cache --緩存
Pragma: no-cache -- 緩存
Connection:close/Keep-Alive --連接