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

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

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

    • 一級域名:www.qq.com (須要購買),二級或者三級域名須要 本身去分配便可
    • 二級域名:sports.qq.com
    • 三級域名:kbs.sports.qq.com
  • 3.端口號webpack

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

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

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

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

    • 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 請求主體

客戶端若是想給服務器端傳遞內容,能夠放在請求主體中傳遞給服務器,服務器接收到請求能夠在請求主體中獲取到內容app

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

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

  • 一、客戶端均可以經過哪些方式把內容傳遞給服務器呢?

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

    • 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這些代碼均可以優化
安全優化
相關文章
相關標籤/搜索