01第一章 網(wǎng)絡(luò)程序設(shè)計基礎(chǔ) t_第1頁
01第一章 網(wǎng)絡(luò)程序設(shè)計基礎(chǔ) t_第2頁
01第一章 網(wǎng)絡(luò)程序設(shè)計基礎(chǔ) t_第3頁
01第一章 網(wǎng)絡(luò)程序設(shè)計基礎(chǔ) t_第4頁
01第一章 網(wǎng)絡(luò)程序設(shè)計基礎(chǔ) t_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第一章網(wǎng)絡(luò)程序設(shè)計基礎(chǔ)

1第1章 Java網(wǎng)絡(luò)編程入門1.1網(wǎng)絡(luò)程序設(shè)計簡介1.2計算機網(wǎng)絡(luò)體系結(jié)構(gòu)

1.3Java支持的網(wǎng)絡(luò)程序技術(shù)1.4網(wǎng)絡(luò)程序設(shè)計架構(gòu)2計算機網(wǎng)絡(luò)概念是現(xiàn)代通信技術(shù)與計算機技術(shù)相結(jié)合的產(chǎn)物。把處于不同地理位置、具有獨立功能的計算機通過通信設(shè)備及傳輸媒體互連起來,在通信軟件和網(wǎng)絡(luò)協(xié)議的支持下,實現(xiàn)計算機之間資源共享、信息交換或協(xié)同工作的系統(tǒng),稱為計算機網(wǎng)絡(luò),簡稱網(wǎng)絡(luò)。3在網(wǎng)絡(luò)中,不同設(shè)備之間的通信是通過一組預(yù)先定義好的規(guī)則進行的,這組規(guī)則就是通常所說的網(wǎng)絡(luò)協(xié)議。網(wǎng)絡(luò)協(xié)議描述了計算機發(fā)送信息所應(yīng)具有的格式,以及對收到的信息應(yīng)作出何種響應(yīng)。網(wǎng)絡(luò)協(xié)議的存在,使得開發(fā)人員能夠使用不同的程序設(shè)計語言,以不同的數(shù)據(jù)結(jié)構(gòu)和命令代碼,獨立地開發(fā)和實現(xiàn)分布式應(yīng)用程序的不同部分。在Internet中,最主要的網(wǎng)絡(luò)協(xié)議是TCP(TranslationControlProtocol)協(xié)議和IP(InternetProtocol)協(xié)議。有了協(xié)議才能有網(wǎng)絡(luò)的正常通信,最終才能進行網(wǎng)絡(luò)編程實現(xiàn)網(wǎng)絡(luò)應(yīng)用。4甲給乙郵寄一封信,甲不必親自把信送到乙家里,送信的任務(wù)由郵政網(wǎng)絡(luò)來完成。甲只需提供乙的地址,郵政網(wǎng)絡(luò)就會準確地把這封信送達目的地址。在這個過程中,各方都必須遵循一定的規(guī)則,即協(xié)議,否則信件就不一定到達目的地。同樣,服務(wù)器程序與客戶端程序只關(guān)心發(fā)送什么樣的數(shù)據(jù)給對方,而不必考慮如何把這些數(shù)據(jù)傳輸給對方。傳輸數(shù)據(jù)的任務(wù)由計算機網(wǎng)絡(luò)來完成,如圖1-1所示。這個過程中同樣要遵守一定的協(xié)議,工作才能干好。1.1網(wǎng)絡(luò)程序設(shè)計簡介5

圖1-1客戶端和服務(wù)器的通信過程6以上說明三個問題:網(wǎng)絡(luò)應(yīng)用程序設(shè)計需要建立在計算機網(wǎng)絡(luò)基礎(chǔ)上;計算機網(wǎng)絡(luò)要遵循一定的網(wǎng)絡(luò)協(xié)議;客戶端與服務(wù)器要建立連接,實現(xiàn)通訊。目前網(wǎng)絡(luò)程序設(shè)計比較成熟的語言和技術(shù)有Java技術(shù)和.net技術(shù),分別屬于Sun公司和微軟公司。網(wǎng)絡(luò)程序設(shè)計一般采用客戶端與服務(wù)器(C/S)或瀏覽器與服務(wù)器(B/S)結(jié)構(gòu),這些結(jié)構(gòu)將在“1.4網(wǎng)絡(luò)程序設(shè)計架構(gòu)”節(jié)中介紹;客戶端與服務(wù)器結(jié)構(gòu)的網(wǎng)絡(luò)編程將分別在第2、3、4、5章介紹;瀏覽器與服務(wù)器(B/S)結(jié)構(gòu)的網(wǎng)絡(luò)程序設(shè)計將在第6章介紹,其核心技術(shù)將在第7、8、9、10章介紹,也稱之為JSPWeb開發(fā)核心技術(shù)。7計算機網(wǎng)絡(luò)協(xié)議是采用分層結(jié)構(gòu),將在“1.2計算機網(wǎng)絡(luò)體系結(jié)構(gòu)”節(jié)中介紹??蛻舳伺c服務(wù)器建立連接,并實現(xiàn)通信是采用抽象網(wǎng)絡(luò)套接字(Socket)對象的方式實現(xiàn)連接和通信。將在第3章的“3.1套接字Socket和Socket通信基礎(chǔ)”節(jié)中介紹。套接字(Socket)封裝了復(fù)雜的TCP/IP協(xié)議簇,形成了Socket抽象層,由它去應(yīng)對復(fù)雜的網(wǎng)絡(luò)間通信,并符合指定的協(xié)議,實現(xiàn)對應(yīng)的連接和通信,這樣對用戶來說非常方便。81.2

計算機網(wǎng)絡(luò)體系結(jié)構(gòu)1.2.1OSI分層結(jié)構(gòu)91.2.2Internet體系結(jié)構(gòu)101.2.3傳輸控制協(xié)議TCP協(xié)議(1)TCP協(xié)議概述TCP協(xié)議是TCP/IP協(xié)議體系中面向連接的傳輸層協(xié)議,它提供全雙工的和可靠的服務(wù)。如圖1-5所示是TCP協(xié)議發(fā)送報文段的過程示意圖。圖中是一個方向的數(shù)據(jù)流,實際上,只要建立了TCP協(xié)議連接,就能支持同時雙向通信的數(shù)據(jù)流。發(fā)送端的應(yīng)用進程不斷地將數(shù)據(jù)塊陸續(xù)寫入到TCP協(xié)議的發(fā)送緩存中,將其組成TCP協(xié)議報文段(Segment),逐個傳送給網(wǎng)際層,然后發(fā)送出去。接收端從網(wǎng)際層收到TCP協(xié)議報文段后,先將其暫存在接收緩存中,接收端的應(yīng)用進程從接收端的緩存中逐個讀取數(shù)據(jù)塊11圖1-5TCP協(xié)議發(fā)送報文段的示意圖12(2)TCP協(xié)議報文段的首部一個TCP協(xié)議報文段分為首部和數(shù)據(jù)兩部分,如圖1-6所示。報文段首部的前20B是固定的,后面可以根據(jù)需要而增加,因此TCP協(xié)議的首部的最小長度是20B。13圖1-6TCP協(xié)議報文段的首部14(3)TCP協(xié)議數(shù)據(jù)編號與確認TCP協(xié)議是面向字節(jié)的,TCP協(xié)議將所要傳送的整個報文看成是一個個字節(jié)組成的數(shù)據(jù)流,并使每一個字節(jié)對應(yīng)于一個序號。在建立連接時,雙方要商定初始序號,TCP協(xié)議每次發(fā)送報文段的首部中的序號字段數(shù)值表示該報文中數(shù)據(jù)部分的第一個字節(jié)序號。TCP協(xié)議的確認是對接收到數(shù)據(jù)的最高序號表示確認。確認號表示接收端期望下次收到的數(shù)據(jù)中的第一個數(shù)據(jù)字節(jié)的序號。當(dāng)TCP協(xié)議發(fā)送一個報文段時,它同時也在自己的重傳隊列中存放一個副本。若收到確認,則刪除此副本。若在計時器時間到來之前沒有收到確認,則重傳此報文段的副本。TCP協(xié)議的確認并不保證已由應(yīng)用層交付給了接收端用戶,而只是表明在接收端的TCP協(xié)議收到了對方所發(fā)送的報文段。15(4)TCP協(xié)議流量控制與擁塞控制為了提高報文段的傳輸效率,TCP協(xié)議采用大小可變的滑動窗口進行流量控制。在TCP協(xié)議報文段首部窗口字段寫入的數(shù)值就是當(dāng)前給對方設(shè)置的發(fā)送窗口數(shù)值的上限。發(fā)送窗口在連接建立時由雙方商定。但在通信的過程中,接收端可根據(jù)自己的資源情況,隨時動態(tài)調(diào)整對方發(fā)送窗口的上限值(可增大或減小)。16(5)TCP協(xié)議的重傳機制重傳機制是TCP協(xié)議中最重要和最復(fù)雜的問題之一。TCP協(xié)議每發(fā)送一個報文段,就對這個報文段設(shè)置一次計時器。只要計時器設(shè)置的重傳時間到來但還沒有收到確認,就要重傳這一個報文段。17(6)TCP協(xié)議的傳輸連接管理傳輸連接有三個階段,即連接建立、數(shù)據(jù)傳送和連接釋放。連接建立過程中要解決以下三個問題:18①使每一方能夠確認對方的存在;②允許雙方協(xié)商一些參數(shù)(如最大報文段長度、最大窗口大小、服務(wù)質(zhì)量等);③能夠?qū)\輸實體資源(如緩存大小、連接表中的項目等)進行分配。TCP協(xié)議連接的建立都是采用客戶端/服務(wù)器方式。主動發(fā)起連接建立的應(yīng)用進程稱為客戶端(Client)。被動等待連接建立的應(yīng)用進程稱為服務(wù)器(Server)。19

圖1-8用三次握手建立TCP連接TCP協(xié)議連接過程如圖1-8所示,稱為三次握手過程。其具體過程描述如下:20圖1-8用三次握手建立TCP連接21①主機A的TCP協(xié)議向主機B發(fā)出連接請求報文段,其首部中的同步比特SYN置為1,并選擇序號x,表明傳送數(shù)據(jù)時第一個數(shù)據(jù)字節(jié)的序號是x。主機B的TCP協(xié)議收到連接請求報文段后,如同意,則發(fā)回確認號ACK。②主機B在確認報文段中將SYN置為1,其確認號為x+1(即ACK),同時選擇序號y。③主機A收到此報文段后,向主機B給出確認,其確認號為y+1。主機A的TCP協(xié)議通知上層應(yīng)用層,連接已經(jīng)建立。當(dāng)主機B的TCP協(xié)議收到主機A的確認后,也通知其上層應(yīng)用層,連接已經(jīng)建立。在數(shù)據(jù)傳輸結(jié)束后,通信的雙方都可以發(fā)出釋放連接的請求。221.2.4網(wǎng)際協(xié)議IP網(wǎng)際協(xié)議IP是TCP/IP體系中兩個最主要的協(xié)議之一。與IP協(xié)議配套使用的還有四個協(xié)議:地址解析協(xié)議(AddressResolutionProtocol,ARP)、逆地址解析協(xié)議(ReverseAddressResolutionProtocol,RARP)、互聯(lián)網(wǎng)控制報文協(xié)議(InternetControlMessageProtocol,ICMP)、互聯(lián)網(wǎng)組管理協(xié)議(InternetGroupManagementProtocol,IGMP)。23(1)IP地址為了使連入Internet的眾多計算機在通信時能夠相互識別,Internet中的每一臺主機都分配有一個唯一的32位二進制地址,稱為IP地址,也稱做網(wǎng)際地址,它是Internet主機的一種數(shù)字型標識。IP地址的32位二進制數(shù),由4個字節(jié)組成,并分成4組,每組為1B(8bit),各組之間用一個小圓點“.”分開。例如,某臺計算機的IP地址可表示為11001010.01100011.01100000.10001100。為了便于記憶,通常把每一組二進制數(shù)轉(zhuǎn)換成相應(yīng)的十進制數(shù),即這臺主機的IP地址是40。24IP地址分為五類,即A類地址、B類地址、C類地址、D類地址和E類地址。每一類地址都由兩部分組成,網(wǎng)絡(luò)號net-id,標識主機(或路由器)所連接到的網(wǎng)絡(luò)編號;主機號host-id,標識該主機(或路由器)編號。25如圖1-9所示中給出了各類IP地址的網(wǎng)絡(luò)號和主機號。圖1-9IP地址中的網(wǎng)絡(luò)號字段和主機號字段26常用IP地址的使用范圍如表1-1所示

網(wǎng)絡(luò)類別最大網(wǎng)絡(luò)數(shù)第一個可用的網(wǎng)絡(luò)號最后一個可用的網(wǎng)絡(luò)號每個網(wǎng)絡(luò)中最大的主機數(shù)A126(27-2)112616777214B16384(214)128.0191.25565534C2097152(221)192.0.0223.255.25525427(2)物理地址物理地址也稱為MAC地址,由網(wǎng)絡(luò)設(shè)備制造商生產(chǎn)時寫在網(wǎng)絡(luò)硬件內(nèi)部。MAC地址在計算機里是以48位二進制數(shù)來表示的,通常表示為12個十六進制數(shù),每2個十六進制數(shù)之間用冒號隔開,如08:00:20:0A:8C:6D。其中,前6位十六進制數(shù)08:00:20代表網(wǎng)絡(luò)硬件制造商的編號,它是由IEEE(電氣與電子工程師協(xié)會)分配的;而后3位十六進制數(shù)0A:8C:6D代表該制造商所制造的某個網(wǎng)絡(luò)產(chǎn)品(如網(wǎng)卡)的系列號。MAC地址在全世界是唯一的。28(3)地址解析協(xié)議(AddressResolutionProtocol,ARP)當(dāng)在瀏覽器里面輸入網(wǎng)址時,DNS服務(wù)器會自動把它解析為IP地址,瀏覽器實際上查找的是IP地址而不是網(wǎng)址。29在局域網(wǎng)中,這是通過ARP協(xié)議來完成的。在每臺安裝有TCP/IP協(xié)議的計算機里都有一個ARP緩存表,保存其所在局域網(wǎng)上的所有主機和路由器的IP地址到硬件地址的映射表。當(dāng)主機A要向本局域網(wǎng)上的某個主機B發(fā)送IP數(shù)據(jù)報時,首先在其ARP高速緩存中查看有無主機B的IP地址。如存在就可查出其對應(yīng)的硬件地址,再將此硬件地址寫入MAC幀,然后根據(jù)此地址發(fā)送數(shù)據(jù)即可。ARP緩存表采用老化機制,在一段時間內(nèi)如果表中的某一行沒有使用,就會被刪除,這樣可以大大減少ARP緩存表的長度,加快查詢速度。30從IP地址到硬件地址的解析是自動進行的,主機用戶不知道這種地址解析過程。只要主機或路由器要和本網(wǎng)絡(luò)上的另一個已知IP地址的主機或路由器進行通信,ARP協(xié)議就會自動將該IP地址解析為鏈路層所需的硬件地址。31(4)反向地址解析協(xié)議(ReverseAddressResolutionProtocol,RARP)反向地址解析協(xié)議RARP允許局域網(wǎng)的物理主機從網(wǎng)關(guān)服務(wù)器的ARP緩存上請求其IP地址。網(wǎng)絡(luò)管理員在局域網(wǎng)網(wǎng)關(guān)路由器里創(chuàng)建一個表以映射物理地址(MAC)和與其對應(yīng)的IP地址。當(dāng)設(shè)置一臺新的機器時,其RARP客戶機程序需要向路由器上的RARP服務(wù)器請求相應(yīng)的IP地址。假設(shè)在路由表中已經(jīng)設(shè)置了一個記錄,RARP服務(wù)器將會返回IP地址給機器,此機器就會存儲以便日后使用。32(5)數(shù)據(jù)包“包”(Packet)是TCP/IP協(xié)議通信傳輸中的數(shù)據(jù)單位,一般也稱“數(shù)據(jù)包”,它是工作在網(wǎng)絡(luò)層和傳輸層的數(shù)據(jù)單位。33可以用一個較形象的例子對數(shù)據(jù)包的概念加以說明:我們在郵局郵寄產(chǎn)品時,雖然產(chǎn)品本身帶有自己的包裝盒,但是在郵寄的時候只用產(chǎn)品原包裝盒來包裝顯然是不行的。必須把內(nèi)裝產(chǎn)品的包裝盒放到一個郵局指定的專用紙箱里,這樣才能夠郵寄。這里,產(chǎn)品包裝盒相當(dāng)于數(shù)據(jù)包,里面放著的產(chǎn)品相當(dāng)于可用的數(shù)據(jù),而專用紙箱就相當(dāng)于前面講過的數(shù)據(jù)幀(工作在數(shù)據(jù)鏈路層的數(shù)據(jù)單位)。一個幀中只有一個數(shù)據(jù)包。34數(shù)據(jù)包主要由目的IP地址、源IP地址、凈載數(shù)據(jù)等部分構(gòu)成。數(shù)據(jù)包的結(jié)構(gòu)與我們平常寫信非常類似,目的IP地址是說明這個數(shù)據(jù)包是要給誰發(fā)的,相當(dāng)于收信人地址;源IP地址是說明這個數(shù)據(jù)包是發(fā)自哪里的,相當(dāng)于發(fā)信人地址;而凈載數(shù)據(jù)相當(dāng)于信件的內(nèi)容。正是因為數(shù)據(jù)包具有這樣的結(jié)構(gòu),安裝了TCP/IP協(xié)議的計算機之間才能相互通信。我們在使用基于TCP/IP協(xié)議的網(wǎng)絡(luò)時,在網(wǎng)絡(luò)中其實傳遞的就是數(shù)據(jù)包。351.3Java支持的網(wǎng)絡(luò)程序技術(shù)36Java語言是SUN公司推出的編程語言。由于其具有跨平臺的特性而得到了廣泛的應(yīng)用。隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,Java在網(wǎng)絡(luò)編程方面的優(yōu)勢更加突出。Java語言的API(ApplicatiinProgrammingInterface)中包含了很多與網(wǎng)絡(luò)編程相關(guān)的類和接口。大部分位于、和等包內(nèi)。通過這些類和接口,可以方便地編寫與網(wǎng)絡(luò)相關(guān)的各種應(yīng)用程序,訪問網(wǎng)絡(luò)資源。其網(wǎng)絡(luò)方面的應(yīng)用主要集中在以下8個方面:37①Java小應(yīng)用程序(Applet)Applet程序嵌在超文本置標語言(HypertextMarkupLanguage,HTML)文件中,通過網(wǎng)絡(luò)下載Applet程序代碼到本地具有Java虛擬機的瀏覽器中執(zhí)行。②HTTP協(xié)議訪問:使用URL獲取Web資源。③Socket應(yīng)用:實現(xiàn)Client/Server模式的網(wǎng)絡(luò)Socket數(shù)據(jù)通訊。④UDP數(shù)據(jù)報:提供UDP通信機制,如多媒體組播服務(wù)。⑤Servlet/JSP(JavaServerPage,Java服務(wù)器網(wǎng)頁):實現(xiàn)Web服務(wù)器的動態(tài)網(wǎng)頁編程。⑥JDBC(JavaDatabaseConnectivity,Java數(shù)據(jù)庫連接):通過網(wǎng)絡(luò)訪問數(shù)據(jù)庫。⑦RMI(RemoteMethodInvacation,遠程調(diào)用執(zhí)行):實現(xiàn)分布式的網(wǎng)絡(luò)應(yīng)用。⑧Jini(JavaIntelligentNetworkInfrastructure,Java智能網(wǎng)絡(luò)架構(gòu)):Sun公司的研究與開發(fā)項目,它能極大擴展Java技術(shù)的能力。Jini的目標是最大限度地簡化與網(wǎng)絡(luò)的交互性。381.3.1使用包數(shù)據(jù)傳輸在Java語言中,提供網(wǎng)絡(luò)功能的類和接口主要分為三種:①URL(UniformResourceLocators,統(tǒng)一資源定位器):屬于網(wǎng)絡(luò)應(yīng)用中的高級應(yīng)用。通過指定的URL對象,能夠很容易地確定網(wǎng)絡(luò)資源的位置;使用這種方式,Java程序可以直接讀取或傳送數(shù)據(jù)到網(wǎng)絡(luò)中。②套接字Socket:Socket是實現(xiàn)進程通信的方式,多用于TCP/IP網(wǎng)絡(luò)協(xié)議下。③數(shù)據(jù)報Datagram:與其他網(wǎng)絡(luò)數(shù)據(jù)傳輸不同,使用Datagram方式時,只是將需要傳輸出的數(shù)據(jù),按照指定的地址發(fā)送出去,并不保證數(shù)據(jù)能夠準確、安全地送到指定地點,同時也不能確定送到的時間。UDP套接字就是采用數(shù)據(jù)報Datagram方式。39類名描述InetAddress用于封裝IP地址的Java類URL用于封裝URL的Java類,可以使用URL的對象記錄URL的完整信息URLConnectionURLConnection是一個抽象類,代表與URL所指定數(shù)據(jù)源的連接情況,可以通過該類的對象與服務(wù)器在任意時刻進行交互Socket客戶端程序使用Socket類,建立與服務(wù)器的套接字連接ServerSocket服務(wù)器端程序使用ServerSocket類,建立接收客戶端套接字的服務(wù)器套接字401.3.2Java的安全性隨著Internet越來越廣泛地深入到人們的日常生活和工作,網(wǎng)絡(luò)中數(shù)據(jù)傳輸?shù)陌踩珕栴}也越來越為人們所關(guān)注。電子商務(wù)依托的主要環(huán)境是當(dāng)前的國際互聯(lián)網(wǎng)和未來的國際信息基礎(chǔ)設(shè)施。網(wǎng)絡(luò)是從事電子商務(wù)機構(gòu)必須的工作環(huán)境。開放網(wǎng)絡(luò)帶來了全球可達、全天候服務(wù)、自由瀏覽等共享信息的較多好處。任何交易都要圍繞網(wǎng)絡(luò)來展開,開放的網(wǎng)絡(luò)環(huán)境和安全要求客觀上成為一對矛盾,帶來許多需要關(guān)注解決的安全問題。41任何一臺連網(wǎng)的計算機都有可能介入其他計算機的通信過程從而造成安全問題。簡單地說,有如下三種危險:(1)竊聽傳輸?shù)拿舾袛?shù)據(jù)被截獲,其保密性被破壞,如網(wǎng)上購物時輸入的信用卡賬號被盜用等。(2)篡改傳輸數(shù)據(jù)被截獲后替換成其他數(shù)據(jù)發(fā)送給接收者,如網(wǎng)絡(luò)黑客修改他人的數(shù)據(jù)。(3)偽裝一臺計算機被人為地偽裝為某個Web站點,發(fā)布錯誤虛假消息。如假銀行網(wǎng)站。42在Java語言中,對SSL協(xié)議的支持是通過一個稱為JSSE(JavaSecureSocketExtension,Java安全套接字擴展)的API包所實現(xiàn)的。JSSE解決了SSL協(xié)議中關(guān)于通信的客戶和服務(wù)器程序需在應(yīng)用層程序開始通信之前協(xié)商加密算法和認證機構(gòu)的工作,這樣就可以編寫安全套接字通信程序。JSSE最早是作為J2SDK1.2和1.3版本的一個可選包,現(xiàn)在已經(jīng)被集成到J2SDK1.4版本中,它是.ssl包中的類和接口。43Java的安全模式包括三層:①Java語言本身。②Java編譯器和run-time(運行時)系統(tǒng)。③SecurityManager類。44Java編譯器和run-time系統(tǒng)安全層提供了必要的功能,以確保Java系統(tǒng)不會因無效代碼而崩潰。它提供了一個簡單的,并由以下3個子層所組成的安全運行環(huán)境:①Java字節(jié)代碼解釋器和類格式校驗。②一個在運行時動態(tài)裝載和檢查庫的機制。③自動的垃圾回收機制。45以上三層合在一起,提供了一個稱為沙箱(Sandbox)的非常嚴格的環(huán)境,在這個沙箱中,可以運行那些不可靠的代碼或者Applet。沙箱的實質(zhì):本地代碼是可靠的,可以完全訪問底層的文件系統(tǒng)。相反,下載的遠程代碼是不可靠的,只能訪問沙箱中所提供的有限資源。沙箱的模型如圖1-10所示。46圖1-10沙箱模型圖1-11改進的JDK1.1安全模型47為支持簽名Applet,JDK1.1還新增了對加密算法的支持以便提供數(shù)字簽名功能。有了這些支持,就可以對JavaApplet類進行數(shù)字簽名,生成Java歸檔格式(Javaarchiveformat,JAR)文件。JDK運行環(huán)境使用可信公鑰來驗證所下載的Applet的簽名者,然后將其作為可信的本地應(yīng)用對待,并授于訪問所需資源的權(quán)限。在Java2中,簽名的代碼除了遠程代碼外,還擴展到了本地代碼。在這個新的安全模式下,所有的代碼(遠程的和本地的),簽名的和未簽名的,都將基于安全策略文件。策略文件允許指定:對于駐留于一個特定代碼資源中的代碼希望授予其何種權(quán)限,以及對于由特定的人所簽名的代碼希望授予其何種權(quán)限。481.4

網(wǎng)絡(luò)程序設(shè)計架構(gòu)49客戶端/服務(wù)器模型,即C/S軟件系統(tǒng)體系結(jié)構(gòu),通過它可以充分利用兩端硬件環(huán)境的優(yōu)勢,將任務(wù)合理分配到客戶端(Client)和服務(wù)器端(Server)來實現(xiàn),降低系統(tǒng)的通信開銷。1.4.1C/S體系結(jié)構(gòu)50在網(wǎng)絡(luò)程序設(shè)計架構(gòu)中,客戶端/服務(wù)器(Client/Server,C/S)結(jié)構(gòu)和瀏覽器/服務(wù)器(Browser/Server,B/S)結(jié)構(gòu)是當(dāng)今世界開發(fā)模式技術(shù)中的兩大主流架構(gòu)。目前,這兩項技術(shù)已被絕大多數(shù)網(wǎng)絡(luò)應(yīng)用程序開發(fā)人員所應(yīng)用,都是以C/S或B/S技術(shù)為基礎(chǔ)來開發(fā)產(chǎn)品。這兩種技術(shù)幾乎占

溫馨提示

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

最新文檔

評論

0/150

提交評論