程序和功能--->打開或關閉windows功能--->選中Telnet客戶端--->確定二:測試telnet服務是否已經打開:C:\Users\Administrator>telnet-?telnet[-a][-eescapechar][-flogfile][-luser][-tterm][host[port]]-a企圖自動登錄。除了用當前已登陸的用戶名以外,與-l選項相同。-e跳過字符來進入te" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Tomcat與web程序結構與Http協議

系統 1950 0

telnet

一:打開telnet服務:
控制面板------> 程序和功能---> 打開或關閉windows功能---> 選中 Telnet客戶端--->確定
二:測試telnet服務是否已經打開:


C:\Users\Administrator>telnet -?


telnet [-a][-e escape char][-f log file][-l user][-t term][host [port]]
?-a ? ? ?企圖自動登錄。除了用當前已登陸的用戶名以外,與 -l 選項相同。
?-e ? ? ?跳過字符來進入 telnet 客戶端提示。
?-f ? ? ?客戶端登錄的文件名
?-l ? ? ?指定遠程系統上登錄用的用戶名稱。
? ? ? ? ?要求遠程系統支持 TELNET ENVIRON 選項。
?-t ? ? ?指定終端類型。
? ? ? ? ?支持的終端類型僅是: vt100, vt52, ansi 和 vtnt。
?host ? ?指定要連接的遠程計算機的主機名或 IP 地址。
?port ? ?指定端口號或服務名。


三:使用:
先把tomcat 打開
C:\Users\Administrator>telnet localhost 80
輸入的字符看不到,按ctrl + ]即可
把下面兩行代碼粘進入,按兩次enter后即可將apache主頁打印出來.
GET / HTTP/1.1
Host:



將httpWathc professional啟用

internet屬性-->程序-->管理加載項-->將httpWathc professional啟用

修改html編輯器



windows-->General-->Editors-->File Association
?File types:--->*.html
?Associated editors:-->MyEclispe HTML Editor (locked by 'html' content type)
?default ok.



訪問http server的次數





例題:一個web頁面中,使用img標簽引用了三個圖片,當客戶端訪問服務器中的這個web頁面時,客戶端
總共訪問幾次服務器.即向服務器發送了幾次Http請求:
新建一個web project
在WebRoot中加入三個圖片
在WebRoot中建立一個img.html文件,關鍵內容為:
<body>
<img ?src="1.jpg">
<img ?src="3.jpg">
<img ?src="5.jpg">
</body>
將此工程發布出去,在IE瀏覽器中打開HttpWatch professional,Record
輸入:http://localhost/myday02/img.html回車
結果:
?00:00:00.000 0.013 122 GET 304 text/html http://localhost/myday02/img.html
?00:00:00.017 0.007 125 GET 304 image/jpeg http://localhost/myday02/1.jpg
?00:00:00.018 0.014 125 GET 304 image/jpeg http://localhost/myday02/3.jpg
?00:00:00.018 0.039 125 GET 304 image/jpeg http://localhost/myday02/5.jpg
即有四次訪問:一個html,三次圖片.

Http請求



一:概述:客戶端連上服務器后,向服務器請求某個web資源,稱之為客戶端向服務端發送了一個HTTP請求.一個
? ? ?完整的Http請求包括如下內容:
? ? ?一個請求行,若干個請求頭,以及實體內容.
? ? ?請求行:請求行用于描述客戶端的請求方式.請求的資源名稱,以及使用的HTTP協議版本號
? ? ?多個請求行:消息頭用于描述客戶端請求哪臺主機,以及客戶端的一些環境信息等.
二:共有七種請求方式:POST,GET,HEAD,OPTIONS,DELETE,TRACE,PUT
? ? 常用的有GET,POST,默認的是get請求.可通過更改表單的提交方式實現.


三:不管post還是get,都用于向服務器請求某個web資源,這兩種方式的區別主要表現在數據傳遞上:
? ?1.get方式:可以在請求的url地址后以?的形式帶上交給服務器的數據.多個數據之間以&進行分隔:
? ? ? ? ? ? ?如:
? ? ? ? 1.1: get方式的特點:在URL地址后附帶的參數是有限制的,其數據容量通常不能超過1K.
? ?2.POST方式:可以在請求的實體內容中向服務器發送數據,
? ? ? ? 2.1: post方式的特點:傳送的數據量無限制.
---------------------------------------------------------------------------------
示例演示區別:
在WebRoot中建立一個img.html文件,關鍵內容為:
<body>
<h2>get方式的請求</h2>
<form action="" method="get">
用戶名:<input type = "text" name = "name">
密&nbsp;碼:<input type="password" name = "password">
<input type = "submit" value="提交">
</form>
<hr size="8" color="red">

<h2>post方式的請求</h2>
<form action="" method="post">
用戶名:<input type="text" name="name">
密&nbsp;碼:<input type="password" name = "password">
<input type = "submit" value = "提交">
</form>

</body>


啟動tomcat,在瀏覽器中輸入:http://localhost/myday02/get_post.html
演示get:
結果一:
POST /myday02/get_post.html HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, */*
Referer: http://localhost/myday02/get_post.html
Accept-Language: zh-CN
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Host: localhost
Content-Length: 21
Connection: Keep-Alive
Cache-Control: no-cache


name=abc&password=123
User-Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
結果二:瀏覽器的地址欄內容變為:http://localhost/myday02/get_post.html?name=abc&password=123


在瀏覽器中輸入:http://localhost/myday02/get_post.html
演示post:
結果一:
POST /myday02/get_post.html HTTP/1.1
Accept: */*
Referer: http://localhost/myday02/get_post.html
Accept-Language: zh-CN
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Host: localhost
Content-Length: 21
Connection: Keep-Alive
Cache-Control: no-cache


name=abc&password=123
結果二:瀏覽器的地址欄內容依然為:http://localhost/myday02/get_post.html

Http請求頭詳解


Accept: text/html,image/* ? ? ?用于 告訴服務器,客戶端支持的數據類型.
Accept-Charset: UTF-8 ? ? ? ? ?用于 告訴服務器,客戶端支持的字符編碼
Accept-Encoding: gzip,compress ? ?告訴服務器客戶機支持的數據壓縮格式. ?(重點)
Accept-Language: en-us,zh-cn ? 用戶告訴服務器,客戶機接受語言.
Host: www.it315.org:80 ? ? ? ? ?告訴服務器要訪問那個主機
If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT ? 這個用來實現和緩存相關的, 跟last-modified. (重點)
Referer: http://www.it315.org/index.jsp ? 用來實現防盜鏈 (重點 )
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) ? ?客戶端的 類型.
Connection: close/Keep-Alive ? ?用于連上服務器之后, 是否繼續保持連接.



Http響應

一:概述:一個Http響應代表服務器向客戶端回送的數據,它包括:
一個狀態行,若干消息頭,實體內容.
響應行:狀態行用于描述服務器對請求的處理結果
多個消息頭:用于描述服務器的基本信息,以及數據的描述,服務呂通過這些數據的描述信息,
?可以通知客戶端如何處理等一會它回送來的數據.
一個空行:
實體內容:代表服務器向客戶端回送的數據.
二:狀態行:
格式:HTTP版本號 ?狀態碼 ?原因敘述<CRLF>
舉例:HTTP/1.1 200 ok
狀態碼用于表示服務器對請求的處理結果,它是一個三位的十進制數.響應分為五類.

重定向Redirect





/servlet/RedTest


重定向:
示例代碼:
在myday02中的myserver包中建立一個RedTest.java文件(Servler),內容為:
package myserver;


import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.*;
public class RedTest extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
/*
* 302 + location 實現請求重定向.
* 應用場景:一般用來做登陸.
* 特點:1.會發生二次請求.
* ? 2.瀏覽器地址欄會發生變化.
*/

response.setStatus(302);
response.setHeader("location", "/myday02/get_post.html");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
開啟tomcat,在瀏覽器中輸入:http://localhost/myday02/servlet/RedTest
其自動變成:http://localhost/myday02/get_post.html
此為重定向成功.
?00:00:00.000 0.018 139 GET 302 Redirect to http://localhost/myday02/get_post.html http://localhost/myday02/servlet/RedTest
?00:00:00.018 0.028 0 GET (Cache) text/html http://localhost/myday02/get_post.html

Refresh刷新

重定向:
示例代碼:
在myday02中的myserver包中建立一個RefreshServelet.java文件(Servler),內容為:
package myserver;


import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.*;
public class RefreshServelet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//refresh頭實現定時刷新到某個頁面.
//一般可用作定時刷新,
//應用:股票,聊天室,
// response.setHeader("Refresh", "2;url=http://www.baidu.com");
response.setHeader("Refresh", "1");

}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}


}



gzip壓縮



壓縮:


把conf/server.xml中的第72行那段數據改為:
?<Connector port="80" protocol="HTTP/1.1"
? ? ? ? ? ? ? ?connectionTimeout="20000"
? ? ? ? ? ? ? ?redirectPort="8443" compressableMimeType="text/html,text/xml,text/plain" compression="on" />


壓縮前: 00:00:00.000 0.038 11599 GET 200 text/html;charset=ISO-8859-1 http://localhost/
壓縮后: 00:00:00.000 1.401 2296 GET 200 text/html;charset=ISO-8859-1 http://localhost/
注意:把server.xml修改前是壓縮前,修改后把緩存清空后再訪問才是壓縮后的,



Tocmcat默認的緩存策略

If-Modified-Since,Last-Modified結合304實現。
第一次訪問某個頁面時,服務器將數據發給客戶端,并在客戶端生成一個緩存,同時記下本頁面在服務器端被修改的時間:
Last-Modified: Sun, 05 May 2013 00:55:08 GMT 并發給客戶端,
當客戶端再次訪問同一個頁面時,將If-Modified-Since發給服務器,服務器讀取If-Modified-Since中的時間,
If-Modified-Since: Sun, 05 May 2013 00:55:08 GMT
將此數據中的時間與Last-Modified中的時間作對比,如果相同,則說明這個頁面自上次發給此客戶端后一直沒被修改,則服務器不再將數據發給客戶端,
讓客戶端從自己的緩存中讀取數據,
如果不同,則將數據發給客戶端,并在客戶端生成緩存,同時記下時間:Last-Modified,將本服務器中的這個頁面最后一次修改的時間發給客戶端,
這樣既能節約帶寬,又能提高響應時間。

Tomcat禁用緩存




Expires:-1
Cache-Control:no-cache
Pragma:no-cache




?

Tomcat與web程序結構與Http協議


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产色婷婷精品综合在线手机播放 | 久久伊人一区二区三区四区 | 国产成人亚洲精品久久 | 奇米影视亚洲 | 五月婷婷久久综合 | 一级毛片免费毛片一级毛片免费 | 美国成人毛片 | 久久免费国产视频 | 国产―笫一页―浮力影院xyz | 老司机久久精品视频 | 色视频免费国产观看 | 四虎午夜| 成人免费观看网欧美片 | 免费看a毛片 | 国产aⅴ精品一区二区三区久久 | 亚洲精品一区二区三区婷婷 | 欧美午夜网站 | 亚洲国产精久久小蝌蚪 | 操的好爽视频 | 欧美日韩精品国产一区二区 | 久久精品国产第一区二区 | 亚洲精品亚洲九十七页 | 久久青草免费91线频观看站街 | 国产成人高清亚洲一区91 | 亚洲精品色一区色二区色三区 | 不卡日本| 久久综合久久美利坚合众国 | 亚洲一区二区三区成人 | 日韩欧美亚洲综合 | 一级激情视频 | 欧美一级毛片片免费 | 亚洲一区中文字幕在线 | 四虎影院在线视频 | 国产精品久久久一区二区三区 | 精品国产91久久久久 | 亚洲免费小视频 | 五月婷六月婷婷 | 久久99综合国产精品亚洲首页 | 92在线视频 | 免费观看h片 | 欧美一级爱爱视频 |