Http基礎協議

瀏覽器請求方法

  • http1.0定義了三種:

    • GET: 向服務器獲取資源,比如常見的查詢請求
    • POST: 向服務器提交數據而發送的請求
    • Head: 和get類似,返回的響應中沒有具體的內容,用於獲取報頭
  • http1.1定義了六種

    • PUT:一般是用於更新請求,比如更新個人信息、商品信息全量更新
    • PATCH:PUT 方法的補充,更新指定資源的部分數據
    • DELETE:用於刪除指定的資源
    • OPTIONS: 獲取服務器支持的HTTP請求方法,服務器性能、跨域檢查等
    • CONNECT: 方法的作用就是把服務器作爲跳板,讓服務器代替用戶去訪問其它網頁,之後把數據原原本本的返回給用戶,網頁開發基本不用這個方法,如果是http代理就會使用這個,讓服務器代理用戶去訪問其他網頁,類似中介
    • TRACE:回顯服務器收到的請求,主要用於測試或診斷

Http響應碼

  • 瀏覽器向服務器請求時,服務端響應的消息頭裏面有狀態碼,表示請求結果的狀態
  • 分類

    • 1XX: 收到請求,需要請求者繼續執行操作,比較少用

    • 2XX: 請求成功,常用的 200

    • 3XX: 重定向,瀏覽器在拿到服務器返回的這個狀態碼後會自動跳轉到一個新的URL地址,這個地址可以從響應的Location首部中獲取;

      • 好處:網站改版、域名遷移等,多個域名指向同個主站導流

      • 必須記住

        • 301:永久性跳轉,比如域名過期,換個域名
        • 302:臨時性跳轉
    • 4XX: 客戶端出錯,請求包含語法錯誤或者無法完成請求

      • 必須記住

        • 400: 請求出錯,比如語法協議
        • 403: 沒權限訪問
        • 404: 找不到這個路徑對應的接口或者文件
        • 405: 不允許此方法進行提交,Method not allowed,比如接口一定要POST方式,而你是用了GET
    • 5XX: 服務端出錯,服務器在處理請求的過程中發生了錯誤

      • 必須記住

        • 500: 服務器內部報錯了,完成不了這次請求
        • 503: 服務器宕機

口訣

  Http狀態碼4XX前端錯誤,5XX後端錯誤喲~

http常見請求頭

  • http請求分爲三部分:請求行,請求頭, 請求體

  • 請求頭

    • 報文頭包含若干個屬性 格式爲“屬性名:屬性值”,
    • 服務端據此獲取客戶端的基本信息
  • 常見的請求頭

    • Accept: 覽器支持的 MIME 媒體類型, 比如 text/html,application/json,image/webp,/ 等

    • Accept-Encoding: 瀏覽器發給服務器,聲明瀏覽器支持的編碼類型,gzip, deflate

    • Accept-Language: 客戶端接受的語言格式,比如 zh-CN

    • Connection: keep-alive , 開啓HTTP持久連接

    • Host:服務器的域名

    • Origin:告訴服務器請求從哪裏發起的,僅包括協議和域名 CORS跨域請求中可以看到response有對應的header,Access-Control-Allow-Origin

    • Referer:告訴服務器請求的原始資源的URI,其用於所有類型的請求,並且包括:協議+域名+查詢參數; 很多搶購服務會用這個做限制,必須通過某個入來進來纔有效

    • User-Agent: 服務器通過這個請求頭判斷用戶的軟件的應用類型、操作系統、軟件開發商以及版本號、瀏覽器內核信息等; 風控系統、反作弊系統、反爬蟲系統等基本會採集這類信息做參考

    • Cookie: 表示服務端給客戶端傳的http請求狀態,也是多個key=value形式組合,比如登錄後的令牌等

    • Content-Type: HTTP請求提交的內容類型,post提交時才需要設置,比如文件上傳,表單提交、json等

      • form表單提交:application/x-www-form-urlencoded
      • json方式提交:application/json

Http響應頭

  • 響應頭

    • 報文頭包含若干個屬性 格式爲“屬性名:屬性值”
  • 常見的響應頭

    • Allow: 服務器支持哪些請求方法
    • Content-Length: 響應體的字節長度
    • Content-Type: 響應體的MIME類型
    • Content-Encoding: 設置數據使用的編碼類型
    • Date: 設置消息發送的日期和時間
    • Expires: 設置響應體的過期時間,一個GMT時間,表示該緩存的有效時間
    • cache-control: Expires的作用一致,都是指明當前資源的有效期, 控制瀏覽器是否直接從瀏覽器緩存取數據還是重新發請求到服務器取數據,優先級高於Expires,控制粒度更細,如max-age=240,即4分鐘
    • Location:表示客戶應當到哪裏去獲取資源,一般同時設置狀態代碼爲3xx
    • Server: 服務器名稱
    • Transfer-Encoding:chunked 表示輸出的內容長度不能確定,靜態網頁一般沒,基本出現在動態網頁裏面
    • Access-Control-Allow-Origin: 定哪些站點可以參與跨站資源共享

Http裏面的content-type

  • Content-type: 用來指定不同格式的請求響應信息,俗稱 MIME媒體類型

  • 常見的取值

    • text/html :HTML格式
    • text/plain :純文本格式
    • text/xml : XML格式
    • image/gif :gif圖片格式
    • image/jpeg :jpg圖片格式
    • image/png:png圖片格式
    • application/json:JSON數據格式
    • application/pdf :pdf格式
    • application/octet-stream :二進制流數據,一般是文件下載
    • application/x-www-form-urlencoded:form表單默認的提交數據的格式,會編碼成key=value格式
    • multipart/form-data: 表單中需要上傳文件的文件格式類型

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章