国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

java學(xué)習(xí)筆記—HTTP協(xié)議(10)

2019-11-14 23:24:27
字體:
供稿:網(wǎng)友
java學(xué)習(xí)筆記—HTTP協(xié)議(10)

客戶端瀏覽器和服務(wù)器Tomcat要進行基本的請求和響應(yīng)的處理。

其實瀏覽器和服務(wù)器通信的數(shù)據(jù)的格式已經(jīng)使用協(xié)議進行固定好了,只要雙方發(fā)送固定格式的數(shù)據(jù),那么就可以完成基本的通信。

如果開發(fā)者需要查看這樣的數(shù)據(jù)格式,那么就需要安裝一個瀏覽器的HTTP協(xié)議相關(guān)的插件。

如果要深入的學(xué)習(xí)瀏覽器和服務(wù)器通信的數(shù)據(jù),那么需要詳細(xì)的掌握他們之間發(fā)送的數(shù)據(jù)內(nèi)容。

1 請求信息

GET / HTTP/1.1                            ? 請求行Accept: */*Accept-Language: zh-cn,en-US;q=0.5            ? 請求頭User-Agent: Mozilla/4.0Accept-Encoding: gzip, deflateHost: www.sina.com.cnConnection: Keep-Alive                                        ? 空白行uname=jack&upsw=jnb                        ? 請求體    提交的POST數(shù)據(jù)

2. 請求行

請求方式 GET和POST

請求資源 一般是以/開頭就是需要訪問的網(wǎng)站名和頁面的名

協(xié)議信息 協(xié)議名/版本

2. 請求頭

請求頭是瀏覽器發(fā)送給服務(wù)器,那么就是瀏覽器想通知服務(wù)器做一些事情。

MIME類型指定是的什么樣的文件格式需要使用什么樣的應(yīng)用打開。

Accept: text/html,image/*                ? 通知服務(wù)器瀏覽器接收的數(shù)據(jù)類型MIMEAccept-Charset: ISO-8859-1                ? 通知服務(wù)器提交數(shù)據(jù)的編碼方式Accept-Encoding: gzip,comPRess            ? 通知服務(wù)器瀏覽器支持?jǐn)?shù)據(jù)的壓縮Accept-Language: en-us,zh-cn             ? 通知服務(wù)器瀏覽器當(dāng)前的語言信息Host: www.it315.org:80                    ? 通知服務(wù)器要請求的主機名If-Modified-Since: Tue, 11 Jul 2000 18:23:51 ?     通知服務(wù)器資源的最新修改時間Referer: http://www.it315.org/index.jsp        ? 通知服務(wù)器本次請求來自于哪一個URLUser-Agent: Mozilla/4.0                 ? 通知服務(wù)器客戶端使用的瀏覽器內(nèi)核Cookie                                ? 通知服務(wù)器請求中帶有Cookie數(shù)據(jù)Connection: close/Keep-Alive               ? 通知服務(wù)器可以保持建立好的連接Date: Tue, 11 Jul 2000 18:23:51 GMT        ? 通知服務(wù)器發(fā)送請求的時間

請求是由瀏覽器發(fā)送的。那么我們程序員一般是修改不了這些請求頭數(shù)據(jù)。但是在特定的情況下需要修改請求的頭信息,那么此時就需要使用到JavaSE的網(wǎng)絡(luò)編程知識的一些基礎(chǔ)。

URL 主要使用該類來描述瀏覽器地址欄中的地址信息。

HttpURLConnection 主要描述的是客戶端和服務(wù)器建立的連接對象

setRequestProperty() 可以設(shè)置請求頭信息

3. 請求體

主要包含的是POST提交的數(shù)據(jù)。

4.多學(xué)一招: HTTP1.0和1.1的區(qū)別是什么。

HTTP1.0 該協(xié)議在發(fā)送請求的時候沒有Host字段,瀏覽器為每一次請求建立獨立的連接。

思考:如果需要瀏覽的頁面中有3個圖片。那么請問發(fā)送了幾次請求?

4 = 1次文本+3次圖片

HTTP1.1 提供了一個必須的Host字段,而且建立好一次連接之后可以重復(fù)使用。提高用戶的上網(wǎng)體驗。

5 響應(yīng)信息

HTTP/1.1 200 OK                                 ? 響應(yīng)行Server: Apache-Coyote/1.1Set-Cookie: JsessionID=A8FB52…; Path=/day04     ? 響應(yīng)頭Content-Type: text/html;charset=ISO-8859-1Content-Length: 620Date: Fri, 11 Jan 2013 07:42:39 GMT                                             ? 空白行This is my JSP page.                              ? 響應(yīng)體

1. 響應(yīng)行

協(xié)議和版本

響應(yīng)狀態(tài)碼 200 處理成功 302和304需要細(xì)化請求 404資源不存在 500服務(wù)器失敗

狀態(tài)碼說明信息 OK

2. 響應(yīng)頭

Location: http://www.it315.org/index.jsp         ? 通知瀏覽器需要進一步細(xì)化請求的路勁Server:apache tomcat                        ? 通知瀏覽器服務(wù)器的名Content-Encoding: gzip                     ? 通知瀏覽器響應(yīng)數(shù)據(jù)類型是壓縮格式Content-Length: 80                         ? 通知瀏覽器數(shù)據(jù)的長度Content-Language: zh-cn                     ? 通知瀏覽器語言Content-Type: text/html; charset=GB2312         ? 通知瀏覽器內(nèi)容類型Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT    ? 通知瀏覽器資源最后一次修改的時間Refresh: 1;url=http://www.it315.org            ? 通知瀏覽器自動定時刷新Content-Disposition: attachment; filename=a.zip    ? 通知瀏覽器數(shù)據(jù)的處理方式Transfer-Encoding: chunked                  ? 通知瀏覽器數(shù)據(jù)是否切塊Set-Cookie:SS=Q0=5Lb_nQ; path=/search        ? 通知瀏覽器需要使用Cookie存儲數(shù)據(jù)Expires: -1                                ? 通知瀏覽器不要緩存頁面Cache-Control: no-cache      Pragma: no-cache   Connection: close/Keep-Alive                   ? 通知瀏覽器服務(wù)器已經(jīng)保持了連接Date: Tue, 11 Jul 2000 18:23:51 GMT            ? 通知瀏覽器服務(wù)器處理的時間

3. 響應(yīng)體

服務(wù)器發(fā)送給瀏覽器需要的資源數(shù)據(jù)

案例一: 使用動態(tài)網(wǎng)頁開發(fā)技術(shù)實現(xiàn)圖片的下載
public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {        // 通知瀏覽器以下載的方式打開美女        response.setHeader("content-disposition", "attachment;filename=mv.jpg");        // 獲取圖片資源        InputStream in = this.getServletContext().getResourceAsStream("/0001.jpg");        // 獲取輸出到頁面的輸出流對象        OutputStream out = response.getOutputStream();        byte [] bs = new byte[1024];        int len = 0;        while((len = in.read(bs)) != -1){            out.write(bs, 0, len);        }        // 釋放資源        in.close();        out.close();            }

總結(jié):HTTP協(xié)議本身在傳遞數(shù)據(jù)的時候,數(shù)據(jù)時明碼傳輸?shù)摹H绻脩粜枰獋鬏斠恍╇[私的數(shù)據(jù),那么需要進行加密。

方式1:使用各種語言支持的加密方式。

方式2:建立客戶端和服務(wù)器端加密的通信連接。

HTTPS協(xié)議

加密的HTTP協(xié)議,客戶端瀏覽器和服務(wù)器之間會建立一個加密的通道,在該通道下傳遞的數(shù)據(jù)都是安全的。

如:在線交易、網(wǎng)上銀行。

那么我們就需要在Tomcat中實現(xiàn)HTTPS的搭建。

1. 生成證書

keytool -genkey -alias tomcat -keyalg RSA -keystore d:/tomcat.keystore

2. 在tomcat中引入證書

配置server.xml文件如下

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"

SSLEnabled="true"

maxThreads="150" scheme="https" secure="true"

clientAuth="false" sslProtocol="TLS"

keystoreFile="d:/tomcat.keystore"

keystorePass="123456"

/>

3. 使用瀏覽器建立安全的連接https://localhost:8443

問題:

  1. tomcat啟動的時候一閃而過。

沒有配置java_home環(huán)境變量。java_home=D:/jdk6.0

  1. 如果啟動直接報錯。

如果啟動的時候發(fā)現(xiàn)錯誤信息后直接關(guān)閉了窗口,那么請查看日志信息文件。如果發(fā)現(xiàn)時地址沖突了,那么修改server.xml文件中的8080端口即可。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 英山县| 监利县| 兴海县| 富顺县| 岳西县| 鄂伦春自治旗| 鄱阳县| 芜湖市| 鄂托克前旗| 沂源县| 密云县| 千阳县| 福建省| 武宣县| 泊头市| 拜泉县| 永年县| 吉隆县| 临泽县| 达尔| 麦盖提县| 锦屏县| 丰顺县| 湖南省| 镇沅| 潼南县| 南丹县| 瓦房店市| 页游| 项城市| 邢台市| 宜兴市| 洛隆县| 二连浩特市| 堆龙德庆县| 西青区| 无为县| 桓仁| 湖口县| 哈密市| 璧山县|