Chapter2 簡單HTTP協(xié)議
- HTTP協(xié)議:::適用于客戶端和服務(wù)器端之間的通信
- 使用HTTP協(xié)議通信的同一條線路上的兩臺計算機蛔屹,必然一臺是客戶端,一臺是服務(wù)器端
1 通過請求青团、響應(yīng)通信
- HTTP協(xié)議:::必須從客戶端開始建立通信,服務(wù)器端在沒有接受到請求之前不會發(fā)送響應(yīng)
-
請求報文
-
響應(yīng)報文
-
2 HTTP是無狀態(tài)的協(xié)議
基于HTTP協(xié)議咖楣,每次有新的請求督笆,都會產(chǎn)生新的響應(yīng)。協(xié)議本身不會保留之前一切的請求或響應(yīng)報文的信息诱贿。
3 請求URI定位資源
- GET(客戶端從服務(wù)器“取”)
訪問已經(jīng)被URI識別的資源娃肿。 指定的資源經(jīng)服務(wù)器解析后返回響應(yīng)內(nèi)容。若請求是文本珠十,保持原樣返回咸作;若是CGI,返回執(zhí)行后的結(jié)果 - POST
傳輸實體的主題(客戶端“給”服務(wù)器) - PUT
傳輸文件
本身沒有驗證機制宵睦,一般不使用這個方法记罚。若配合web的驗證機制,或采用REST標準壳嚎,可能開放(representational state transfer) - HEAD
拿報文首部桐智,同GET末早,但無報文主體。用于確認URI有效性及資源更新日期 - DELETE
刪除文件
與PUT相反说庭。也需要配合其他驗證機制 - OPTIONS
查詢針對URI指定資源支持的方法 - TRACE(極少用)
追蹤路徑 - CONNECT
要求使用隧道協(xié)議連接代理
在與代理服務(wù)器通信時建立隧道然磷,用SSL(secure socket layer安全套接字)、TLS(transport layer Security 傳輸層安全)將通信內(nèi)容加密后經(jīng)網(wǎng)絡(luò)隧道傳輸刊驴。
4 持久連接
HTTP協(xié)議 早期姿搜,每個請求都要重新建立一起TCP連接
后來,HTTP1.1 默認使所有連接為“持久連接”(HTTP keep-alive)捆憎,只要任意一方?jīng)]有明確要斷開 連接舅柜,則保持TCP連接狀態(tài)(注意,保持的是TCP連接狀態(tài))
5 管道(pipelining)
可以同時并行發(fā)送多個請求躲惰,而不需要一個接一個等待響應(yīng)
6 基于cookie的狀態(tài)管理
HTTP無狀態(tài)致份,不對之前發(fā)生的請求響應(yīng)狀態(tài)進行管理,無法根據(jù)之前的狀態(tài)進行本次的請求處理础拨。
cookie:::同時在請求氮块、響應(yīng)報文中寫入Cookie信息控制客戶端狀態(tài)。
首先服務(wù)器發(fā)送的響應(yīng)報文中帶有Set-cookie首部字段诡宗,通知客戶端保持Cookie滔蝉,下次客戶端再往該服務(wù)器發(fā)送請求時,自動在請求報文加入Cookie塔沃。
- 拓展
CGI即通用網(wǎng)關(guān)接口(Common Gateway Interface)锰提,是外部應(yīng)用程序(CGI程序)與Web服務(wù)器之間的接口標準,是在CGI程序和Web服務(wù)器之間傳遞信息的規(guī)程芳悲。CGI規(guī)范允許Web服務(wù)器(tomcat)執(zhí)行外部程序立肘,并將它們的輸出發(fā)送給Web瀏覽器,CGI將Web的一組簡單的靜態(tài)超媒體文檔變成一個完整的新的交互式媒體名扛。通俗的講CGI就像是一座橋谅年,把網(wǎng)頁和WEB服務(wù)器中的執(zhí)行程序連接起來,它把HTML接收的指令傳遞給服務(wù)器的執(zhí)行程序肮韧,再把服務(wù)器執(zhí)行程序的結(jié)果返還給HTML頁融蹂。CGI 的跨平臺性能極佳,幾乎可以在任何操作系統(tǒng)上實現(xiàn)弄企。