摘要:瀏覽器負責發(fā)送請求,并進一步解析返回的信息,以向用戶提供明確的響應(yīng)。所以是依賴于面向連接進行消息傳遞,但是連接不是必須的。客戶端和服務(wù)器連接要保存一段時間支持代理連接還提供了與身份認證狀態(tài)管理和緩存等機制相關(guān)的請求頭和響應(yīng)頭。
一、概述
1、什么是HTTP
HTTP是一種可以獲取HTML這樣的網(wǎng)絡(luò)資源的一種通訊協(xié)議protocol。是在WEB上進行數(shù)據(jù)交換的基礎(chǔ),是一種客戶端--服務(wù)器協(xié)議。HTTP是一種可擴展的應(yīng)用層協(xié)議,通過TCP或者TLS-加密的TCP連接來發(fā)送。
2、基于HTTP的組件系統(tǒng)
HTTP是一種client-server協(xié)議:請求通過一個實體被發(fā)出,實體也就是用戶代理(大部分指的是瀏覽器,也可以是一個爬取網(wǎng)頁生成維護機器索引的機器爬蟲)
如圖:client--->proxy---->protoxy--->server
client<---proxy<---protoxy<---server
在用戶發(fā)起服務(wù)器請求時,會被服務(wù)器處理,并返回一個消息---response
實際上。在一個瀏覽器和處理請求的服務(wù)器間,還有路由器、調(diào)制解調(diào)器。由于web開發(fā)基于web的層次設(shè)計。那些在網(wǎng)絡(luò)層和傳輸層的細節(jié)都被隱藏了。HTTP位于最上冊的應(yīng)用層。雖然底層很重要,但對前端來說,底層的大多數(shù)和HTTP無關(guān)
3、客戶端:
user-agent 就是能夠為用戶發(fā)起的為的工具。瀏覽器總是作為發(fā)起一個請求的實體,永遠不是服務(wù)器。要展現(xiàn)一個網(wǎng)頁,瀏覽器首先發(fā)送一個請求來獲取頁面的HTML文檔,再解析文檔中的資源信息發(fā)送其他請求,獲取可執(zhí)行腳本或CSS樣式來進行頁面布局渲染,以及一些其它頁面資源(如圖片和視頻等)。然后,瀏覽器將這些資源整合到一起,展現(xiàn)出一個完整的文檔,也就是網(wǎng)頁。瀏覽器執(zhí)行的腳本可以在之后的階段獲取更多資源,并相應(yīng)地更新網(wǎng)頁。
瀏覽器負責發(fā)送HTTP請求,并進一步解析HTTP返回的信息,以向用戶提供明確的響應(yīng)。
4、Web服務(wù)端
在客戶端通信過程的另一端,是有Web Server來服務(wù)并提供客戶端所請求的文檔。
5、代理(Proxies)
在瀏覽器和服務(wù)器之間,很多設(shè)備轉(zhuǎn)發(fā)了HTTP消息,由于Web棧層次結(jié)構(gòu)的原因,T它們大多出現(xiàn)在傳輸層、網(wǎng)絡(luò)層和物理層上,對于HTTP應(yīng)用層而言就是透明的,還有一部分是表現(xiàn)在應(yīng)用層上的,被稱為代理(Proxies).代理既可以表現(xiàn)的透明,也可以表現(xiàn)的不透明(“改變請求”不會通過他們)。
代理的作用:緩存、過濾、家長控制、負載均衡、認證、日志記錄
二、HTTP的基本性質(zhì)
HTTP是簡單的、可擴展的、無狀態(tài)可會話的、連接。
注解:在互聯(lián)網(wǎng)中,最常用的傳輸層協(xié)議:TCP是可靠的、UDP不是。所以HTTP是依賴于面向連接TCP進行消息傳遞,但是連接不是必須的。
HTTP/1.0為每個請求/響應(yīng)都打開一個TCP連接,這就導(dǎo)致了2個缺點:打開一個TCP連接需要多次往返消息傳遞,因此速度慢,如果多個消息周期性發(fā)送時,這樣就會變得更加高效:暖連接比冷連接更高效。
HTTP/1.1引入了流水線和持久連接:底層的TCP連接可以通過Connection頭部來被控制。HTTP/2.0則是通過在一個連接復(fù)用消息的方式來讓這個鏈接始終為暖連接
三、HTTP特性
緩存:服務(wù)器端告訴代理和客戶端哪些文檔需要緩存,緩存多久,而客戶端也可以命令中間的緩存代理來忽略存儲的文檔。
開放同源限制:為防止網(wǎng)絡(luò)竊聽和其他隱私的泄露,瀏覽器強制對Web網(wǎng)站做了分割限制,只有來源相同的網(wǎng)頁才可以獲取網(wǎng)站的全部信息
認證:基本的認證可以直接通過HTTP提供,使用Authenticate相似的頭部即可,或使用HTTP Cookies來設(shè)置指定的對話
代理和隧道:通常情況下,服務(wù)器/客戶端是處于內(nèi)網(wǎng)的,對外網(wǎng)是隱藏自己真實的IP的,因此HTTP請求就是要通過代理越過這個網(wǎng)絡(luò)屏障,但是并非所有的代理都是HTTP代理.
會話:使用HTTP Cookies允許你用一個服務(wù)器端的狀態(tài)發(fā)起請求,就創(chuàng)建了會話。
三、HTTP流---客戶端和服務(wù)器交互過程
打開一個TCP連接---->發(fā)送一個HTTP報文--->讀取服務(wù)器端返回的報文信息--->關(guān)閉連接或為后續(xù)的請求重用連接 HTTP流水線已被HTTP/2的幀替代
四、HTTP報文
1、有兩種HTTP報文類型:請求與回應(yīng)
請求:
回應(yīng):
HTTP/1.0與HTTP/1.1的區(qū)別
1、支持虛擬主機技術(shù),在一個WEB服務(wù)器上同時并存多個域名網(wǎng)站;
2、支持持久化連接:三次握手、四次揮手。客戶端和服務(wù)器連接要保存一段時間Conection:Keep-alive
3、支持代理連接
4、HTTP 1.1還提供了與身份認證、狀態(tài)管理和Cache緩存等機制相關(guān)的請求頭和響應(yīng)頭。
用戶在瀏覽器中輸入www.baidu.com直到看到頁面之間發(fā)生了什么?
①操作系統(tǒng)訪問DNS服務(wù)器,把域名轉(zhuǎn)換為IP地址
②瀏覽器發(fā)起HTTP請求
③找到指定資源,可能訪問數(shù)據(jù)庫,構(gòu)建并返回HTTP響應(yīng)消息
④瀏覽器接收并解析消息
⑤瀏覽器緩存接收響應(yīng)的內(nèi)容,解析并渲染相應(yīng)內(nèi)容
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/97100.html
摘要:瀏覽器負責發(fā)送請求,并進一步解析返回的信息,以向用戶提供明確的響應(yīng)。所以是依賴于面向連接進行消息傳遞,但是連接不是必須的。客戶端和服務(wù)器連接要保存一段時間支持代理連接還提供了與身份認證狀態(tài)管理和緩存等機制相關(guān)的請求頭和響應(yīng)頭。 一、概述 1、什么是HTTP HTTP是一種可以獲取HTML這樣的網(wǎng)絡(luò)資源的一種通訊協(xié)議protocol。是在WEB上進行數(shù)據(jù)交換的基礎(chǔ),是一種客戶端--服務(wù)器...
摘要:瀏覽器負責發(fā)送請求,并進一步解析返回的信息,以向用戶提供明確的響應(yīng)。所以是依賴于面向連接進行消息傳遞,但是連接不是必須的。客戶端和服務(wù)器連接要保存一段時間支持代理連接還提供了與身份認證狀態(tài)管理和緩存等機制相關(guān)的請求頭和響應(yīng)頭。 一、概述 1、什么是HTTP HTTP是一種可以獲取HTML這樣的網(wǎng)絡(luò)資源的一種通訊協(xié)議protocol。是在WEB上進行數(shù)據(jù)交換的基礎(chǔ),是一種客戶端--服務(wù)器...
近來正在回顧PHP的文件上傳。在此做個記錄。 文件上傳作業(yè) table{border:0;cellspacing: 0;cellpadding:0} table tr td{text-align: center;height: 25px;line-height: 25px;width: 200px; border: 1px sol...
閱讀 3525·2023-04-26 00:16
閱讀 1361·2021-11-25 09:43
閱讀 3824·2021-11-23 09:51
閱讀 2964·2021-09-24 09:55
閱讀 713·2021-09-22 15:45
閱讀 1387·2021-07-30 15:30
閱讀 3064·2019-08-30 14:04
閱讀 2237·2019-08-26 13:46