HTTP(Hyper Text Transfer Protocol),超文本傳輸協(xié)議,是一種建立在TCP上的無狀態(tài)連接,整個工作流程基本是由客戶端(client)向服務端(server)發(fā)送一個http請求,向server端請求需要的資源,到server端收到客戶端的請求后,根據(jù)請求做出相應的動作訪問服務器資源,然后通過HTTP相應將結果返回給client端。
創(chuàng)新互聯(lián)公司主要從事做網(wǎng)站、成都網(wǎng)站建設、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務興安,10年網(wǎng)站建設經驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:135182197920.9版本:僅支持html頁面(已被淘汰);
1.0版本:
(1)引入MIME(多用途互聯(lián)網(wǎng)郵件擴展)機制,引入這個機制之后就可以發(fā)送多媒體信息;
(2)引入keep-alive機制,支持持久鏈接的功能(但這個keep-alive原理是在首部添加了某個字段而形成,并非原生就支持此功能);
(3)引入支持緩存頁面功能;
1.1版本:1.0版本的升級,支持更多的請求連接方式、優(yōu)化可持久鏈接、優(yōu)化了頁面緩存;
2.0版本:提供了http語義優(yōu)化的傳輸,增加了一個spdy技術。Spdy技術:google引入的一個技術,能夠加速http數(shù)據(jù)交互,尤其是使用了ssl加速機制;被人們普遍稱為https協(xié)議;
靜態(tài)頁面:
常見的后綴名是:
文本:html、htm、txt、css、doc;
圖片:gif、jpg、png;
視頻:mp4、flv;
請求過程
socket是在應用層和傳輸層之間的一個抽象層,socket本質是編程接口(API),它把TCP/IP層復雜的操作抽象為幾個簡單的接口供應用層調用以實現(xiàn)進程在網(wǎng)絡中通信。TCP/IP只是一個協(xié)議棧,必須要具體實現(xiàn),同時還要提供對外的操作接口(API),這就是Socket接口。通過Socket,我們才能使用TCP/IP協(xié)議。
①Web客戶端向內核注冊socket;
②客戶端通過瀏覽器,向Web服務器發(fā)送數(shù)據(jù)請求;
③Web服務端收到客戶端的請求信息;
④如果客戶端請求的資源在服務器本地,http服務會向系統(tǒng)內核申請調用;
⑤內核調用本地磁盤里的數(shù)據(jù),并經數(shù)據(jù)發(fā)送給服務器;
⑥http將用戶請求的資源通過響應報文,最終響應客戶端;
特點:由開發(fā)人員預先編寫好,存放在當前文件系統(tǒng)中,響應速度快、頁面維護比較麻煩,數(shù)據(jù)交互性差、容易被搜索引擎收錄
動態(tài)頁面:
常見的后綴名有:php、jsp、asp、net
與靜態(tài)頁面不同的就是,如果用戶請求的是動態(tài)內容,那么此時http服務器就會調用后端的解釋器,由后端的解釋器在磁盤中獲取數(shù)據(jù),通過解釋器運行生成html格式的文件。然后構建成響應報文,最終響應客戶端的請求。
特點:web服務器自身不支持動態(tài)頁面的處理,需要有專門的解釋器來進行完成,頁面數(shù)據(jù)多變,頁面維護比較簡單,響應速度慢、數(shù)據(jù)有交互性,頁面訪問時包含特殊符號?、%、&(特殊符號),不能被搜索引擎收錄;
偽靜態(tài)頁面:將動態(tài)頁面?zhèn)窝b成靜態(tài)頁面,被搜索引擎收錄,消耗硬件資源;
請求報文格式:
請求行:用來標識客戶端請求的資源時,使用的請求方法、請求資源、請求的協(xié)議是什么,它們直接使用“空格”進行分隔;
請求首部:作用是通過客戶端請求的相關內容告知服務器端(首部可以不止一個)
空白行:請求首部之后會有一個空白行,通過發(fā)送回車字符和換行字符,用于通知服務端以下內容將不會再出現(xiàn)請求首部的信息;
請求實體:請求的頁面的內容具體是什么
Response Message(響應報文):服務器端→客戶端
服務器響應客戶端的請求;
響應報文:
起始行:響應時采用的http協(xié)議的版本、響應的狀態(tài)碼、狀態(tài)碼的簡略信息;
響應首部:類似于請求報文,起始行后面一般有若干個頭部字段。每個頭部字段都包含一個名字和一個值,兩者用冒號進行分隔,可以包含一個或多個。
空白行:最后一個響應首部信息之后就是一個空行,通過發(fā)送回車符和換行符,通知客戶端空行下無首部信息;
響應實體:真正訪問頁面包含的內容;
常見的HTTP請求方式:GET、POST、HEAD
HTTP協(xié)議定義Web客戶端如何從Web服務器請求Web頁面,以及服務器如何把Web頁面?zhèn)魉徒o客戶端。HTTP協(xié)議采用了請求/響應模型??蛻舳讼蚍掌靼l(fā)送一個請求報文,請求報文包含請求的方法、URL、協(xié)議版本、請求頭部和請求數(shù)據(jù)。服務器以一個狀態(tài)行作為響應,響應的內容包括協(xié)議的版本、成功或者錯誤代碼、服務器信息、響應頭部和響應數(shù)據(jù)
客戶端連接到Web服務器->發(fā)送Http請求->服務器接受請求并返回HTTP響應->釋放連接TCP連接->客戶端瀏覽器解析HTML內容
1、客戶端連接到Web服務器
一個HTTP客戶端,通常是瀏覽器,與Web服務器的HTTP端口(默認為80)建立一個TCP套接字連接。例如,http://www.baidu.com
2、發(fā)送HTTP請求
通過TCP套接字,客戶端向Web服務器發(fā)送一個文本的請求報文,一個請求報文由請求行、請求頭部、空行和請求數(shù)據(jù)4部分組成。
3、服務器接受請求并返回HTTP響應
Web服務器解析請求,定位請求資源。服務器將資源復本寫到TCP套接字,由客戶端讀取。一個響應由狀態(tài)行、響應頭部、空行和響應數(shù)據(jù)4部分組成。
4、釋放連接TCP連接
若connection 模式為close,則服務器主動關閉TCP連接,客戶端被動關閉連接,釋放TCP連接;若connection 模式為keepalive,則該連接會保持一段時間,在該時間內可以繼續(xù)接收請求;
5、客戶端瀏覽器解析HTML內容
客戶端瀏覽器首先解析狀態(tài)行,查看表明請求是否成功的狀態(tài)代碼。然后解析每一個響應頭,響應頭告知以下為若干字節(jié)的HTML文檔和文檔的字符集??蛻舳藶g覽器讀取響應數(shù)據(jù)HTML,根據(jù)HTML的語法對其進行格式化,并在瀏覽器窗口中顯示。
URI
URI一般由三部組成:
①訪問資源的命名機制
②存放資源的主機名
③資源自身的名稱,由路徑表示,著重強調于資源。
URL
采用URL可以用一種統(tǒng)一的格式來描述各種信息資源,包括文件、服務器的地址和目錄等。URL一般由三部組成:
①協(xié)議(或稱為服務方式)
②存有該資源的主機IP地址(有時也包括端口號)
③主機資源的具體地址。如目錄和文件名等
URN,uniform resource name,統(tǒng)一資源命名,是通過名字來標識資源,
URI是以一種抽象的,高層次概念定義統(tǒng)一資源標識,而URL和URN則是具體的資源標識的方式。URL和URN都是一種URI?;\統(tǒng)地說,每個 URL 都是 URI,但不一定每個 URI 都是 URL。這是因為 URI 還包括一個子類,即統(tǒng)一資源名稱 (URN),它命名資源但不指定如何定位資源。上面的 mailto、news 和 isbn URI 都是 URN 的示例。
包含一個HTTP請求,和對應請求的響應就叫做一個http事務,也可以理解http事務就是一個完整的HTTP請求和HTTP響應的過程。
HTTP協(xié)議默認情況下每個事務都會打開和關閉一個新的連接,所以相當耗費時間和帶寬,由于TCP慢啟動特性,所以每條新的連接的性能本身就會有所降低,所以可打開的并行連接的數(shù)量上限是有限的。所以使用持久連接這種模式比默認情況下不使用持久連接的方式會好一點,他的好處表現(xiàn)在其請求和tcp斷開的過程所消耗的時間會被減少
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。