一、http協(xié)議
- http協(xié)議
它其實(shí)就是約定了客戶端和服務(wù)器端在執(zhí)行網(wǎng)絡(luò)交互動(dòng)作的時(shí)候一種規(guī)則霹粥。 執(zhí)行http請(qǐng)求的時(shí)候布蔗,遵守的一種規(guī)范
http://www.baidu.com /
- http協(xié)議版本
使用最廣泛的是1.1的版本。 它是一種請(qǐng)求 - 響應(yīng) 模型的協(xié)議。
1.0
請(qǐng)求 - 響應(yīng)完畢后慈鸠,連接關(guān)閉 , 如果還想接著請(qǐng)求,必須得重新連接
1.1
請(qǐng)求 - 響應(yīng)完畢后青团,連接未關(guān)閉 譬巫,還可以繼續(xù)發(fā)起請(qǐng)求
Http請(qǐng)求背后細(xì)節(jié)
http協(xié)議傳輸?shù)臄?shù)據(jù)包含三個(gè)部分 , 信息行 督笆、 信息頭 芦昔、 信息體
* 請(qǐng)求
請(qǐng)求行
請(qǐng)求頭
請(qǐng)求體
* 響應(yīng)
響應(yīng)行
響應(yīng)頭
響應(yīng)體
GET請(qǐng)求
提交的數(shù)據(jù):
請(qǐng)求行 :
GET /LoginDemo/login?username=admin&password=123456 HTTP/1.1
表示使用Get請(qǐng)求 , 表示請(qǐng)求什么路徑地址 娃肿,表示使用什么版本的協(xié)議
請(qǐng)求頭
Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, */*
Referer: http://localhost:8080/LoginDemo/login.html
Accept-Language: zh-CN
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)
Accept-Encoding: gzip, deflate
Host: localhost:8080
Connection: Keep-Alive
Accept : 聲明客戶端可以接收什么類型的數(shù)據(jù)
Referer : 表示請(qǐng)求從哪里過(guò)來(lái)的
Accept-Language : 表示客戶端支持的語(yǔ)言
User-Agent : 表示客戶端的信息
Accept-Encoding : 表示客戶端支持的壓縮格式
Host : 表示主機(jī)地址
Connection : 表示連接狀態(tài)咕缎。
請(qǐng)求體:
GET方式的請(qǐng)求,沒(méi)有請(qǐng)求體料扰。 因?yàn)閿?shù)據(jù)都是拼接到了地址上去了凭豪。
獲取到的數(shù)據(jù):
響應(yīng)行
HTTP/1.1 200 OK
表示服務(wù)器也支持1.1的版本協(xié)議 , 對(duì)這次請(qǐng)求處理的狀態(tài)碼是200 晒杈,OK
響應(yīng)頭
Server: Apache-Coyote/1.1 : 服務(wù)器版本
Content-Length: 75 : 返回的數(shù)據(jù)長(zhǎng)度
Date: Sun, 21 May 2017 07:09:28 GMT : 響應(yīng)時(shí)間
響應(yīng)體
login failed ~ please use username : itheima , password : 10086 try again~
POST請(qǐng)求
提交的數(shù)據(jù)
請(qǐng)求行
POST /LoginDemo/login HTTP/1.1
意思和get請(qǐng)求的意思一樣嫂伞,只不過(guò)這里的地址再也不跟數(shù)據(jù)了。
請(qǐng)求頭
Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, */*
Referer: http://localhost:8080/LoginDemo/login.html
Accept-Language: zh-CN
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Host: localhost:8080
Content-Length: 29
Connection: Keep-Alive
Cache-Control: no-cache
Content-Type : 其實(shí)就是說(shuō)明提交上去的數(shù)據(jù)是什么類型數(shù)據(jù) 拯钻。 是一個(gè)經(jīng)過(guò)url編碼的form表單數(shù)據(jù)
Content-Length : 提交的數(shù)據(jù)長(zhǎng)度
Cache-Control : 表示再次請(qǐng)求的時(shí)候帖努,是否讀緩存。
請(qǐng)求體
username=itheima&password=123
是以流的形式寫給服務(wù)器的粪般。
響應(yīng)數(shù)據(jù)
響應(yīng)行
響應(yīng)頭
響應(yīng)體
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Length: 75
Date: Sun, 21 May 2017 07:32:12 GMT
login failed ~ please use username : itheima , password : 10086 try again~
GET 和 POST方式的區(qū)別
-
GET
它的地址會(huì)帶上數(shù)據(jù)拼余, http://www.HiWeb.com?name=aa&age=18
能夠帶的數(shù)據(jù)有限制。
由于數(shù)據(jù)會(huì)拼接到地址欄上面刊驴,所以不安全
-
POST
它的地址不帶數(shù)據(jù)姿搜,就是很干凈的地址而已寡润。
帶的數(shù)據(jù)沒(méi)有限制捆憎。 (因?yàn)閿?shù)據(jù)是以流的方式寫過(guò)去。)
由于數(shù)據(jù)沒(méi)有拼接梭纹,所以數(shù)據(jù)比較安全
額外多兩個(gè)頭字段 Content-Type Content-Length.
軟件架構(gòu)
-
C/S架構(gòu)
client【客戶端】 / server【服務(wù)器端】
如: QQ 躲惰、微信、 迅雷 变抽、 LOL
必須得安裝一個(gè)客戶端础拨,才能和服務(wù)器對(duì)接。
優(yōu)點(diǎn):
1. 視覺(jué)比較炫酷 绍载、 用戶體驗(yàn)好
2. 一部分資源|數(shù)據(jù)放在了本地 诡宗、減輕服務(wù)器壓力
缺點(diǎn):
1. 占用本地硬盤空間
2. 更新比較困難、 服務(wù)器只要一更新击儡,客戶端也得跟著更新
3. 平臺(tái)塔沃、系統(tǒng)環(huán)境的限制
-
B/S架構(gòu)
browser【瀏覽器】 / server【服務(wù)器端】
如: 網(wǎng)頁(yè)游戲 、 網(wǎng)頁(yè)QQ 阳谍、
通過(guò)瀏覽器來(lái)和服務(wù)器對(duì)接
優(yōu)點(diǎn):
1. 不用安裝 蛀柴、只要有瀏覽器就行螃概。
2. 一般也不用做更新。
3. 不受平臺(tái)限制 鸽疾、 不占用本地的空間吊洼。
缺點(diǎn):
1. 用戶體驗(yàn)不好。 比較卡制肮。
2. 服務(wù)器壓力比較大冒窍、因?yàn)樗械馁Y源都放在服務(wù)器。
Web資源
就是網(wǎng)絡(luò)上的任意資源都可稱之為web資源 豺鼻、 就是服務(wù)器里面所有東西超燃,都可以看做是web資源。
- 靜態(tài)資源
不管什么時(shí)候來(lái)拘领,什么情況下見(jiàn)到的數(shù)據(jù)永遠(yuǎn)不變意乓。 圖片、 html網(wǎng)頁(yè)约素、 音樂(lè)届良、 ....
- 動(dòng)態(tài)資源
根據(jù)不同的請(qǐng)求情況 、不同的時(shí)機(jī)圣猎、 顯示出來(lái)的數(shù)據(jù)內(nèi)容不一樣士葫、 那么這些產(chǎn)生變化的數(shù)據(jù)就稱之為動(dòng)態(tài)資源。 jsp / servlet
常見(jiàn)的服務(wù)器軟件:
Tomcat : Apache 提供的一個(gè)免費(fèi)小型服務(wù)器軟件 送悔, 支持JSP/Servlet 規(guī)范
WebLogic : Bea公司提供的收費(fèi)大型服務(wù)器軟件 慢显, 支持EE的所有規(guī)范
WebSphere : IBM公司收費(fèi)大型服務(wù)器軟件 , 支持EE的所有規(guī)范
JBoss : 一個(gè)基于J2EE開放源碼的服務(wù)器軟件 核心不支持 JSP/Servlet 欠啤,一般與tomcat 或者 jetty配合使用
安裝Tomcat
1. 解壓
2. 進(jìn)入tomcat /bin 荚藻, 點(diǎn)擊startup.bat
3. 如果見(jiàn)到一閃而過(guò)的情形, 那么打開dos窗口洁段,然后拖拽startup.bat進(jìn)去后应狱,回車,即有提示祠丝,一般都是沒(méi)有配置環(huán)境變量 JAVA_HOME CATALINA_HOME : 其實(shí)就是tomcat的根目錄路徑疾呻。
4. 配置好之后,在執(zhí)行即可
5. 打開瀏覽器写半,然后輸入地址 http://localhost:8080,頁(yè)面成功顯示即為安裝成功
Tomcat目錄解釋
backup : 備份
##bin : 啟動(dòng)和停止的指令
##conf : 配置
server.xml web.xml catalina
lib : tomcat運(yùn)行必須的jar
logs : tomcat運(yùn)行的日志
temp : 臨時(shí)文件
##webapps : 項(xiàng)目發(fā)布的地方岸蜗,一般配合eclipse使用 。
work : 這里是存放jsp 翻譯成的java文件 --- class文件
##wtpwebapps : 這是eclipse工具默認(rèn)發(fā)布項(xiàng)目存放的位置叠蝇。 與上面的webapps 意思一樣璃岳。
新建Web項(xiàng)目
1. 修改工作空間編碼 為 UTF-8
2. 配置tomcat環(huán)境 。 以后只要在這里運(yùn)行項(xiàng)目,那么項(xiàng)目就會(huì)自己發(fā)布到tomcat里面矾睦。
3. 新建動(dòng)態(tài)web工程
4. 在webContent下面新建一個(gè)html網(wǎng)頁(yè)
5. 右鍵工程 --- run on server
6. 在瀏覽器里面訪問(wèn)該網(wǎng)頁(yè) 晦款,路徑如下:
http://localhost:8080/項(xiàng)目名/資源名
http://localhost:8080/HiWeb/hi.html
- run as Server 背后做了什么工作?
對(duì)我們的項(xiàng)目進(jìn)行編譯處理(java) 枚冗,然后拷貝項(xiàng)目到 tomcat根目錄\wtpwebapps 目錄下缓溅。
- 訪問(wèn)路徑的規(guī)則 http://localhost:8080/HiWeb/hi.html
localhost : 本機(jī)
8080 : 端口
localhost:8080 : 找我們這臺(tái)電腦上端口號(hào)是8080 的那一個(gè)軟件 tomcat
http://localhost:8080/HiWeb/hi.html : 找到tomcat 位置后,進(jìn)入那個(gè)默認(rèn)的目錄 wtpwebapps 里面有一個(gè)文件夾 HiWeb 文件夾里面有一個(gè)文件 hihtml
得出一個(gè)結(jié)論:
一個(gè)項(xiàng)目其實(shí)就是tomcat\wtpwebapps | webapps 下面的一個(gè)文件夾赁温。
http://localhost:8080/文件夾名字/資源名
發(fā)布Web項(xiàng)目
- 問(wèn)題 : 如何發(fā)布一個(gè)項(xiàng)目(文件夾)到tomcat去呢 ?
1. 拷貝這個(gè)文件夾到tomcat\webapps
訪問(wèn)路徑 : localhost:8080/文件夾名稱/文件名稱 即可
2. 設(shè)置虛擬路徑
a . 在tomcat /conf/server.xml Host標(biāo)簽里面坛怪,寫上以下內(nèi)容
<!--
http://localhost:8080/HiWeb02/icon_13.jpg
docBase : 項(xiàng)目路徑
path : 就是這個(gè)項(xiàng)目映射出來(lái)的路徑,這個(gè)路徑并不存在股囊,所以稱之為虛擬路徑 -->
<Context docBase="D:\img08" path="/HiWeb02"/>
b . 在 tomcat / conf/catalina/localhost設(shè)置
1. 在該目錄下袜匿,新建一個(gè)文件heima13.xml,這個(gè)文件必須是xml文件稚疹。 文件的名稱就是我么你的虛擬路徑居灯, 當(dāng)然可以隨便寫。
2. xml的文件內(nèi)容如下:
<?xml version="1.0" ?>
<Context docBase="E:\html\"/>
3. 那么文件的名稱就是設(shè)置的虛擬路徑 内狗,訪問(wèn)的格式如下:
http://localhost:8080/文件名/資源名稱
http://localhost:8080/heima13/aa.txt