Web基本工作原理..課件_第1頁
Web基本工作原理..課件_第2頁
Web基本工作原理..課件_第3頁
Web基本工作原理..課件_第4頁
Web基本工作原理..課件_第5頁
已閱讀5頁,還剩65頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Web基本工作原理參考書:Web Server Technology, Nancy J. Yeager, Morgan Kaufmann Publishers, 19961Web是Internet發(fā)展的產(chǎn)物Internet - 現(xiàn)代Internet = Web繼承:TCP/IP, MIME, Hypertext, 發(fā)展:HTTP, HTML, URL (Tim Berners-Lee)(為方便起見,本講區(qū)別Internet和Web)2什么是Internet ? (如何界定Internet包含的所有計算機)所有在DNS中有登記的計算機的集合?所有具有IP地址的計算機的集合?(internet v

2、s Internet)“公理”:總可以找到一臺在Internet上的計算機那么,Internet即為從任何一臺已在Internet中的計算機可以用IP地址ping到的所有計算機的集合.撥號上網(wǎng)的計算機算不算?3什么是Web ?運行在Internet之上的所有HTTP服務器軟件和它們所管理的對象(及其作用)的集合不算瀏覽器軟件?!對象:Web page/Web document, 程序web document: multimedia/active, 含有hyperlinks/anchors程序,動態(tài)生成web document. (dynamic document不同于active docume

3、nt)4Web Documentmultimedia: 多種數(shù)據(jù)類型共存于一個文檔中, text, image, sound, movie, .含有anchor/hyperlinks, 形成hypertext: “a mesh of documents tied by hyperlinks”. hypermedia:hypertext + multimediaactive web pages: 含有在瀏覽器方可以執(zhí)行的程序,Java applet, JavaScript, 5Hypertext通過“anchor”實現(xiàn)非線性文檔 Peking University 1945年Vannevar B

4、ush提出概念1960年Douglas Engelbart做出一系統(tǒng) (當時并沒有Internet)Web是Hypertext在Internet上的應用.6Web文檔的分類(生成時間)靜態(tài)文檔動態(tài)文檔活動文檔7Web多媒體文檔在瀏覽器方的展現(xiàn)瀏覽器事先對文檔的內(nèi)容一無所知, 為什么能夠?qū)⑺@示成如文檔編寫者所設計的樣子?可能的做法之一: 讓文檔的編寫者在文檔頭部給出描述.Web的設計比這稍微進了一步: Web服務器根據(jù)文件的擴展名來給出文檔類型的宏觀描述, 這種描述借用了MIME標準.8MIME Multipurpose Internet Mail Extension一個開放的多語言、多媒體電

5、子郵件標準, 規(guī)定了不同數(shù)據(jù)類型的名字. Web僅用到它的一個子集IANA (Internet Assigned Numbers Authority)負責不同類型電子郵件規(guī)范的注冊登記基本形式:Type/subtypetextmessageimageaudiovideoapplicationextensions9文件的擴展名和MIME類型的對應(例).html HTML文本, text/html.txt 純文本.ps PostScript.ra RealAudio格式的語音.gif GIF 圖像, image/gif.jpeg JPEG 圖像.mpeg MPEG 視頻.wrl VRML 三維場

6、景.class Java applet這不是全部, 還有許多 !10服務器通常支持這種對應關系的設置例如html, htm都可以是text/html設置通常在服務器的配置文件中11Web是“站”在TCP/IP之上的12Web是TCP/IP上的一個應用從TCP/IP來看, WEB (HTTP)和TELNET, FTP, GOPHER, WAIS等沒什么區(qū)別MAC地址, IP地址, 服務地址(port number). Web的缺省服務地址是80.服務地址可以設置, 于是我們可能有時看到:8800/之類.什么叫一次TCP/IP連接 ?13Web(新)技術的三個方面

7、(1)(這里的“新”指的是web從無到有的“enabling technology”,即Tim Berners-Lee的最初貢獻)URL, Uniform Resource Locator. Web信息的尋址系統(tǒng)(address system).借用了DNS, Domain Name Service, 的mapping功能http:/ - 15協(xié)助HTTP將各種信息服務統(tǒng)一在瀏覽器中15 - 15:port14URL- Web(新)技術的三個方面(1)格式::指所用的URL方案名 意義的解釋與所用方案有關。mailto:15HTTP, HyperText Transfer Protocol,

8、“The lingua franca” of Web browsers and servers.請求/響應(request-response)工作方式利用TCP/IP實現(xiàn)瀏覽器和服務器之間的連接為社么常聽人們說“HTTP是無連接的協(xié)議”?(connectionless) 還有說“HTTP是無狀態(tài)的”?(stateless)Web(新)技術的三個方面(2)16HTML, HyperText Markup Language, 網(wǎng)頁編寫語言,向瀏覽器提供Web document的“排版”信息和hypermedia文檔的鏈接關系。它使得在網(wǎng)頁中不僅有 還有, 等等Whats the differenc

9、e ?Web(新)技術的三個方面(3)17從一次“click”到一張webpage瀏覽器用URL查詢DNS, DNS訪回IP地址.瀏覽器用這個IP地址建立一次TCP/IP連接.瀏覽器通過該連接向服務器發(fā)一HTTP請求.基于該請求的內(nèi)容, 服務器找到相應的文件, 并根據(jù)該文件的擴展名, 形成一個MIME類型的HTTP回答消息, 發(fā)送給瀏覽器. 關閉本次連接. 根據(jù)消息頭, 瀏覽器按某種方式顯示該文件內(nèi)容. 如果本文件中有之類,瀏覽器將隨時發(fā)出新的請求(可能對不同的服務器),以獲得有關內(nèi)容。18Web服務器(軟件)“很簡單”!它不懂HTML(瀏覽器必須懂!)它對web文件的內(nèi)容一概不關心(除后面要

10、講到的特殊情況外)它也不知道是否有別的文件指向它所管轄的文件它也不知道自己所給出的文件MIME類型正確與否19HTTP: 請求與應答規(guī)定了請求與應答的格式?jīng)]有規(guī)定網(wǎng)絡連接的方式(通常采用TCP/IP)純文本,沒有特殊編碼20方法:指定對所請求對象的操作。URI, Universal Resource Identifier, 標識所請求的對象。URL的一個超集(HTTP實際用的只是URL). 還有所謂URN, 試圖將信息資源的名字和位置分別開來協(xié)議版本號其它信息(選項)HTTP請求的四個組成部分21method location ver. GET /funny/silly.html HTTP/1

11、.0user-agent: user-agent: NCSA Mosaicif-modified-since: accept: text/plainaccept: accept: text/html accept: application/postscriptaccept: accept: image/gifauthorizationHTTP請求示例22HTTP請求的方法GET:返回所指對象HEAD:返回關于對象的信息,例如它已存在的時間等POST:將某種信息送給服務器/對象PUT:用一個新拷貝將對象替換DELETE:刪除對象other23HTTP回答的四個組成部分狀態(tài)行:版本號,狀態(tài)碼,解釋

12、200 Document follows404 Not found401 Unauthorized, 等等關于返回內(nèi)容的描述:MIME類型, 長度,等.空格返回內(nèi)容24HTTP回答的格式版本 狀態(tài)碼 原因 HTTP/1.0 status 200 Doc follows服務器: Server: NCSA/1.4日期: Date: Tue, 4 Jul, 1996, 19:17:05 GMT內(nèi)容長度: Content-length: 5280內(nèi)容類型: Content-type: text/html內(nèi)容語言: Last-modified: Wed, 1 Jan 1996.內(nèi)容編碼: (這里必須空一

13、行)最后修改日期: 文件的實際內(nèi)容 (空一行)實際信息25一個例子:10鐘速成HTMLMy first HTML documentHello world! 26More attractiveadding headings and paragraphsAn important headingA slightly less important headingThis is the first paragraph.This is the second paragraph.27More attractiveadding a bit of emphsisinteresting 28More attrac

14、tiveadding images29More attractive-adding links to other pagesPeking University定義錨: 這是錨一所在位置引用錨:詳細內(nèi)容請參閱錨一詳細內(nèi)容請參閱錨一30Three kinds of lists-unordered listthe first list itemthe second list itemthe third list item31Three kinds of lists-ordered listthe first list itemthe second list itemthe third list it

15、em32Three kinds of lists-definition listthe first termits definitionthe second termits definitionthe third termits definition33Adding tables in your pages ABCDEFG 1234567 xyz a b c 1 2 3 34幾種輔助頁面技術CookieServer Push Client PullSSI(Server Side Include) 35Cookie-曲奇餅干是從服務器發(fā)給瀏覽器的一種特殊形式的信息,瀏覽器不是將這些信息顯示出來,

16、而是記錄在客戶機的一個特定文件中,可以實現(xiàn)服務器和瀏覽器之間的某種持續(xù)的關系。36Server Push Web服務器可以向瀏覽器返回一個“回答序列”,序列中的每個元素可以看作是一個獨立的HTML文本,在瀏覽器方一個接一個顯示,從而造成一種動態(tài)效果。這種序列使用一種特殊的MIME類型,multipart/mixed,或multipart/x-mixed-replaced,來說明。值得注意的是,HTTP連接一直在保持著,直到服務器知道自己已結束發(fā)送數(shù)據(jù)并發(fā)送一個結束信號,或者客戶端中斷連接。適合小文件,短時間間隔,例如小圖像的動畫。 37Client Pull服務器可以通過CGI腳本返回一種類型

17、為“Refresh”的HTTP應答,或者在HTML文本中的部分用標記模擬這種應答,從而是瀏覽器每隔一定時間自動發(fā)出一次新的網(wǎng)頁請求。38例:瀏覽器重新下載網(wǎng)頁 Demo Client Pull Technology Insert your text or graphics here 這將引起瀏覽器每隔5秒重新下載一次該網(wǎng)頁 39例:網(wǎng)頁交替出現(xiàn)Doc1.html則這兩張網(wǎng)頁將每隔30秒交替出現(xiàn)。上面的META標記相當于HTTP回答中有 Refresh :30; RL=http:/./doc2.html”的效果。Doc2.html 則這兩張網(wǎng)頁將每隔30秒交替出現(xiàn)。上面的META標記相當于HTT

18、P回答中有 Refresh :30; RL=http:/./doc1.html”的效果。40SSI(Server Side Include)SSI技術使服務器能夠在網(wǎng)頁中插入數(shù)據(jù)。這樣的網(wǎng)頁通常以.shtml作為擴展名,對應的MIME類型text/x-server-parsed-html將它施加于HTML文檔時,能夠使文檔增加一些實時功能,顯示時間、查詢、或更新數(shù)據(jù)庫,發(fā)送電子郵件等。 41SSISSI與HTTP服務器密切相關,并不是所有的服務器都能支持SSI。SSI記號的基本格式為: !-#-Tag:echo,include,fsize,flastmod,exec,config,email,

19、if,goto,label,break 4243關于JavaJava的歷史和現(xiàn)狀與Java有關的“形容詞”simple, object-oriented, distributed, compiled/interpreted, robust, secure, architecture neutral, high-performance, multithreaded, and dynamic不把Java僅當作是一種語言Java語言, Java應用程序開發(fā)界面 (APIs), Java虛擬機、執(zhí)行環(huán)境Java的未來44Java語言: 從21天到12小時 !對象模型Java的類和對象(一般, 抽象,

20、interface)繼承機制 (單繼承, 多實現(xiàn))名空間及訪問規(guī)則package, class/object, member, 局部變量public, private, protected, default其它異常、線程、Applet, 等45Java系統(tǒng)環(huán)境一覽: 運行機制Javabytecodemove locallyor throughnetworkClass LoaderBytecodeVerifierJava classlibrariesOperating SystemHardwareJavaCompilerJavasourceJavabytecodeJavaInterpreterJ

21、ust-in-timeCompilerRuntime SystemCompile-timeRuntimeJavaVirtualMachine46第一個Java應用程序在當前目錄中, 建文件firstjava.javapublic class firstjava public static void main (String argv) System.out.println(“Hi, “+argv0); cdir javac firstjava.javacdir java firstjava “my first Java program runs !”(1) 類名和文件名的一致性; (2) 命令

22、行參數(shù)的獲取;(3) 字符串的拼接; (4) System.out.println()的含義47Java APIs: Java體系最活躍的部分一個Framework由多個API組成;一個API可能含有多個package;一個package中有多個class.Java AWT - 窗口及界面APIJDBC - 數(shù)據(jù)庫操作API, Java Framework for Commerce的一部分JavaBean - 編寫構件的APIRMI - 遠程方法調(diào)用API.48Java的歷史 (1)工作起始于1990年, 旨在開發(fā)用于為家用電器編程的語言和環(huán)境 (Sun 公司, James Gosling).

23、 語言最初的名字為Oak.1991年起在Green, VOD項目中得到首次應用, 系統(tǒng)在應用中得到培育和完善.1994年World Wide Web興起.1995年4月宣布Java和HotJava.1995年5月Netscape向Sun購買了Java使用權, 將其包含到Netscape 2.0中.49Java的歷史 (2)1995年11月推出JDK 1.0 beta版1995年12月Business Week稱Java是推動Web/Internet發(fā)展的一種突破性力量, 同時也認為“Java as a business“還不清楚.從1995年12月到1996年4月, 許多計算機公司紛紛表示對J

24、ava的認同, 宣布要將Java運行環(huán)境作為其操作系統(tǒng)的一部分. Apple HP Hitachi IBM Microsoft Novell SGI SunSoft SCO Tandem.50Java的現(xiàn)狀 1996, 97, 98年, JavaOne大會, 5000, 10000人200多本書, 幾十萬程序員JDK 1.0, 1.1, 1.2 (語言、虛擬機、基本類庫)Java Foundation Class (JFC, Javasoft)Application Foundation Class (AFC, Microsoft)Internet Foundation Class (IFC,

25、 Netscape)Personal Java, Embedded Java不少研究努力旨在提高Java的運行速度, HPJava.51Java Foundation Class (JFC)FrameworksAPIsLanguagebytecodeJDK 1.2Peerless Components3D APIaccessibilityPluggable look & feelDrag & DropJava總覽52與Java有關的“形容詞”(1) Java:A simple, object-oriented, distributed, compiled/interpreted, robust

26、, secure, architecture neutral, high-performance, multithreaded, and dynamic language.53與Java有關的“形容詞”(2)Simple (與C, C+, Fortran等相比)“小”語言沒有struct, union, goto, #define 沒有多繼承容易學 ?Object-oriented程序完全由類構成, 寫程序就是描述類程序中幾乎所有的東西都是“對象”54與Java有關的“形容詞”(3)DistributedAppletURL類便利了從WEB上讀取文件RMI支持遠程方法調(diào)用底層網(wǎng)絡支持, sock

27、ets, datagramsCompiled/interpreted源程序被編譯成bytecode, 類文件bytecode被Java虛擬機(JVM)解釋執(zhí)行55與Java有關的“形容詞”(4)Robust - 程序一旦調(diào)好, 一般不會因為數(shù)據(jù)的不同出錯.編譯時嚴格的類型檢查沒有指針, 動態(tài)檢查數(shù)組界自動廢料收集防止了“memory leak”.優(yōu)越的異常處理方式, try/catch/finally56與Java有關的“形容詞”(5) Secure存儲保護 (no pointer, array bounds checking, )bytecode驗證 (運行時, stack的一致性)“砂箱模

28、型” (sandbox), 限制某些程序的能力數(shù)字簽名57與Java有關的“形容詞”(6)Architecture neutral - “Write once, run anywhere !”bytecode與平臺無關 (PC, Mac, UNIX)對基本數(shù)據(jù)類型格式的嚴格規(guī)定High-performance, though not as fast as C對交互式界面及網(wǎng)絡應用足夠好與圖形、串有關的操作直接在VM實現(xiàn)Native method, JIT compiler.58與Java有關的“形容詞”(7)Multithreaded在語言級提供對“線程”的支持 (自然也有類一級的支持)Dyn

29、amic類的動態(tài)加載, java.lang.ClassLoader運行時進行動態(tài)方法查找(dynamic method lookup)59Dynamics (continued)class / say, file name ABC.javapublic void g() System.out.println(“This is from A”); class B extends A public void g() System.out.println(“This is from B”);class C extends B 60Dynamics (continued)class D / in di

30、fferent compilation unit D.java public static void main (String argv) C x = new C(); x.g(); / What output to be expected ? What if ABC.java is modified and recompiled (but D.java is not recompiled) so that class C also contains a method g() producing “This is from C” ?61Java應用程序開發(fā)界面(APIs)java.beans

31、(JavaBean, Java的構件技術)java.lang.reflect, JARjava.sql (JDBC, 連接數(shù)據(jù)庫)java.rmi (RMI, 遠程方法調(diào)用)java.awt (支持GUI設計)java.awt.datatransfer, java.awt.event, java.awt.image, java.awt.peer62Java虛擬機一個程序(ANSI C), 以Java類文件為數(shù)據(jù)類文件的格式big endian 數(shù)據(jù)表示方式以棧 (stack) 為基礎的體系結構指令的操作數(shù)來自于棧操作結果放回棧棧的大小在編譯時靜態(tài)決定63Java的未來JFC的不斷完善高性能Java (HP

溫馨提示

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

評論

0/150

提交評論