WWW是以Internet作为传输媒介的一个应用系统,WWW网上最基本的传输单位是Web网页。WWW的工作基于客户机/服务器计算模型,由Web 浏览器(客户机)和Web服务器(服务器)构成,两者之间采用超文本传送协议(HTTP)进行通信。HTTP协议是基于TCP/IP协议之上的协议,是Web浏览器和Web服务器之间的应用层协议,是通用的、无状态的、面向对象的协议。HTTP协议的作用原理包括四个步骤:
(1) 连接:Web浏览器与Web服务器建立连接,打开一个称为socket(套接字)的虚拟文件,此文件的建立标志着连接建立成功。
(2) 请求:Web浏览器通过socket向Web服务器提交请求。HTTP的请求一般是GET或POST命令(POST用于FORM参数的传递)。GET命令的格式为:
GET 路径/文件名 HTTP/1.0
文件名指出所访问的文件,HTTP/1.0指出Web浏览器使用的HTTP版本。
(3) 应答:Web浏览器提交请求后,通过HTTP协议传送给Web服务器。Web服务器接到后,进行事务处理,处理结果又通过HTTP传回给Web浏览器,从而在Web浏览器上显示出所请求的页面。
以下是Sun提供的一个简单的“Knock Knock"”服务器:import java.net.*import java.io.*public class KnockKnockServer {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = null
try {
serverSocket = new ServerSocket(4444)
} catch (IOException e) {
System.err.println("Could not listen on port: 4444.")
System.exit(1)
}
Socket clientSocket = null
try {
clientSocket = serverSocket.accept()
} catch (IOException e) {
System.err.println("Accept failed.")
System.exit(1)
}
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true)
BufferedReader in = new BufferedReader(
new InputStreamReader(
clientSocket.getInputStream()))
String inputLine, outputLine
KnockKnockProtocol kkp = new KnockKnockProtocol()
outputLine = kkp.processInput(null)
out.println(outputLine)
while ((inputLine = in.readLine()) != null) {
outputLine = kkp.processInput(inputLine)
out.println(outputLine)
if (outputLine.equals("Bye."))
break
}
out.close()
in.close()
clientSocket.close()
serverSocket.close()
}}
再简单不过了。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)