HTTP
- URI 和 URL的關(guān)系:URI包括了URL。
- html/login.html,這是個URI,它 不能在網(wǎng)唯一標(biāo)識。
- http://localhost:8080/hello/html/login.html 這個URI 可以在全網(wǎng)唯一標(biāo)識贺喝,稱為 URL。
- HTTP(Hyper Text Transfer Protocol)宗兼,超文本傳輸協(xié)議
- 是互聯(lián)網(wǎng)中應(yīng)用最廣泛的應(yīng)用層協(xié)議之一
- 設(shè)計HTTP最初的目的是:提供一種發(fā)布和接收HTML頁面的方法躏鱼,由URI來標(biāo)識具體的資源
- 后面用HTTP來傳遞的數(shù)據(jù)格式不僅僅是HTML,應(yīng)用非常廣泛
- HTML(Hyper Text Markup Language) 超文本標(biāo)記語言 用以編寫網(wǎng)頁
HTTP版本
- 1991年殷绍,HTTP/0.9
- 只支持GET請求方法獲取文本數(shù)據(jù)(比如HTML文檔)染苛,且不支持請求頭、響應(yīng)頭等主到,無法向服務(wù)器傳遞太多信息
- 1996年茶行,HTTP/1.0
- 支持POST、HEAD等請求方法登钥,支持請求頭畔师、響應(yīng)頭等,支持更多種數(shù)據(jù)類型(不再局限于文本數(shù)據(jù))
- 瀏覽器的每次請求都需要與服務(wù)器建立一個TCP連接牧牢,請求處理完成后立即斷開TCP連接
- 1997年看锉,HTTP/1.1(最經(jīng)典、使用最廣泛的版本)
- 支持PUT结执、DELETE等請求方法
- 采用 持久連接(Connection: keep-alive)度陆,多個請求可以共用同一個TCP連接
- 2015年,HTTP/2.0
- 2018年献幔,HTTP/3.0
HTTP的標(biāo)準(zhǔn)
- 由萬維網(wǎng)協(xié)會(W3C)、互聯(lián)網(wǎng)工程任務(wù)組(IETF)協(xié)調(diào)制定趾诗,最終發(fā)布了一系列的RFC
- RFC(Request For Comments蜡感,可以譯為:請求意見稿)
- HTTP/1.1最早是在1997年的 RFC 2068 中記錄的
該規(guī)范在1999年的 RFC 2616 中已作廢
2014年又由 RFC 7230 系列的RFC取代 - HTTP/2標(biāo)準(zhǔn)于2015年5月以 RFC 7540 正式發(fā)表蹬蚁,取代HTTP/1.1成為HTTP的實現(xiàn)標(biāo)準(zhǔn)
HTTP報文格式(簡)
請求方法
- GET、HEAD郑兴、POST犀斋、PUT、DELETE情连、CONNECT叽粹、OPTIONS、TRACE
- GET 常用于讀取的操作却舀,請求參數(shù)直接拼接在URL的后面(瀏覽器對URL是有長度限制的)
- POST 常用于添加虫几、修改、刪除的操作挽拔,請求參數(shù)可以放到請求體中(沒有大小限制)
-
HEAD 請求得到與GET請求相同的響應(yīng)辆脸,但沒有響應(yīng)體
使用場景:在下載一個大文件前,先獲取其大小(HEAD)螃诅,再決定是否要下載(GET)啡氢。以此可以節(jié)約帶寬資源 - OPTIONS 用于獲取目的資源所支持的通信選項,比如 服務(wù)器支持的請求方法
- PUT 用于對已存在的資源進行整體覆蓋
- PATCH 用于對資源進行部分修改(資源不存在术裸,會創(chuàng)建新的資源)
- DELETE 用于刪除指定的資源
- TRACE 請求服務(wù)器回顯其收到的請求信息倘是,主要用于HTTP請求的測試或診斷
- CONNECT 可以開啟一個客戶端與所請求資源之間的雙向溝通的通道,它可以用來創(chuàng)建隧道(tunnel)
請求頭字段
-
注意:q 值越大袭艺,表示優(yōu)先級越高搀崭,如果不指定q值,默認是1.0(1.0是最大值)
響應(yīng)頭字段
代理服務(wù)器
- 本身不生產(chǎn)內(nèi)容
- 處于中間位置轉(zhuǎn)發(fā)上下游的請求和響應(yīng)
面向下游的客戶端:它是服務(wù)器
面向上游的服務(wù)器:它是客戶端
正向代理匹表、反向代理
- 正向代理:代理的對象是 客戶端
-
反向代理:代理的對象是 服務(wù)器
正向代理的作用
- 隱藏客戶端身份
- 繞過防火墻(突破訪問限制)
- Internet訪問控制
- 數(shù)據(jù)過濾
-
…
反向代理的作用
- 隱藏服務(wù)器身份
- 安全防護
-
負載均衡
CDN (內(nèi)容分發(fā)網(wǎng)絡(luò))
利用最靠近每位用戶的服務(wù)器
-
更快更可靠地將音樂门坷、圖片、視頻等資源文件(一般是靜態(tài)資源)傳遞給用戶
CDN運營商在全國袍镀、乃至全球的各個大樞紐城市都建立了機房
部署了大量擁有高存儲高帶寬的節(jié)點默蚌,構(gòu)建了一個跨運營商、跨地域的專用網(wǎng)絡(luò)
-
內(nèi)容所有者向CDN運營商支付費用苇羡,CDN將其內(nèi)容交付給最終用戶
-
CDN使用前
-
CDN使用后