當前位置:首頁 » 網頁前端 » web通訊方式
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

web通訊方式

發布時間: 2022-07-01 15:42:56

㈠ web的通信協議是什麼

是提供通信雙方計算機中的進程之間的通信而實現的。進程之間的通信:各進程之間相互制約的等待或互通消息。

㈡ applet與web server通訊採取什麼方式效率比較高

在今天的多層結構的web應用程序的設計中,我們可以同時使用Java applet和Servlet。Applet為建立功能強大的動態界面提供了便利的機制,Servlet為web伺服器或者其他應用伺服器處理請求提供了高效率的手段。Sun公司的應用程序模型描述了在Java 2平台下開發企業級的Java應用的最好的規范。一種被推薦的規范是:在前端使用Applet、HTML和JSP,在後端使用Enterprise JavaBeans支持的Servlet及其他成分。
這種體系結構的關鍵是在客戶端的Applet和在伺服器說?ervlet之間的通信。但是由於Applet受瀏覽器安全模式的限制,在一個Applet中存取數據和信息並不想看上去的那麼簡單。在這篇文章中,我們將解釋在Applet-Servlet結構中開發者所面對的限制,並探討幾個不同的可以在Applet和Servlet之間轉輸數據的通信策略。如果你已經熟悉Applet和Servlet,這肯定會對你閱讀本文有幫助,如果你還不是那麼熟悉,那也沒關系,我們會簡要地介紹它們。

APPLET和SERVLET的簡介
Applet
Java applets實際上是運行在web頁面上的Java程序。它是一個繼承於java.applet.applet的Java類,它通過引用被嵌入到HTML頁面中去,就象一個圖像一樣。Applet和HTML的組合,可以建立功能更為強大的動態界面。對於一些只用來滾動正文和播放動畫的Applet,我們可以在一個企業級的應用程序中利用它來顯示和處理來自伺服器上的資源的數據。例如,一個Applet可以用來瀏覽和修改資料庫中的記錄或者控制運行在伺服器上的其他應用程序。
Java applet除了可以使用它自己定義的類文件外,還可以使用其他的類,不管這些類是獨立存在的還是被打包成了一個JAR文件。Applet和它的類文件通過標準的HTTP請求進行分布,所以Applet可以越過web頁面數據所在的平台的防火牆進行發送。除非是涉及到保持應用程序完整性的問題,Applet總會在每次用戶重新訪問web主機時自動刷新並會在客戶端保留一段時間。
我們得感謝Java操作系統的平台無關性,這才使得Applet可以運行在任何擁有Java虛擬機(JVM)的瀏覽器上。Sun公司的Java插件甚至可以使用可以利用最新版本的JVM編制頁面,而不用擔心受你的用戶的瀏覽器上的JVM的版本的限制。
因為Applet是Java平台的擴展,所以在你建立用Applet建立你的web應用程序的界面時,你可以重用已存在的Java組件。正如我們在下面的例子中可以看到的那樣,你可以在你的Applet的組件中使用復雜的Java對象來開發本來由伺服器端應用程序完成的工作。事實上,你可以編寫這樣的Java代碼,它既可以在Applet上執行,也可以在應用程序內執行。
Applet具有所有傳統的Java應用程序的功能,包括使用Sun公司的JFC/Swing組件。Applets也可以用來製作圖形以及應用程序中的用戶界面(盡管有些輔助的窗口會被標志為「Warning, Java Applet Window」)。但是不管他們有多麼相似,在應用程序和Applet之間還是一些關鍵性的差別的。例如,我們不得不考慮到我們的Applet是受到安全模式的限制的。
Applet的安全約束
Applet代碼來自於web主機並在最終用戶的機器的瀏覽器中運行。有害的含有病毒的Applet可能會造成破壞性的效果,為了防止這樣的Applet,Applet受到安全方面的約束,那就是Applet只可以與提供這個Applet的主機進行通信,而且Applet不能操作最終用戶的機器。它們不能讀寫該用戶的文件系統,不能執行上面的程序,也不能檢查一些敏感的環境參數。(事實上,我們有一種方法可以迴避這種限制,那就是開發者可以利用數字簽名的技術對Applet進行標志,這將會詢問用戶是否可以給予Applet某種特殊的待遇。但是這已經超出我們這篇文章中所討論的范圍了。)此外,Applet不能建立或接受外來的socket連接。所謂外來的是指這個連接超出了提供這個Applet類文件的主機(不是提供引用這個Applet的HTML所在的主機)。
因為這個安全性的限制,我們與Applet的通信必須採用一種特殊的策略。通信的唯一的途徑就是在提供Applet的主機和提供相應的HTML的主機之前的網路連接。
Servlets
Java servlet是伺服器端的組件,它和CGI有很多相似。它可以處理web請求,並返回數據或HTML。Servlet可以訪問資料庫,進行計算,並和Enterprise JavaBean這樣的組件進行通信。與CGI程序不同的是,Servlet是持久有效的,也就是說,它只要被示例一次就可以不斷地處理請求(這些請求很可能是同時發生的)。因此,Servlet比CGI來得更高效。
Servlet運行在一個Servlet引擎中,通常是在一個web伺服器或應用程序伺服器上。Netscape Enterprise Server 4.0和Netscape Application Server都支持最新版本的Java servlet規范。和Applet不同,Servlet不受安全約束的限制。因為Servlet是完全在伺服器上運行的,它具有所有操作系統所允許的性能。
Servlet可以用來很方便地建立在Applet和Web瀏覽器這樣的客戶端和企業應用程序的核心之間的連接。對於客戶端來說,向Servlet發出的請求與其他web請求並沒有任何不同。客戶端通過一個URL來接受返回的信息,正如我們看到的那樣,返回的信息並不一定只能是HTML,實際上我們可以通過HTML協議發送和接受任何類型的數據。

構造方法
一個企業級的應用程序可以有幾種方法來構造Applet和Servlet的使用。我將向大家介紹三種不同的構造方法,並對它們的優缺點進行比較。
第一種方法實際上只使用了Applet而沒有使用Servlet,盡管Applet受到它們的安全模式的限制,但是Applet還是可以使用象JDBC、RMI這樣的協議來訪問象資料庫、LDAP目錄和Enterprise JavaBeans組件這樣的後端信息。這種構造方法如圖1所示。這種方法雖然看上去很簡單,但是這並不是一個好的方法,它會帶來很多的問題。首先, 這種安排要求你將所有的訪問信息直接嵌入到你的Applet代碼中。資料庫用戶名、口令、伺服器標識,所有的這一切都必須包含在你的Applet代碼中,這樣最終用戶就有可能從類文件中搜集到這些信息。此外,資料庫或任何其他你訪問的系統都必須在提供Applet的同一台伺服器上。這意味著你的伺服器將不得不承擔雙重的負擔,它既是一個web伺服器,也是一個資料庫伺服器。典型的情況是,你的後端資源可能受到防火牆的保護,但是在這種情況下,這是不可能的,因為運行在客戶端上的Applet必須直接訪問你的機器。最後,使用這種方法,你想使用web伺服器群集,如果不是不可能的,至少也是很困難的。
圖1. 一個雙層結構的應用程序構造

好一點的方法是將與後端資源通信的事務封裝到Servlet中,而Applet僅僅用來處理前端的工作。在這種構造方法中,正如我們在圖2中所示的那樣,Servlet克服了Applet固有的安全約束,並用來控制Applet訪問企業信息系統和事務邏輯。當Servlet接受到一個請求時,它會在後端資料庫中查詢信息、執行計算、處理對代表Applet的信息的獲取並作用於來自Applet的信息。這種方法的一大進步是Applet/Servlet對可以分布在一個後端web伺服器的群集上,所有與某一共享的資料庫的通信都存在於後端。此外,使用Servlet的設計有助於設計的模塊化、抽象應用程序的後端處理商業邏輯並提高設計的靈活性。
圖2. 一個三層結構的應用程序構造

如果你是圍繞Enterprise JavaBeans構建你的應用程序,Servlet就成了中間件。EJB組件可以更加有助於將商業邏輯從Servlet中分離出來,並將其更加抽象。在這種情況下,一個Applet與它的Servlet通信,Servlet再與EJB組件通信。就象我們在圖3中所示的那樣。在應用程序構建中引入由EJB組件、Servlet和前端的applet/HTML這樣的層次結構,可以給我們提供最大限度的彈性和性能。盡管這樣做你必須附出復雜化和費用的代價。
圖3. 一個多層結構的應用程序構造

㈢ web應用程序使用什麼協議通信

我先說下什麼是:伺服器軟體、客戶端軟體。
伺服器軟體,一般簡稱伺服器,是指可以按照上網者的要求而提供網站資源的軟體,說白了就是顯示各種網頁(比如文字、圖片或視頻等)或提供某種服務(比如你在魔獸世界裡的角色資料和進度等);
客戶端軟體種類就比較多(這是因為伺服器提供的服務種類繁多),但是大體上可以分為瀏覽器(比如IE、360安全瀏覽器、遨遊、火狐等)和客戶端應用程序(比如你在自己機器上裝的魔獸世界客戶端)。
再說什麼是WEB伺服器,WEB伺服器就是說這種伺服器只能提供各種網頁(比如當前流行的各種門戶網站的伺服器),和它配套使用的客戶端軟體就是各種瀏覽器(比如IE、360安全瀏覽器、遨遊、火狐等)。
瀏覽器讀取伺服器所提供的網頁時使用的協議是HTTP或HTTPS。

㈣ 如何讓web網頁與伺服器上的應用程序進行通訊呢

你好!
呵呵,很簡單啊。你在頁面有個鏈接到伺服器上面的Web服務,在Web服務裡面去執行你的開發的應用程序。我想這樣應該可以達到你的目的吧。親,記得給我分哦。
打字不易,採納哦!

㈤ web 伺服器怎麼與tcp伺服器通訊

一,網路編程中兩個主要的問題

一個是如何准確的定位網路上一台或多台主機,另一個就是找到主機後如何可靠高效的進行數據傳輸。

在TCP/IP協議中IP層主要負責網路主機的定位,數據傳輸的路由,由IP地址可以唯一地確定Internet上的一台主機。

而TCP層則提供面向應用的可靠(tcp)的或非可靠(UDP)的數據傳輸機制,這是網路編程的主要對象,一般不需要關心IP層是如何處理數據的。

目前較為流行的網路編程模型是客戶機/伺服器(C/S)結構。即通信雙方一方作為伺服器等待客戶提出請求並予以響應。客戶則在需要服務時向伺服器提 出申請。伺服器一般作為守護進程始終運行,監聽網路埠,一旦有客戶請求,就會啟動一個服務進程來響應該客戶,同時自己繼續監聽服務埠,使後來的客戶也 能及時得到服務。

二,兩類傳輸協議:TCP;UDP

TCP是Tranfer Control Protocol的 簡稱,是一種面向連接的保證可靠傳輸的協議。通過TCP協議傳輸,得到的是一個順序的無差錯的數據流。發送方和接收方的成對的兩個socket之間必須建 立連接,以便在TCP協議的基礎上進行通信,當一個socket(通常都是server socket)等待建立連接時,另一個socket可以要求進行連接,一旦這兩個socket連接起來,它們就可以進行雙向數據傳輸,雙方都可以進行發送 或接收操作。

UDP是User Datagram Protocol的簡稱,是一種無連接的協議,每個數據報都是一個獨立的信息,包括完整的源地址或目的地址,它在網路上以任何可能的路徑傳往目的地,因此能否到達目的地,到達目的地的時間以及內容的正確性都是不能被保證的。

比較:

UDP:1,每個數據報中都給出了完整的地址信息,因此無需要建立發送方和接收方的連接。

2,UDP傳輸數據時是有大小限制的,每個被傳輸的數據報必須限定在64KB之內。

3,UDP是一個不可靠的協議,發送方所發送的數據報並不一定以相同的次序到達接收方

TCP:1,面向連接的協議,在socket之間進行數據傳輸之前必然要建立連接,所以在TCP中需要連接

時間。

2,TCP傳輸數據大小限制,一旦連接建立起來,雙方的socket就可以按統一的格式傳輸大的

數據。

3,TCP是一個可靠的協議,它確保接收方完全正確地獲取發送方所發送的全部數據。

應用:

1,TCP在網路通信上有極強的生命力,例如遠程連接(Telnet)和文件傳輸(FTP)都需要不定長度的數據被可靠地傳輸。但是可靠的傳輸是要付出代價的,對數據內容正確性的檢驗必然佔用計算機的處理時間和網路的帶寬,因此TCP傳輸的效率不如UDP高。

2,UDP操作簡單,而且僅需要較少的監護,因此通常用於區域網高可靠性的分散系統中client/server應用程序。例如視頻會議系統,並不要求音頻視頻數據絕對的正確,只要保證連貫性就可以了,這種情況下顯然使用UDP會更合理一些。

三,基於Socket的java網路編程

1,什麼是Socket

網路上的兩個程序通過一個雙向的通訊連接實現數據的交換,這個雙向鏈路的一端稱為一個Socket。Socket通常用來實現客戶方和服務方的連接。Socket是TCP/IP協議的一個十分流行的編程界面,一個Socket由一個IP地址和一個埠號唯一確定。

但是,Socket所支持的協議種類也不光TCP/IP一種,因此兩者之間是沒有必然聯系的。在Java環境下,Socket編程主要是指基於TCP/IP協議的網路編程。

2,Socket通訊的過程

Server端Listen(監聽)某個埠是否有連接請求,Client端向Server 端發出Connect(連接)請求,Server端向Client端發回Accept(接受)消息。一個連接就建立起來了。Server端和Client 端都可以通過Send,Write等方法與對方通信。

對於一個功能齊全的Socket,都要包含以下基本結構,其工作過程包含以下四個基本的步驟:

(1) 創建Socket;

(2) 打開連接到Socket的輸入/出流;

(3) 按照一定的協議對Socket進行讀/寫操作;

(4) 關閉Socket.(在實際應用中,並未使用到顯示的close,雖然很多文章都推薦如此,不過在我的程序中,可能因為程序本身比較簡單,要求不高,所以並未造成什麼影響。)

3,創建Socket

創建Socket

java在包java.net中提供了兩個類Socket和ServerSocket,分別用來表示雙向連接的客戶端和服務端。這是兩個封裝得非常好的類,使用很方便。其構造方法如下:

Socket(InetAddress address, int port);

Socket(InetAddress address, int port, boolean stream);

Socket(String host, int prot);

Socket(String host, int prot, boolean stream);

Socket(SocketImpl impl)

Socket(String host, int port, InetAddress localAddr, int localPort)

Socket(InetAddress address, int port, InetAddress localAddr, int localPort)

ServerSocket(int port);

ServerSocket(int port, int backlog);

ServerSocket(int port, int backlog, InetAddress bindAddr)

其中address、host和port分別是雙向連接中另一方的IP地址、主機名和端 口號,stream指明socket是流socket還是數據報socket,localPort表示本地主機的埠號,localAddr和 bindAddr是本地機器的地址(ServerSocket的主機地址),impl是socket的父類,既可以用來創建serverSocket又可 以用來創建Socket。count則表示服務端所能支持的最大連接數。例如:學習視頻網 http://www.xxspw.com

Socket client = new Socket("127.0.01.", 80);

ServerSocket server = new ServerSocket(80);

注意,在選擇埠時,必須小心。每一個埠提供一種特定的服務,只有給出正確的埠,才 能獲得相應的服務。0~1023的埠號為系統所保留,例如http服務的埠號為80,telnet服務的埠號為21,ftp服務的埠號為23, 所以我們在選擇埠號時,最好選擇一個大於1023的數以防止發生沖突。

在創建socket時如果發生錯誤,將產生IOException,在程序中必須對之作出處理。所以在創建Socket或ServerSocket是必須捕獲或拋出例外。

4,簡單的Client/Server程序

1. 客戶端程序

import java.io.*;

import java.net.*;

public class TalkClient {

public static void main(String args[]) {

try{

Socket socket=new Socket("127.0.0.1",4700);

//向本機的4700埠發出客戶請求

BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));

//由系統標准輸入設備構造BufferedReader對象

PrintWriter os=new PrintWriter(socket.getOutputStream());

//由Socket對象得到輸出流,並構造PrintWriter對象

BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));

//由Socket對象得到輸入流,並構造相應的BufferedReader對象

String readline;

readline=sin.readLine(); //從系統標准輸入讀入一字元串

while(!readline.equals("bye")){

//若從標准輸入讀入的字元串為 "bye"則停止循環

os.println(readline);

//將從系統標准輸入讀入的字元串輸出到Server

os.flush();

//刷新輸出流,使Server馬上收到該字元串

System.out.println("Client:"+readline);

//在系統標准輸出上列印讀入的字元串

System.out.println("Server:"+is.readLine());

//從Server讀入一字元串,並列印到標准輸出上

readline=sin.readLine(); //從系統標准輸入讀入一字元串

} //繼續循環

os.close(); //關閉Socket輸出流

is.close(); //關閉Socket輸入流

socket.close(); //關閉Socket

}catch(Exception e) {

System.out.println("Error"+e); //出錯,則列印出錯信息

}

}

}

2. 伺服器端程序

import java.io.*;

import java.net.*;

import java.applet.Applet;

public class TalkServer{

public static void main(String args[]) {

try{

ServerSocket server=null;

try{

server=new ServerSocket(4700);

//創建一個ServerSocket在埠4700監聽客戶請求

}catch(Exception e) {

System.out.println("can not listen to:"+e);

//出錯,列印出錯信息

}

Socket socket=null;

try{

socket=server.accept();

//使用accept()阻塞等待客戶請求,有客戶

//請求到來則產生一個Socket對象,並繼續執行

}catch(Exception e) {

System.out.println("Error."+e);

//出錯,列印出錯信息

}

String line;

BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));

//由Socket對象得到輸入流,並構造相應的BufferedReader對象

PrintWriter os=newPrintWriter(socket.getOutputStream());

//由Socket對象得到輸出流,並構造PrintWriter對象

BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));

//由系統標准輸入設備構造BufferedReader對象

System.out.println("Client:"+is.readLine());

//在標准輸出上列印從客戶端讀入的字元串

line=sin.readLine();

//從標准輸入讀入一字元串

while(!line.equals("bye")){

//如果該字元串為 "bye",則停止循環

os.println(line);

//向客戶端輸出該字元串

os.flush();

//刷新輸出流,使Client馬上收到該字元串

System.out.println("Server:"+line);

//在系統標准輸出上列印讀入的字元串

System.out.println("Client:"+is.readLine());

//從Client讀入一字元串,並列印到標准輸出上

line=sin.readLine();

//從系統標准輸入讀入一字元串

} //繼續循環

os.close(); //關閉Socket輸出流

is.close(); //關閉Socket輸入流

socket.close(); //關閉Socket

server.close(); //關閉ServerSocket

}catch(Exception e){

System.out.println("Error:"+e);

//出錯,列印出錯信息

}

}

}

5,支持多客戶的client/server程序

前面的Client/Server程序只能實現Server和一個客戶的對話。在實際應用 中,往往是在伺服器上運行一個永久的程序,它可以接收來自其他多個客戶端的請求,提供相應的服務。為了實現在伺服器方給多個客戶提供服務的功能,需要對上 面的程序進行改造,利用多線程實現多客戶機制。伺服器總是在指定的埠上監聽是否有客戶請求,一旦監聽到客戶請求,伺服器就會啟動一個專門的服務線程來響 應該客戶的請求,而伺服器本身在啟動完線程之後馬上又進入監聽狀態,等待下一個客戶的到來。

㈥ 在java的web程序中怎麼使用串口通訊

方法如下:

  1. 新建eclipse工程,添加comm.jar或者RXTXcomm.jar包。因為javacomm20-win32.zip包里有樣例SimpleRead.java,可以通過這個例子測試串口是否正確。

  2. 接收數據正確後,根據傳送接收雙方的協議,採用CRC循環校驗,根據傳輸的一方的校驗函數判定是否是正確傳輸。

  3. 把正確結束的數據解析,查看自己指定的通訊規則,然後解析。

  4. 插入資料庫,jdbc插入。

  5. 數據統計,定時統計每小時,每天,每月,每年的平均值,採用quartz服務來實現。

  6. 建立web工程,採用hibernate3,spring3,dwr技術把資料庫數據動態顯示,圖表採用jfreechart,以及AJAX的運用

㈦ 在www中,web瀏覽器和web伺服器之間採用http協議進行通信,其通信方式採用什麼模式

www,wap,web都是採用tcp協議來作為通訊模式的。

㈧ 什麼是WEB什麼又是基於WEB的開發啊

WEB
--
英文蜘蛛網的意思.
WWW
--
Word
Wide
Web,
直譯:世界范圍的蜘蛛網.
在定名互聯(internet)網前,以TCP-IP協議通訊的世界范圍的網路叫BITNET,
網路上提供用HTML語言寫的東西的服務站,叫網站,網站的客戶端叫瀏覽器,這些服務站和客戶端及它們的通訊網路就叫WWW,簡稱WEB.
服務站現在叫網站.WEB(功能)是互聯網(功能)的一部分.
基於WEB的開發.用WEB上用的各種通訊協議,通訊方式,WEB上用的各種語言開發的軟體和硬體,並用於WEB環境,叫基於WEB的開發.

㈨ 求在WEB應用程序中實現即時通訊功能的思路

最簡單的方法是調用WebQQ的介面,現在很多網站的QQ交談都這么做的.

如果要完全自己實現, 有一種方式是靠alax不斷局部刷新來實現, 輸入時提交, 插入資料庫, 另外一頭不斷刷新讀資料庫. 這是比較低級的實現方式,但是好處是可以僅通過http協議,不需要其他控制項支持.

另外一種方式是藉助ActiveX控制項, 以TCP協議收發信息,這就跟普通IM軟體一樣了,缺點是需要安裝控制項. 這種方式有一個特例,就是Flash,因為Flash插件基本每個瀏覽器都安裝了,所以用Flash來做聊天客戶端是個不錯的選擇.

㈩ ie瀏覽器和web伺服器之間的通信協議是

一般是http協議。
HTTP協議一般指HTTP(超文本傳輸協議)。
超文本傳輸協議(英語:HyperTextTransferProtocol,縮寫:HTTP)是一種用於分布式、協作式和超媒體信息系統的應用層協議,是網際網路上應用最為廣泛的一種網路傳輸協議,所有的WWW文件都必須遵守這個標准。
HTTP是為Web瀏覽器與Web伺服器之間的通信而設計的,但也可以用於其他目的。
HTTP是一個基於TCP/IP通信協議來傳遞數據的(HTML文件、圖片文件、查詢結果等)。