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)數據的分批異步加載