軟件體系結構
html
一、常見軟件系統體系結構B/S C/S
1.1 C/S
C/S結構即客戶端/服務器(Client/Server),例如QQ;
須要編寫服務器端程序,以及客戶端程序,例如咱們安裝的就是QQ的客戶端程序;
缺點:軟件更新時須要同時更新客戶端和服務器端兩端,比較麻煩;
優勢:安全性比較好。
1.2 B/S:
B/S結構即瀏覽器/服務器(Browser/Server);
優勢:只須要編寫服務器端程序;
缺點:安全性較差。
二、Web資源
2.1 Web資源介紹
html:靜態資源;
JSP/Servlet:動態資源。
除了JavaWeb程序,還有其餘Web程序,例如:ASP、PHP等
2.2 靜態資源和靜態資源區別[圖解]
![](http://static.javashuo.com/static/loading.gif)
2.3 訪問Web資源
打開瀏覽器,輸入URL:
協議名://域名:端口/路徑,例如:http://www.baidu.com:8080/index.html
三、Web服務器
Web服務器的做用是接收客戶端的請求,給客戶端做出響應。
對於JavaWeb程序而已,還須要有JSP/Servlet容器,JSP/Servlet容器的基本功能是把動態資源轉換成靜態資源,固然JSP/Servlet容器不僅這些功能。
咱們須要使用的是Web服務器和JSP/Servlet容器,一般這二者會集於一身。下面是對JavaWeb服務器:
Tomcat(Apache):當前應用最廣的JavaWeb服務器;
JBoss(Redhat紅帽):支持JavaEE,應用比較廣;EJB容器
GlassFish(Orcale):Oracle開發JavaWeb服務器,應用不是很廣;
Resin(Caucho):支持JavaEE,應用愈來愈廣;
Weblogic(Orcale):要錢的!支持JavaEE,適合大型項目;
Websphere(IBM):要錢的!支持JavaEE,適合大型項目;
四、Tomcat[點擊點跳轉]
web
五、WEB應用
靜態網站:
在webapps目錄下建立一個目錄(命名必須不包含中文和空格),這個目錄稱之爲項目目錄;
在項目目錄下建立一個html文件;
動態網站:
在webpass目錄下建立一個項目目錄;
WEB-INF目錄;
在WEB-INF目錄下建立web.xml文件
建立靜態或動態頁面瀏覽器
六、MyEclipse建立JavaWeb應用[點擊點跳轉]
7.HTTP協議(重點)
協議:協議的甲乙雙方,就是客戶端(瀏覽器)和服務器!理解成雙方通訊的格式!
做用:瀏覽器客戶端和服務器交互規範和協議
1. HttpWatch
HttpWatch是專門爲IE瀏覽器提供的,用來查看HTTP請求和響應內容的工具。而FireFox上須要安裝FireBug軟件。若是你使用的是Chrome,那麼就不用自行安裝什麼工具了,由於它自身就有查看請求和響應內容的功能!HttpWatch和FireBug這些工具對瀏覽器而言不是必須的,但對咱們開發者是頗有幫助的,經過查看HTTP請求響應內容,可使咱們更好的學習HTTP協議。
2. HTTP概述
HTTP(hypertext transport protocol),即超文本傳輸協議。這個協議詳細規定了瀏覽器和萬維網服務器之間互相通訊的規則。
HTTP就是一個通訊規則,通訊規則規定了客戶端發送給服務器的內容格式,也規定了服務器發送給客戶端的內容格式。其實咱們要學習的就是這個兩個格式!客戶端發送給服務器的格式叫「請求協議」;服務器發送給客戶端的格式叫「響應協議」。
Http:工做原理:
- 客戶端與服務器端建立鏈接
- 客戶端向服務器發送請求
- 服務器將數據響應給客戶端
- 鏈接斷開
http:版本和特色
http1.0 版本 ,不支持持續鏈接 (一次請求和響應 ,鏈接斷開一次)
http1.1 版本 能夠保持持續鏈接
http2.0版本
特色:http是無狀態協議:http不會保存用戶名等信息
http基本結構主要分兩個部分:請求和響應部分
3. 請求協議格式:請求首行;請求頭信息;空行;請求體。
瀏覽器發送給服務器的內容就這個格式的,若是不是這個格式服務器將沒法解析!在HTTP協議中,請求有不少請求方法,其中最爲經常使用的就是GET(默認)和POST。不一樣的請求方法之間的區別。
4.響應協議格式:響應首行;響應頭信息;空行;響應體。5.響應碼 響應頭對瀏覽器來講很重要,它說明了響應的真正含義。例如200表示響應成功了,302表示重定向,這說明瀏覽器須要再發一個新的請求。200:請求成功,瀏覽器會把響應體內容(一般是html)顯示在瀏覽器中;404:請求的資源沒有找到,說明客戶端錯誤的請求了不存在的資源;500:請求資源找到了,但服務器內部出現了錯誤;302:重定向,當響應碼爲302時,表示服務器要求瀏覽器從新再發一個請求,服務器會發送一個響應頭Location,它指定了新請求的URL地址;304:當用戶第一次請求index.html時,服務器會添加一個名爲Last-Modified響應頭,這個頭說明了index.html的最後修改時間,瀏覽器會把index.html內容,以及最後響應時間緩存下來。當用戶第二次請求index.html時,在請求中包含一個名爲If-Modified-Since請求頭,它的值就是第一次請求時服務器經過Last-Modified響應頭髮送給瀏覽器的值,即index.html最後的修改時間,If-Modified-Since請求頭就是在告訴服務器,我這裏瀏覽器緩存的index.html最後修改時間是這個,您看看如今的index.html最後修改時間是否是這個,若是仍是,那麼您就不用再響應這個index.html內容了,我會把緩存的內容直接顯示出來。而服務器端會獲取If-Modified-Since值,與index.html的當前最後修改時間比對,若是相同,服務器會發響應碼304,表示index.html與瀏覽器上次緩存的相同,無需再次發送,瀏覽器能夠顯示本身的緩存頁面,若是比對不一樣,那麼說明index.html已經作了修改,服務器會響應200。get請求和post請求的區別參數:get是url後邊;post 能夠寫在url後邊 ,經過請求體發送數據安全性:get不安全;post相對安全傳輸的數據量:get傳輸的數據量有限;post請求理論上無限大