WEB开发网
开发学院WEB开发Jsp Java 高层网络编程 阅读

Java 高层网络编程

 2008-01-05 19:24:46 来源:WEB开发网   
核心提示:java.net 包中的类和接口提供了可用于低层和高层网络编程的 API,低层 API 可以让你直接访问网络协议,Java 高层网络编程,但是为此你不得不使用低层的 TCP 套接字和 UDP 数据包,高层的 API (如 URL, URLConnection 和 httpURLConnection 等类) 可以使你更快

  java.net 包中的类和接口提供了可用于低层和高层网络编程的 API。低层 API 可以让你直接访问网络协议,但是为此你不得不使用低层的 TCP 套接字和 UDP 数据包。高层的 API (如 URL, URLConnection 和 httpURLConnection 等类) 可以使你更快的开发网络应用,却不需要写很多代码。另一篇文章,《Network PRogramming with J2SE 1.4》会告诉你如何使用低层的套接字进行网络编程。这篇文章的重点则放在如何使用 java.net 包中的高层 API 开发基于 HTTP 的应用程序。
  
  这篇文章将有如下内容:
  
  · 概览 HTTP
  
  · 概览 java.net 包的高层 API
  
  · 示例说明如何使用高层 API
  
  · 制作一个可以下载股票行情的应用程序
  
  · 演示如何提交数据到网页服务器
  
  · 概览 HTTP 的验证并展示如何保护你的网络资源
  
  · 提供代码实例演示如何执行 HTTP 的验证
  
  概览 HTTP
  
  超文本传输协议 (Hypertext Transfer Protocol, HTTP) 是一个“请求-回应”的应用协议。这个协议支持一套固定的方法如 GET、POST、PUT、DELETE 等。一般用 GET 方法向服务器请求资源。这里有两个 GET 请求的例子:
  
  GET / HTTP/1.1
  
  GET /names.Html HTTP/1.1
  
  另外,你可以使用 GET 和 POST 方法向服务器发送数据,它们向服务器发送数据的方式是不同的:
  
  · GET 方法:输入的数据将作为 URL 的一部分发送
  
  · POST 方法:输入数据作为一个独立的实体发送
  
  考虑一下下面的 HTML 表单:
   Java 高层网络编程
  这个表单会提交到 http://www.javacourses.com/servlet/getMarks 由 Servlet 处理。该表单使用了 GET 方法来传输信息。假如用户输入一个学号——比如 556677——并点击 GetMarks 按钮,表单数据就会作为 URL 的一部分传送到 Servlet 中。经过编码之后的 URL 就是:http://www.javacourses.com/servlets/getMarks?number=556677。
  
  在使用 POST 方法的情况下,传输数据时不会将数据作为 URL 的一部分;它们会作为一个独立的实体来传输。因此,POST 方法更安全,你也可以用这个方法传输更多的数据。而且用 POST 传输的数据不一定要是文本,用 GET 方法传输的却一定要是文本。
  
  消息息格式
  
  请求消息指定了方法名称 (GET 或者 POST)、URL、协议版本号、头部消息和可选消息。头部消息也许会包含请求信息和客户端信息,如接受的内容类型、浏览器名称以及验证数据。返回消息指定了协议版本、响应代码和原因。不管执行是否成功,响应代码和原因都会报告。一些响应代码如下:
  
  200 OK: Request sUCceeded. The requested resource can be found later in this message.
  
  301 Moved Permanently: Requested resource has moved. New location is specified later in this message.
  
  400 Bad Request: Request message is not understood by the server.
  
  404 Not Found: Requested document is not found on this server.
  
  关于 HTTP 和所有返回代码的信息可以在 HTTP 1.1 规范 RFC2616 中找到。
  
  下面是一个请求消息由浏览器到服务器的例子。这里请求的 URL 是 http://java.sun.com:
  
  GET / HTTP/1.1
  
  Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,
  
  application/vnd.ms-Powerpoint, application/vnd.ms-Excel,
  
  application/msWord, */*
  
  Accept-Language: en-ca
  
  Accept-Encoding: gzip, deflate
  
  User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows 98; YComp 5.0.0.0)
  
  Host: java.sun.com
  
  Connection: Keep-Alive
  
  Cookie: SUN_ID=24.80.19.177:28346100732290;
  
  SunONEUserId=24.80.19.177:86521021960770
  
  然后这里是服务器对这个请求的回复消息:
  
  HTTP/1.1 200 OK
  
  Server: Netscape-Enterprise/6.0
  
  Date: Mon, 14 Oct 2002 15:18:04 GMT
  
  Content-type: text/html
  
  Connection: close
  
  概览 java.net 包的高层 API
  
  java.net 包中含有高层 API。

Tags:Java 高层 网络编程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接