兩種架構介紹
C/S和B/S是當今世界開發模式技術架構的兩大主流技術。C/S是美國Borland公司最早研發,B/S是美國微軟公司研發。目前,這兩項技術以被世界各國所掌握,國內公司以C/S和B/S技術開發出產品也很多。
c/s 客戶端和服務器 b/s 瀏覽器和服務器
兩種架構的比較
bs 優勢 更新比較方便
劣勢 服務器壓力偏大 交互性要差一些
cs 優勢 服務器壓力偏小,交互性要好一些
劣勢 更新不方便
web 網頁網站的意思,學習javaWeb 就是用java寫web
web包含2類資源的
靜態資源(不變的資源)
html js css 圖片 視頻
動態 資源
數據實時變化的資源
在java 可以通過jsp serveet去開發動態網頁
常見的動態網頁開發技術(了解下)
php 用於中小型網站,開發速度比較快的
.net c#
java 用於大型網站 開發速度沒有那么快
ruby
當我們在瀏覽器的的地址輸入來輸入一串網址時 都做了些什么事情
如:http://localhost:8080/
1 瀏覽器 先將域名轉化成ip地址 (這個過程分兩步完成 首先 會在計算機本地的hosts文件中找域名對應 的ip 如果在本地未找到對應的域名 那就到dns 服務器中去找 將對應的域名轉化成ip地址)
2 獲得ip地址后 就能找到網絡中的具體的計算機了
3 根據端口 找到對應計算機的 對應端口中的程序,
常見的服務器
tomcat apache 只支持jsp/servlet規范 免費
weblogic bea 被oracle收購了 收費的 支持全部規范
websphere ibm 收費的 支持全部規范
tomcat服務器目錄結構
bin 執行命令 (開啟服務器 startup.bat 關閉服務器shutdown.bat)
conf 配置文件
logs 日志文件
webapps 我們的web應用
work tomcat工作的時候產生的文件
lib tomcat的一些類庫
tomcat服務器部署遇到的問題
1端口被占用
java.net.BindException: Address already in use: JVM_Bind <null>:8080
如果我們沒有打開tomcat 卻提示端口先用,一般有2個解決方案
1修改我們的tomcat端口
在conf-->server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
2找到占用該端口的程序
netstat -ano 找到pid 去人任務管理器關掉
eclipse 集成tomcat
1 顯示server控制台 么有顯示的話 windows --> show view ->others -->servers
2 在該控制台 右鍵 new --》server
3 在 apache 下選擇對應的tomcat版本
4 選擇需要發布的應用 (add and remove)
http協議
中文:超文本傳輸協議 瀏覽器和web服務器之間通訊,使用的是http協議。
HTTP協議永遠都是客戶端發起請求,服務器回送響應。見下圖:(圖片來自網絡 侵刪)
1.4 工作流程
一次HTTP操作稱為一個事務,其工作過程可分為四步:
1)首先客戶機與服務器需要建立連接。只要單擊某個超級鏈接,HTTP的工作開始。
2)建立連接后,客戶機發送一個請求給服務器,請求方式的格式為:統一資源標識符(URL)、協議版本號,后邊是MIME信息包括請求修飾符、客戶機信息和可能的內容。
3)服務器接到請求后,給予相應的響應信息,其格式為一個狀態行,包括信息的協議版本號、一個成功或錯誤的代碼,后邊是MIME信息包括服務器信息、實體信息和可能的內容。
4)客戶端接收服務器所返回的信息通過瀏覽器顯示在用戶的顯示屏上,然后客戶機與服務器斷開連接。
http特征:
1默認端口 80
2底層是基於tcp(三次握手)
3是基於請求 響應模型的一種協議。
一次請求對應一次響應。必須先有請求 再有響應。
http協議1.0
* 鏈接后,只能獲取一個web資源。
* 鏈接后,發送請求,服務器做出響應,鏈接立即斷開。
http協議1.1(使用)
* 鏈接后,只能獲取多個web資源。
* 鏈接后,不會馬上斷開。
常見的請求方式 有 get post delete put
get post有啥區別?
get: get 長度較短 不安全,因為會在url上顯示具體的路徑
post: post 長度沒有限制,POST的數據不會顯示在 URL 中 所以相對安全。
請求:
請求頭
* If-Modified-Since 必須和響應頭信息一起來完成控制本地的緩存。
* Referer 當前的網頁的來源。(防止盜鏈)a網頁訪問b網頁 b的Referer就是a網頁的地址
* User-Agent 判斷瀏覽器的版本(文件下載的時候)
請求體
放post請求的參數
響應 (響應行 響應頭 響應體)
響應行(協議版本 狀態碼)
200 請求成功
302 重定向
304 訪問本地緩存
404 找不到
500 服務器內部錯誤
響應頭
Content-Type: text/html; charset=GB2312 (響應的文本格式和字符編碼格式)
Content-Disposition: attachment; filename=aaa.zip
這三個東西能夠禁止緩存。(要一起設置哈)
Expires: -1
Cache-Control: no-cache
Pragma: no-cache
location 跟302狀態碼一起完成重定向
Refresh 頁面當時跳轉
響應體:服務器返回給客服端的數據,