HTTP協議筆記

2021-07-09 11:05:05 字數 2160 閱讀 7578

http協議是基於tcp協議的上層應用協議

特點1無連線:每次連線只處理乙個請求,處理完即斷開連線

特點2無狀態:每次連線需要的資訊都要重傳

restful:一種流行的網際網路軟體設計架構 含義是資源表現層狀態轉化,包括三部分

1.定義直觀簡短的資源位址uri  (應當是名詞,動作放到引數裡)

2.定義傳輸的資源:web服務接受與返回的網際網路**型別,如json,xml等

3.對資源的操作方法:

get獲取資源 post/put更新資源 delete刪除資源

http有兩種訊息,請求訊息和響應訊息,均包括三部分,其中首行和頭部 基於ascii編碼,正文通常約定utf-8

請求首行:get /******.html http/1.1    

方法,路徑,版本

響應首行:http/1.1 200 ok 版本號,狀態碼,狀態文字

常用http方法:

先解釋一下冪等性:一次請求與多次請求具有相同的***

get請求只有header,沒有body,響應對應uri的資源表述,

get不改變狀態,冪等,可快取,有長度限制,不應在處理敏感資料時使用

post會改變狀態,不具備冪等性(比如重複新建會產生多個新資源),沒有快取

delete會改變狀態,有冪等性(重複刪除應當把403響應修正為200)

head相當於返回沒有body的get響應

put相當於有冪等性的post(重複新建只返回乙個新資源)

uri路徑,前面用/組成目錄路徑,?後跟查詢字串,查詢字串由多個鍵值對組成,用=組成鍵值對,用&連線多個鍵值對

/path/res?key1&key2=&key3=v3       定義了key1,key2為空字串,key3值為v3

關於url編碼

**採用utf-8編碼;查詢字串採用作業系統編碼;在已有網頁中get和post採用網頁規定的編碼;ajax採用瀏覽器規定編碼

通常在提交前先對url編碼,避免作業系統、網頁、瀏覽器的編碼差異

轉碼:&:%26   = :%3d   % :%25

常用http訊息頭

accept及accept-xx,指定可接受的內容型別、編碼集、語言等等

cookie 用於辨認身份的會話快取 set-cookie 設定cookie

expires 乙個gmt時間,超過此時間認為快取失效(受客戶端時間正確性影響)

etag 告訴瀏覽器該資源的唯一識別符號(生成規則由伺服器指定)

if-none-match 將同一資源響應的etag值發給伺服器

last-modified 告訴瀏覽器最後更新的時間

if-modified-since 將同一資源響應的last-modified值發給伺服器

cache-control 快取機制

public共享快取,private對應不同使用者有不同快取

no-cache  不校驗快取強制請求伺服器資料

no-store   不儲存快取

max-age=[秒] 對比快取的時間,超過規定的則認為快取失效  max-age=0 不儲存快取

only-if-cached 只想要快取,不發起請求,並且會忽視max-age

max-stale=[秒] 對比快取的時間,超過規定的則認為快取失效

如果cache-control規定no-cache則直接請求伺服器並且不再校驗etag、last-modified和expires

如果cache-control通過only-if-cahced&max-stale、max-age等規則認定快取有效將不會發起請求而直接使用快取

否則發起請求校驗etag,如果匹配再校驗 last-modified,如果匹配則返回 304告知瀏覽器使用快取

前三項都沒設定才會校驗expires

常見狀態碼:

2xx成功:200成功,

3xx重定向:301已轉至新url 304已轉至快取

4xx客戶端錯誤:400請求格式錯誤  403禁止訪問(許可權錯誤) 404未找到

5xx伺服器錯誤:500伺服器未知錯誤  502從上游伺服器獲得無效響應 503伺服器過載/當機 504閘道器超時

http必知必會:

理解restful架構 : 

理解http冪等性: 

http方法詳解:

web瀏覽器的快取機制 :

http 狀態訊息大全: 

http 協議筆記

webservice http協議 xml rest http協議 json 各種api 也一般是用http xml json 來實現的 做採集小偷站,或者學習ajax 也要了解http 協議 計算機中的協議和現實中的協議是一樣的,一式雙份或者多份 雙方都遵循乙個規範,這個規範就可以稱之為協議 ft...

HTTP協議筆記

http協議是基於tcp協議的上層應用協議 特點1無連線 每次連線只處理乙個請求,處理完即斷開連線 特點2無狀態 每次連線需要的資訊都要重傳 restful 一種流行的網際網路軟體設計架構 含義是資源表現層狀態轉化,包括三部分 1.定義直觀簡短的資源位址uri 應當是名詞,動作放到引數裡 2.定義傳...

http協議筆記

http的七層模型 網路服務與終端使用者的乙個介面。協議有 表示層 presentation layer 資料的表示 安全 壓縮。在五層模型裡面已經合併到了應用層 格式有,jpeg ascll decoic 加密格式等 會話層 session layer 建立 管理 終止會話。在五層模型裡面已經合併...