HTTP协议和web工作原理
?
HTTP協議和web工作原理?
http://blog.csdn.net/kjfcpua/archive/2009/12/04/4932597.aspx
本章學完之后能干什么?
要把 知識點學好,那就需要把它相關的周邊知識點了解全面
HTTP協議?是web學習的核心!!!
學東東切忌只學配置,不學原理:只學會框架有什么用,要會自己寫框架!!
web學習直接關系到J2EE的學習
一、HTTP?超文本傳輸協議?人類之所發展得如此快,就是因為有自己的語言?
???????1、所謂超文本:即純文本語言,不依賴于任何特定語言,任何語言都可以操作它(如java、c++)
???????2、傳入:HTTP的應用價值在于傳輸
???????3、HTTP是無狀態協議
????????基于請求/響應模型
????????服務器和客戶端的交互僅限于請求/響應過程,結束之后便斷開,在下一次請求服務器會認為新的客戶端
二、要真正理解web工作原理,就必須徹底了解http協議?
三、HTTP請求信息(瀏覽器信息)?
???????1、請求行:GET/POST(流的組織(請求)方式)?URL(地址+目錄)?版本號
???????2、請求頭:Host:客戶端IP和端口
?????????User-Agent:瀏覽器信息
?????????Accept:客戶端能接收的數據類型
?????????Accept-encoding:是否支持壓縮的流
?????????Accept-charset:客戶端字符編碼集
???????3、空行:分割請求頭和消息體
???????4、消息體:請求的參數
四、HTTP響應信息(服務器信息)?
???????1、狀態行:HTTP版本 ?服務器狀態(比如:404找不到...)?描述信息
???????2、響應頭
????????content-text:服務器發送信息的類型
????????date:發送時間
????????server:服務器類型
???????3、消息體:服務器發送給客戶端的頁面內容
五、模型?
???????客戶端-----通過socket建立連接-----服務器
???????客戶端-----請求----->服務器
???????客戶端<-----響應-----服務器
???????客戶端-----斷開-----服務器
???????下一次連接.......
六、傳統服務器?
???????缺點:無法生成動態頁面
????????于是加入一個輔助應用:通過客戶端提交的參數來選擇服務類型
七、輔助應用?
???????1、在獲取請求之后先執行一段代碼,再返回頁面
???????2、根據客戶端請求參數來調用輔助應用
???????3、類似word文檔,需要注冊(注冊表)
八、對于服務器的缺點的解決方案?
???????1、最早的解決方案:CGI通用網關接口(一種與外部程序通訊的標準)
?????????原理:web服務器調用外部程序,再將返回的結果返回客戶端
?????????CGI的缺點:每次客戶端請求都要在服務器上開啟一個進程,這樣會大大消耗服務器資源
??????????更好的解決方案是:開啟服務器進程一次,就處理所有請求
???????2、java的解決方案(解決CGI的缺點:其實CGI是現在web服務器的鼻祖):servlet+web容器
??????????servlet是一個與平臺無關的java接口
??????????理解servlet,是掌握javaweb編程的核心
??????????sevlet受控于另一個java應用程序,它就是web容器
??????????servlet+web容器:為每個請求開啟一個線程,線程占用進程的一部分
??????????sevlet沒有main方法,說明它要被別的類web容器調用
??????????servlet到web容器需要用xml文件注冊,而xml的解析由web容器封裝
九、web容器對servlet的支持包括:
???????1、通訊支持:解析流,封裝請求/響應對象
???????2、生命周期管理:我們書寫的servlet由容器來調用,也就是sevlet的產生和消亡生命周期
???????3、多線程支持:解決線程同步,開啟關閉等,由容器廠商來做
???????4、JSP支持:翻譯頁面
???????5、處理安全性:處理異常等等,比如:servlet拋出異常,由web容器來處理
???????總結:web容器主要是用于,給處于容器中的應用程序組件(servlet、jsp)提供一個環境,
???????使sevlet和jsp直接和容器中的環境變量交互。
???????這樣我們就可以把注意力放在,用servlet實現業務邏輯上,不必為
???????系統底層服(如線程管理,安全性和網絡通信等)務編寫代碼。
十、web容器的實現?
???????根據sevlet的規范來實現web容器
???????servlet規范之定義了一個容器必須實現的標準功能。那么不同的容器廠商就有了更多的容器實現選擇:
???????Tomcat
???????Jboss
???????WebLogic
???????WebSphere
???????Orecle9i AS
發表于 @ 2009年12月03日 14:26:00?
?
總結
以上是生活随笔為你收集整理的HTTP协议和web工作原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安全中间件与应用服务间如用session
- 下一篇: HTTP Header 详解