1. 了解HTTP
????????? HTTP協(xié)議是Hyper Text Transfer Protocol(超文本傳輸協(xié)議)的縮寫,是用于從萬維網(wǎng)(WWW:World Wide Web )服務器傳輸超文本到本地瀏覽器的傳送協(xié)議蜀备。
????????? HTTP是一個基于TCP/IP通信協(xié)議來傳遞數(shù)據(jù)(HTML 文件, 圖片文件, 查詢結(jié)果等)。
2. HTTP通信過程
2.1 建立TCP連接
????????? HTTP 是比 TCP 更高層次的應用層協(xié)議输虱,根據(jù)規(guī)則脂凶,只有低層協(xié)議建立之后才能進行更高層協(xié)議的連接。
2.2 Web瀏覽器向Web服務器發(fā)送請求命令
????????? 一旦建立了 TCP 連接亭病,Web 瀏覽器就會向 Web 服務器發(fā)送請求命令往产。例如:GET/hello/index.jsp HTTP/1.1板乙。瀏覽器發(fā)送其請求命令之后捺弦,還要以頭信息的形式向Web服務器發(fā)送一些別的信息(例:Accept ,User-Agent 等?)立磁,之后瀏覽器發(fā)送了一空白行來通知服務器渠抹,它已經(jīng)結(jié)束了該頭信息的發(fā)送
2.3 Web服務器應答
????????? 應答內(nèi)容包括:協(xié)議的版本號和應答狀態(tài)碼 :HTTP/1.1 200 OK,響應頭信息來記錄服務器自己的數(shù)據(jù)迹蛤,被請求的文檔內(nèi)容。最后發(fā)送一個空白行來表示頭信息的發(fā)送到此為結(jié)束盗飒,接著以Content-Type響應頭信息所描述的格式發(fā)送用戶所請求的實際數(shù)據(jù)。
2.4 Web服務器關閉TCP連接
????????? 一般情況下蝶溶,一旦 Web 服務器向瀏覽器發(fā)送了請求的數(shù)據(jù)宣渗,它就要關閉 TCP 連接,但是如果瀏覽器或者服務器在其頭信息加入了這行代碼:Connection:keep-alive
????????? TCP連接在發(fā)送后將仍然保持打開狀態(tài)田轧,于是鞍恢,瀏覽器可以繼續(xù)通過相同的連接發(fā)送請求。保持連接節(jié)省了為每個請求建立新連接所需的時間帮掉,還節(jié)約了網(wǎng)絡帶寬。