Posted on 2009-05-14 14:30
Gavin.lee 閱讀(352)
評論(0) 編輯 收藏 所屬分類:
web 積累(前端 + 后臺)
這邊文章還是以前寫的,最近又看到了,呵呵,刪掉也可惜了,貼在這里就當(dāng)紀(jì)念吧。
HTTP通信機制是在一次完整的HTTP通信過程中,Web瀏覽器與Web服務(wù)器之間將完成下列7個步驟:
(1) 建立TCP連接
在HTTP工作開始之前,Web瀏覽器首先要通過網(wǎng)絡(luò)與Web服務(wù)器建立連接,該連接是通過TCP來完成的,該協(xié)議與IP協(xié)議共同構(gòu)建Internet,即著名的TCP/IP協(xié)議族,因此Internet又被稱作是TCP/IP網(wǎng)絡(luò)。HTTP是比TCP更高層次的應(yīng)用層協(xié)議,根據(jù)規(guī)則,只有低層協(xié)議建立之后才能,才能進行更層協(xié)議的連接,因此,首先要建立TCP連接,一般TCP連接的端口號是80
-
(2) Web瀏覽器向Web服務(wù)器發(fā)送請求命令
一旦建立了TCP連接,Web瀏覽器就會向Web服務(wù)器發(fā)送請求命令
例如:GET/sample/hello.jsp HTTP/1.1
-
(3) Web瀏覽器發(fā)送請求頭信息
瀏覽器發(fā)送其請求命令之后,還要以頭信息的形式向Web服務(wù)器發(fā)送一些別的信息,之后瀏覽器發(fā)送了一空白行來通知服務(wù)器,它已經(jīng)結(jié)束了該頭信息的發(fā)送。
-
(4) Web服務(wù)器應(yīng)答
客戶機向服務(wù)器發(fā)出請求后,服務(wù)器會客戶機回送應(yīng)答,
HTTP/1.1 200 OK
應(yīng)答的第一部分是協(xié)議的版本號和應(yīng)答狀態(tài)碼
-
(5) Web服務(wù)器發(fā)送應(yīng)答頭信息
正如客戶端會隨同請求發(fā)送關(guān)于自身的信息一樣,服務(wù)器也會隨同應(yīng)答向用戶發(fā)送關(guān)于它自己的數(shù)據(jù)及被請求的文檔。
-
(6) Web服務(wù)器向瀏覽器發(fā)送數(shù)據(jù)
Web服務(wù)器向瀏覽器發(fā)送頭信息后,它會發(fā)送一個空白行來表示頭信息的發(fā)送到此為結(jié)束,接著,它就以Content-Type應(yīng)答頭信息所描述的格式發(fā)送用戶所請求的實際數(shù)據(jù)
-
(7) Web服務(wù)器關(guān)閉TCP連接
一般情況下,一旦Web服務(wù)器向瀏覽器發(fā)送了請求數(shù)據(jù),它就要關(guān)閉TCP連接,然后如果瀏覽器或者服務(wù)器在其頭信息加入了這行代碼
Connection:keep-alive
TCP連接在發(fā)送后將仍然保持打開狀態(tài),于是,瀏覽器可以繼續(xù)通過相同的連接發(fā)送請求。保持連接節(jié)省了為每個請求建立新連接所需的時間,還節(jié)約了網(wǎng)絡(luò)帶寬。