AJAX有關的請求協議及HTTP報文


URI:統一資源標識符  URI=URL+URN
URL:統一資源定位符
URN:統一資源名稱
上邊的圖片編號對應下邊的編號說明:
  • 1.HTTP(占90%市場)/HTTPS/FTP 傳輸協議(可以理解為快遞小哥,是內容傳輸的媒介,通過傳輸協議客戶端可以把一些信息傳遞給服務器,服務器也可以把內容傳遞給客戶端)

    • HTTP:超文本傳輸協議,客戶端和服務器端除了可以傳輸文本以外,還可以傳輸圖片、音視頻等富媒體資源(二進制文件流/BASE64...)
    • HTTPS:更加安全的HTTP,因為他的傳輸通道經過了SSl加密的(基本上和金錢打交道的網站是HTTPS傳輸協議的)
    • FTP:文本上傳協議/資源文件傳輸協議,經常應用於對服務器資源文件的管理(上傳/下載...)
  • 2.域名

    • 一級域名:www.qq.com (需要購買),二級或者三級域名需要 自己去分配即可
    • 二級域名:sports.qq.com
    • 三級域名:kbs.sports.qq.com
  • 3.端口號

    • HTTP 默認80
    • HTTPS 默認443
    • FTP 默認21

端口號的取值范圍0~65535之間,端口號被一個項目/程序占用,其他的程序就不能使用這個端口號了

  • 4.請求資源文件的路徑和名稱 /students/index.html 請求的是當前項目students文件夾下的index.html文件 /index.html 請求的是當前項目根目錄下的index.html文件,在不指定請求文件的時候,默認請求的資源文件一般都是/index.html或者/default.html()

  • 5.問號傳參 ?xxx=xxx&xxx=xxx...

    • 1)客戶端可以通過問號傳參的方式,把一些信息傳遞給服務器端
    • 2)在從列表頁面跳轉到詳情頁面的時候,點擊列表頁面中的每一條記錄,都會跳轉到指定的詳情頁面,詳情頁面展示的內容是不一樣的,注意:詳情頁面都是同一個頁面,想要展示不一樣的內容,就需要區分點擊的是哪一條記錄,此時我們就可以通過問號傳參的方式進行 在詳情頁面我們獲取傳遞的參數值,然后根據mid值得不一樣,從服務器端獲取到不同的數據展示即可
  • 6.哈希值(HASH):#video

    • 1)客戶端也可以銅通過這種方式把信息傳遞給服務器(但是一般不用)
    • 2)錨點定位
    • 3)通過HASH值實現頁面的路由切換

HTTP事物

  • REQUEST 請求階段
  • RESPONSE 響應階段

兩個階段都完成這件事才算完成,也就是完成了一個HTTP事物

HTTP報文(發送給服務器的內容和返回給客戶端的內容統稱為報文)
  • 起始行,請求起始行,響應起始行
  • 首部:請求首部、響應首部、通用首部(請求和響應都有的)、自定義首部
  • 主體:請求主體、響應主體

Request Headers(請求頭:客戶端設置,服務器端獲取)

  • GET /getList?_=0.19020438256316052 HTTP/1.1 ->請求起始行
  • Host: 192.168.1.100:81 ->請求首部
  • Connection: keep-alive
  • Cache-Control: max-age=0
  • User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2679.0 Safari/537.36
  • Accept: /
  • Referer: http://192.168.1.100:81/index.html
  • Accept-Encoding: gzip, deflate, sdch
  • Accept-Language: zh-CN,zh;q=0.8

Response Headers(響應頭:服務器端設置,客戶端獲取)

  • HTTP/1.1 200 OK ->響應起始行
  • content-type: application/json;charset=utf-8; ->響應首部
  • Date: Wed, 17 Aug 2016 04:52:30 GMT ->服務器端返回數據的那一瞬間的服務器時間
  • Connection: keep-alive
  • Transfer-Encoding: chunked

Response 響應主體

服務器端返回的內容都可以在響應主體中看到(服務器端返回給客戶端的內容基本上都在響應主體中,當然根據需求也會有一部分在響應頭中返回給客戶端)

Request Payload 請求主體

客戶端如果想給服務器端傳遞內容,可以放在請求主體中傳遞給服務器,服務器接收到請求可以在請求主體中獲取到內容

  • 客戶端也可以通過請求頭把一些信息傳遞給服務器端
  • 客戶端還有一種常用的方式可以把信息傳遞給服務器:通過URL請求時候問號傳遞參數的方式

客戶端 <========> 服務器端

  • 1、客戶端都可以通過哪些方式把內容傳遞給服務器呢?

    • 1)請求URL地址后面的問號傳參(很常用)
    • 2)通過設置請求頭信息,把內容傳遞給服務器 (請求頭:客戶端設置\服務器端獲取)
    • 3)通過請求主體把信息傳遞給服務器 (請求主體:客戶端設置\服務器端獲取)
  • 2、服務器端如何把內容返回給客戶端?

    • 1)通過響應頭把信息返回給客戶端 (響應頭:服務器端設置\客戶端獲取)
    • 2)通過響應主體把信息返回給客戶端 (響應主體:服務器端設置\客戶端獲取)
一個網頁全部展示,需要向服務器發送很多的請求:
  • 首先第一次請求的是HTML頁面,服務器把HTML源代碼返回給客戶端,客戶端瀏覽器進行渲染
  • 在頁面渲染過程中,如果遇到link、script、img、iframe、audio、video等這些標簽,則還需要重新在向服務器發送新的請求

在谷歌瀏覽器控制台的Network選項中可以查看到所有的請求記錄和請求信息

如果想要提高頁面的加載性能(加快打開和加載的時間),我們要減少客戶端的請求信息(減少HTTP請求),至少在剛開始打開頁面的時候,請求次數越少,請求內容越小,可以加快頁面的打開速度:
減少HTTP請求次數 && 減少HTTP請求大小
  • 1)把CSS或者JS進行合並壓縮(webpack/gulp自動化平台),保證當前頁面最多只引入一個CSS和一個JS(偶爾有公共類庫可以多引入一兩個);如果CSS和JS代碼都不是很多的時候,直接采用內嵌式,這種技巧在移動端經常使用;

  • 2)對於靜態資源圖片(按鈕圖標或者背景圖等,固定的圖片)進行CSS Sprite技術;對於動態圖片,我們可以做圖片延遲加載;大圖在保證不失真的情況下,我們可以壓縮或者BASE64;

  • 3)數據的分批異步加載

代碼優化:HTML/CSS/JS這些代碼都可以優化
安全優化


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM