http協(xié)議入門的書_第1頁
http協(xié)議入門的書_第2頁
http協(xié)議入門的書_第3頁
http協(xié)議入門的書_第4頁
http協(xié)議入門的書_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、http 協(xié)議入門的書篇一: 04-Servlet 入門 +http 協(xié)議1、 Servlet1. javaweb 學什么用 java 語言開發(fā)動態(tài)的 web 資源,接下來就是介紹如何開發(fā)動態(tài)的web資源對于 java 程序員而言 , 所謂動態(tài) web 資源就是可以運行在服務器上的 java 程序2. 實現(xiàn)服務器管理java 程序開發(fā)人員寫好一個java 類 , 到底有哪些方法tomcat 服務器是不可能知道的tomcat 服務器需要執(zhí)行我們編寫的 java 類就需要知道我們的 java 類有哪些方法 , 然后在適當?shù)臅r間調用這些方法所以我們在寫的 java 程序要想運行在服務器上就必須要實現(xiàn)

2、一個特殊的接口interface Servlet . Servlet 接口中就定義了可以被tomcat 服務器調用的 java 方法 通常來講 , 我們將實現(xiàn)了 Servlet 接口的 java能供外界訪問3. 實現(xiàn)第一個Servlet 程序導入 servlet jar 包set classpath=%classpath%;D:lib編譯帶包的類javac -d .將包拷貝至day05/WEB-INF/classes 目錄下 ->發(fā)布 web 工程注意: servlet 對象一旦創(chuàng)建就會駐留在內存中,為所有的請求服務,什么時候銷毀直到服務器關閉時或 web 應用被移除才銷毀Servlet

3、 執(zhí)行流程圖service 方法就返回4. 用 eclipse 工具開發(fā) Servlet建一個 web project在 src 下建包,創(chuàng)建一個java 類實現(xiàn) Servlet 接口在 WebrootWEB-INF 做 servlet 映射配置 tomcat 服務器window-> preferences ->將 web 工程發(fā)布至tomcat 服務器發(fā)布的 web 應用名稱可以配置: web 工程右鍵選properties->myeclipse->web默認情況使用工程名作為發(fā)布后的web應用名啟動 tomcat 服務器運行程序5. HttpServlet 對象一

4、般 來 講 我 們 開 發(fā) 一 個 Servlet 會 去 繼 承 HttpServlet在 eclipse 下 開 發(fā) Servlet 可 以 直 接 新 建 一 個 Servlet , 覆寫 HttpServlet 的 doGet 和 doPost 方法 繼 承 HttpServlet 的原因是: HttpServlet 實現(xiàn)了 service 方法,將 ServletRequst 和 ServletResponse 強轉為子類 HttpServletRequest 和 HttpServletResponse ,讓我們用起 來更加方便, 同時, 在 service 方法中, 它判斷了請求方

5、式, 根據(jù)請求方式來調用 doGet 和 doPost2、 Servlet 細節(jié)1. * 號統(tǒng)配符一個 Servlet 可以映射為多個路徑在映射 Servlet 路徑時可以使用 /* 或 *. 擴展名 的形式注意 : 兩者不能同時使用/* 具有較高的優(yōu)先級2. load-on-startup 元素元素下可以配置子元素,配置方式如下 :1如果一個Servlet配置了該項,web容器會在web應用被加載時就初始化該Servlet ,數(shù)字越小則越先初始化3. tomcatconf服務器下所有 web 應用中的 都會自動繼承該文件中所有的配置http:/localhost:8080/day05/ 是資

6、源名上面的 url 訪問的 url 在文件中并沒有配置此時會去訪問缺省的 Servlet ,在文件中就配置了一個缺省的 DefaultServlet DefaultServlet幫我們去 web 應用下讀取文件,并打給瀏覽器,如果沒有發(fā)送 404 頁面 也就說,我們通過ie 訪問服務器訪問的都是 Servlet4. Servlet 線程安全問題解決 Servlet 線程安全問題: 加上同步的鎖(lock)實現(xiàn) SingleThreadModel 接口的 Servlet服務器會做判斷,當有請求過來,如果 Servlet 對象忙著呢,服務器會再創(chuàng)建一個Servlet 對象為用戶 提供服務,如果 S

7、ervlet 閑置,就直接提供服務這樣的方式實際上是回避了線程安全問題, 單線程訪問 Servlet , 這樣的方式不可取3、 http 協(xié)議1. tcp/ip 協(xié)議: 網(wǎng)絡通信協(xié)議 ( 連接 )ip 協(xié)議 : ip 地址對應一臺計算機 (互聯(lián)網(wǎng)層)tcp 高級協(xié)議: 三次握手, 發(fā)送請求、返回響應、傳輸數(shù)據(jù) ( 傳輸層 )2. http 協(xié)議是建立在tcp 協(xié)議的基礎之上 ( 應用層 )3. Http 協(xié)議的版本(w3c)建立連接,發(fā)送一次請求就斷開:建立連接,可以無限次發(fā)送請求4、 http 請求消息內容包括一個請求行、若干消息頭、以及實體內容,其中的一些消息頭和實體內容都是可選的,消息頭

8、和實體內容之間要用空行隔開。1. 請求行 GET /itcast/ HTTP/GET 請求方式: get 方式請求參數(shù)跟在url 后面/itcast/?username=aaa&password=111篇二:HTTP協(xié)議的認識HTTP協(xié)議協(xié)議簡介( Hyper Text Transfer Protocol ,中文稱“超文本傳輸協(xié)議”)。HTTPB議誕生的理由,就是讓人們以一種標準 的方式獲取互聯(lián)網(wǎng)上的信息。Web服務器和瀏覽器通過 HTTP在Internet上發(fā)送和接受消息。 HTTP 是一種基于請求/ 響應模式的協(xié)議,客戶端發(fā)送一個請求,服務器返回對該請求的響應。 HTTP使用可靠的

9、 TCR1接,默認端口是80°HTTM、議的第一個版本是 HTTP , 后來發(fā)展到HTTP ,現(xiàn)在最新的版本是 HTTP o Tomcat5版本 默認情況下使用協(xié)議。在 HTTP 中,客戶端/ 服務器之間的會話總是由客戶端通過建立連接和發(fā)送HTTP請求的方式初始化,服務器不會主動聯(lián)系客戶端或要求與客戶端連接。在會話開始后,瀏覽器或服務器都可以隨時中斷連接。/IP 協(xié)議簡介因為HTTP協(xié)議是建立在 TCP/IP協(xié)議之上的,并且以TC的議作為傳輸協(xié)議,所以我現(xiàn)簡單的介紹下 TCP/IP協(xié)議。TCP/IP起源于美國國防部高級研究規(guī)劃署(DARPA)的一項研究計劃實現(xiàn)若干臺主機的相互通信?,F(xiàn)

10、在 TCP/IP 已成為 Internet 上通信的工業(yè)標準。TCP/IP 模型包括 4 個層次:應用層傳輸層網(wǎng)絡層網(wǎng)絡接口協(xié)議的原理HTTP協(xié)議是一種基于“請求/響應”范式的協(xié)議,所以 對應到實際的應用中,就是瀏覽器負責發(fā)起“請求” 。當建 立與服務器的TCP連接后,將一些請求數(shù)據(jù)發(fā)送到服務器端, 服務器端收到數(shù)據(jù)進行一系列的處理,并把結果“響應”給 瀏覽器,最后在關閉連接。如下圖所示為HTTP協(xié)議整個過程的示例圖。HTTP協(xié)議運行示例圖HTTP 連接HTTP協(xié)議的第一步工作就是,客戶端同服務器建立連 接,因為HTTP協(xié)議是基于TCP/IP協(xié)議之上的,并且以 TCP 協(xié)議作為傳輸協(xié)議,所以每

11、次通信前都必須現(xiàn)建立連接,以 確保數(shù)據(jù)的準確傳輸。當然所有的連接請求都必須由客戶機 發(fā)出,而服務器端是不能主動向客戶機發(fā)出連接請求的。HTTP 請求HTTP請求由三個部分組成,分別是:請求方法協(xié)議/版本、 (Request Header )和請求正文。下面是一個HTTPi青求的例子:GET/ HTTP/Accept:image/gif,image/jpeg,*/*Accept-Language:zh-cnConnection:Keep-AliveHost:localhostUser-Agent:Mozilla/(compatible;Windows NT )Accept-Encoding:gz

12、ip,deflateusername=admin&password=1231)請求方法URI協(xié)議/版本請求的第一行是“請求方法 URI 協(xié)議 / 版本” :GET/ HTTP/以上代碼中,”GET代表請求方法,7”表示URI, “HTTP/" 代表協(xié)議和協(xié)議的版本。2) 請求頭( Request Header )請求頭包含許多有關客戶端環(huán)境和請求正文的有用信息。例如,請求頭可以聲明瀏覽器所用的語言,請求正文的長度等。Web應用程序是基于 HTTM、議的,因此它會得益于 HTTR但同時也將受限于 HTTR從HTTP請求消息中可以看 到,在WEBS序中的一些可以實現(xiàn)的功能,例如國

13、際化功能,WEB應用程序會根據(jù)瀏覽器所使用的語言的不同而返回不同的 語言 數(shù) 據(jù) 。 這就 是 因 為 HTTP 的 請 求 頭 里 包 含 有Accept-Charset的原因。所以,想要了解 WEBS用到底可以實現(xiàn)哪些針對不同客戶的個性化服務,就需要了解HTTP 中的請求頭了。因為,受限于HTTPW議,WE應用程序服務器也只能根據(jù)HTTP頭得到客戶相關的信息了。請求頭和請求正文之間是一個空行,這個行非常重要,它表示請求頭已經結束,接下來的是請求的正文。請求正文中可以包含客戶提交的查詢字符信息:username=admin&password=123HTTP 響應與HTTP請求相似,H

14、TTP響應也是由三個部分組成,分別是:協(xié)議狀態(tài)代碼描述、應頭( Response Header )和響 應正文。下面是一個HTTP響應所得信息的示例:HTTP/ 200 OKServer:ApachTomcat/Date:Mon,6 Oct XX 13:13:33 GMTContent-Type:text/htmlLast-Modified:Mon,6 Oct XX 13:23:42 GMTContent-Length:112響應的HTMLW代碼如下:HTTP響應示例Hello HTTP1)協(xié)議狀態(tài)代碼描述HTTP響應的第一行類似于 HTTPi青求的第一行,它表示通信所用的協(xié)議是,服務器已經成功處理了客戶端發(fā)出的請求( 200 表示成功) :HTTP/ 200 OK2) 響應頭( Response Header )響應頭也和請求頭一樣包含許多有用的信息,例如服務器類型、日期時間、內容類型和長度等。上例所得響應頭信息如下:S

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論